日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > vue >内容正文

vue

获取不到html页面上的元素,Vue v-for渲染页面,获取不到DOM元素解析

發布時間:2025/3/12 vue 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 获取不到html页面上的元素,Vue v-for渲染页面,获取不到DOM元素解析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

})

}

總結

以上是生活随笔為你收集整理的获取不到html页面上的元素,Vue v-for渲染页面,获取不到DOM元素解析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。