摘要:近期在开发中发现了在某些特定情况下,出现了获取不到渲染出来的元素的情况,原因身为小白的我暂时还没搞清楚忘大佬指出,但是却得出来初步的解决方案。最终发现将数据初始化放到里面即可在里面正确输出获取到元素的长度。
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 }) }
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/95601.html
摘要:如果我们作为一个后端开发者想掌握一个前端框架,是一个好选择,因为它足够的易学。是语言的下一代标准。数据方法生命周期钩子函数其他有些内容比较重要,留到后面讲定义数据定义数据定义了数据,那么就可以在管理的区域中使用的获取数据的语法来获取数据。目录 前言: iview组件库示例 element组件库示例 ...
摘要:注意重点是获取更新后的就是在开发过程中有个需求是需要在阶段操作数据更新后的节点这时候就需要用到就是用来知道什么时候更新完成原因在钩子函数执行的时候其实并未进行任何渲染,而此时进行操作无异于徒劳,所以在中一定要将操作的代码放进的回调函数中。 1. 最简单的vue el: dom节点 data: 数据 Vue 测试实例 - 菜鸟教程(runoob.com) ...
摘要:可以在该钩子中进一步地更改状态,不会触发附加的重渲染过程。我工作中只用到,对和不怎么熟与的区别相同点都支持指令内置指令和自定义指令都支持过滤器内置过滤器和自定义过滤器都支持双向数据绑定都不支持低端浏览器。 看看面试题,只是为了查漏补缺,看看自己那些方面还不懂。切记不要以为背了面试题,就万事大吉了,最好是理解背后的原理,这样面试的时候才能侃侃而谈。不然,稍微有水平的面试官一看就能看出,是...
阅读 1462·2021-11-24 11:16
阅读 2646·2021-07-28 12:32
阅读 2282·2019-08-30 11:22
阅读 1424·2019-08-30 11:01
阅读 558·2019-08-29 16:24
阅读 3507·2019-08-29 12:52
阅读 1607·2019-08-29 12:15
阅读 1312·2019-08-29 11:18