从品牌网站建设到网络营销策划,从策略到执行的一站式服务
这篇文章主要介绍Vue.js中v-for运行错误的解决方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
专注于为中小企业提供成都网站设计、网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业道里免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千余家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
Vue.js中解决v-for运行错误的方法:1、修改Vue框架代码;2、强制不给空数据的元素生成dom节点;3、每个对象都有一个唯一ID的属性,便可以使用【track-by】特性给Vue一个提示。
Vue.js中解决v-for运行错误的方法:
▲方案一
从报错信息Uncaught TypeError: Cannot read property 'removeChild' of null
可知,之所以发生这个问题是因为在null的对象上执行了removeChild。
修改Vue框架代码,将这里的代码:
修改为:
▲方案二
深入地分析,为什么el.parentNode
会是null,通过上面重现的步骤发现,当that.model.test_arr = ["","4","","5","6",""]
这段代码设置发生后,v-for产生的dom节点之后3个,而不是5个,这种情况下el.parentNode就是不存在的,所以产生了第二种解决方案,强制不给空数据的元素生成dom节点。
▲方案三
问题并不算是圆满解决,正常的情况下框架应该具有鲁棒性,适应不同的使用场景,不应该出现js报错的问题,所以还有深入研究下去的必要。
在Vue中针对v-for指令有一个track-by的可选配置:
▪无track-by情况:数据修改时,无论值是否被修改,dom都被重新渲染。
▪有track-by情况:数据修改时,不变数据所在的dom不被重新渲染,已改变的数据所在dom才被重新渲染。
因为 v-for 默认通过数据对象的特征来决定对已有作用域和 DOM 元素的复用程度,这可能导致重新渲染整个列表。但是,如果每个对象都有一个唯一 ID 的属性,便可以使用 track-by 特性给 Vue 一个提示,Vue因而能尽可能地复用已有实例。所以就有了第三种解决方案。
以上是“Vue.js中v-for运行错误的解决方法”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图