vue列表数据发生变化指令没有更新问题及解决方法
2020-02-13 12:31
1041 查看
问题描述,在vue的for循环中使用了指令,然后对数据进行筛选的时候,发现指令没有起作用。
如图前面的图标是根据文件名的后缀名,返回响应图标的,通过指令实现的。然后我们在搜索框中删选以后,数据更新了,但是图标没有更新
分析原因
<div v-for="(item, index) in myDate" :key='index'> ... </div>
问题就出在了:key='index'因为vue中for循环是根据key的值的变化来更新vnode的,很显然我们经过筛选如果删选出三条数据,那么index = 0, 1, 2没有变化,所以vnode没有更新
解决办法1:我们设置:key的时候最好使用每条数据的id这样就是唯一的,每次筛选,vnode都会更新。
解决办法2:在指令中设置
// 添加bind设置 bind: function (el, binding, vnode) { // bind中的vnode里面的key可以给设置一个随机数,这样每次都会更新虚拟节点。 let num = parseInt(Math.random() * 10) vnode.key = num }, inserted: ...
总结
以上所述是小编给大家介绍的vue列表数据发生变化指令没有更新问题及解决方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
您可能感兴趣的文章:
相关文章推荐
- 解决IE11 vue +webpack 项目中数据更新后页面没有刷新的问题
- VUE 直接通过JS 修改html对象的值导致没有更新到数据中解决方法分析
- vue + element 下拉框 选项绑定数据列表List,List动态变化后,下拉框下拉后数据不变化问题解决
- 解决Notification PendingIntent意图打开Activity数据没有更新的问题
- 关于在用curl函数post网页数据时,遇上表单提交 type为submit 类型而且没有name和id时可能遇到的问题及其解决方法
- dedecms批量更新静态时提示:没有该栏目数据 可能缓存的解决方法
- Oracle大数据量更新引发的死锁问题解决方法及Oracle分区和存储过程的思考
- 解决TextView数据不能更新的问题以及Android Button事件响应函数的两种方法
- vue 数组元素(data)发生改变没有跟新到(view)解决方法
- “无法更新EntitySet“*****”,因为它有一个DefiningQuery,而<ModificationFunctionMapping>元素中没有支持当前操作的<InsertFunction>元素”问题的解决方法
- “无法更新EntitySet“*****”,因为它有一个DefiningQuery,而元素中没有支持当前操作的元素”问题的解决方法
- vue项目中做编辑功能传递数据时遇到问题的解决方法
- 解决vue接口数据赋值给data没有反应的问题
- linq to sql统一更新方法,直接返回更新的对象(解决更新后再刷新数据错误显示问题)
- 关于Vue动态路由参数变化,页面数据不更新问题?
- 使用JqGrid列表数据分组显示问题的解决方法
- 关于web页面缓存问题解决方法,如图片缓存,异步提交数据页面不更新
- “无法更新EntitySet“*****”,因为它有一个DefiningQuery,而元素中没有支持当前操作的元素”问题的解决方法
- 用ASP.NET解决用户意外退出在线列表无法及时更新问题的方法
- 【解决方法】EasyUI DataGrid不显示滚动条时,没有数据的问题