博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vue 组件中数组的更新
阅读量:5321 次
发布时间:2019-06-14

本文共 964 字,大约阅读时间需要 3 分钟。

今天写项目时遇到的问题,瞬间就卡在那了

来还原一下:

parent.vue:

 

child.vue

我预想中的正常情况应该是点击按钮,,然后 页面上的 000 000 000 变成 000 123 000 ,

但是就是没有变化看了下 vue 文档先试试是不是子组件检测的值出了问题,

然后我在子组件中添加了 watch和 computed 结果都是无效的;

后来我搜索了页面,发了了一个全局函数 :

Vue.set();

他的效果:

Vue.set( target, key, value )

  • 参数:

    • {Object | Array} target
    • {string | number} key
    • {any} value
  • 返回值:设置的值。

  • 用法:

    设置对象的属性。如果对象是响应式的,确保属性被创建后也是响应式的,同时触发视图更新。这个方法主要用于避开 Vue 不能检测属性被添加的限制。

终于被我找到了关键的地方了,但是在组件中怎么使用全局指令呢?

我后面又发现了 this.$set这个函数是完全一样的;

所以高兴的用上了:

正确用法:

methods:{      change(){          setTimeout(()=>{
        this.list[1]['list'] = {a:1,b:2,c:3}//这样写 data 并不会检测         this.$set(this.list[1],'list',{a:1,b:2,c:3})//正确的写法
},1000)      }

 

这个坑,浪费了我几个小时,虽然我用 v-if 也解决了,但是总是不甘心,晚上继续研究终于让我解决了;

引以为戒;

 

转载于:https://www.cnblogs.com/Grewer/p/7664259.html

你可能感兴趣的文章
Android SurfaceView实战 带你玩转flabby bird (上)
查看>>
Android中使用Handler造成内存泄露的分析和解决
查看>>
android代码控制seekbar的样式
查看>>
servlet
查看>>
SSM集成activiti6.0错误集锦(一)
查看>>
linux下安装python环境
查看>>
pdnovel 看书 读书 听书
查看>>
oracle for loop 代替cursor (转载)
查看>>
Linked List Cycle II
查看>>
工作踩坑记录:JavaScript跳转被缓存
查看>>
个人作业
查看>>
XMLHttpRequest对象
查看>>
c语言选项实现
查看>>
Linux 学习
查看>>
WEB小计
查看>>
九度-题目1214:丑数
查看>>
JS对象随机数 random() 方法可返回介于 0 ~ 1(大于或等于 0 但小于 1 )之间的一个随机数。 注意:返回一个大于或等于 0但小于1的符号为正的数值...
查看>>
python学习:缩进
查看>>
二叉树
查看>>
conda命令不能用的问题
查看>>