摘要:近期在開發中發現了在某些特定情況下,出現了獲取不到渲染出來的元素的情況,原因身為小白的我暫時還沒搞清楚忘大佬指出,但是卻得出來初步的解決方案。最終發現將數據初始化放到里面即可在里面正確輸出獲取到元素的長度。
v-for 渲染循環渲染頁面的出現讓我們告別了繁瑣的JS拼接,在開發上面節省了很多時間。
近期在開發中發現了在某些特定情況下,出現了獲取不到渲染出來的DOM元素的情況,原因身為小白的我暫時還沒搞清楚(忘大佬指出),但是卻得出來初步的解決方案。
HTML 代碼
{{item.age}}
JS 代碼(錯誤代碼)
// 錯誤代碼示例一 var vm = new Vue({ el: "#app", data: { abc: new Object() }, mounted: function () { this.getList(); var li = document.querySelectorAll("li"); console.log(li.length); // 輸出0 }, methods: { getList: function () { var data = [ { name: "1", age: "21" }, { name: "2", age: "22" }, { name: "3", age: "23" }, { name: "4", age: "24" }, { name: "5", age: "25" } ]; this.$set(this, "abc", data); } } })
// 錯誤代碼示例二 var vm; window.onload = function(){ vm = { ... } // 實例化代碼如上,去除 mounted 生命周期 vm.getList(); var li = document.querySelectorAll("li"); console.log(li.length); // 輸出0 }
上述代碼中的 li 即是通過 v-for 渲染生成,但是兩種方式獲取 li 輸出的長度都為0。
最終發現將數據初始化放到 beforeMount 里面即可在 mounted 里面正確輸出獲取到 li 元素的長度。
JS 代碼(解決方案)
// 解決方案一(數據初始化放在掛載之前) var vm = new Vue({ el: "#app", data: { abc: new Object() }, beforeMount: function(){ this.getList(); }, mounted: function () { var li = document.querySelectorAll("li"); console.log(li.length) // 輸出5 }, methods: { getList: function () { var data = [ { name: "1", age: "21" }, { name: "2", age: "22" }, { name: "3", age: "23" }, { name: "4", age: "24" }, { name: "5", age: "25" } ]; this.$set(this, "abc", data); } } }) // 解決方案二(mounted周期里面使用VUE自帶鉤子函數$nextTick做處理) mounted: function () { this.getList(); this.$nextTick(function () { var li = document.querySelectorAll("li"); console.log(li.length) // 輸出 5 }) }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/95601.html
摘要:如果我們作為一個后端開發者想掌握一個前端框架,是一個好選擇,因為它足夠的易學。是語言的下一代標準。數據方法生命周期鉤子函數其他有些內容比較重要,留到后面講定義數據定義數據定義了數據,那么就可以在管理的區域中使用的獲取數據的語法來獲取數據。目錄 前言: iview組件庫示例 element組件庫示例 ...
摘要:注意重點是獲取更新后的就是在開發過程中有個需求是需要在階段操作數據更新后的節點這時候就需要用到就是用來知道什么時候更新完成原因在鉤子函數執行的時候其實并未進行任何渲染,而此時進行操作無異于徒勞,所以在中一定要將操作的代碼放進的回調函數中。 1. 最簡單的vue el: dom節點 data: 數據 Vue 測試實例 - 菜鳥教程(runoob.com) ...
摘要:可以在該鉤子中進一步地更改狀態,不會觸發附加的重渲染過程。我工作中只用到,對和不怎么熟與的區別相同點都支持指令內置指令和自定義指令都支持過濾器內置過濾器和自定義過濾器都支持雙向數據綁定都不支持低端瀏覽器。 看看面試題,只是為了查漏補缺,看看自己那些方面還不懂。切記不要以為背了面試題,就萬事大吉了,最好是理解背后的原理,這樣面試的時候才能侃侃而談。不然,稍微有水平的面試官一看就能看出,是...
閱讀 1493·2021-11-24 11:16
閱讀 2700·2021-07-28 12:32
閱讀 2309·2019-08-30 11:22
閱讀 1448·2019-08-30 11:01
閱讀 605·2019-08-29 16:24
閱讀 3553·2019-08-29 12:52
閱讀 1633·2019-08-29 12:15
閱讀 1341·2019-08-29 11:18