stnoname 2021-07-28 19:25 采纳率: 50%
浏览 37
已结题

请问vue+element的数组updated问题

目前通过vue+element绑定了一个table,假设数据结构是这样的
var t=[
{name="a"},
{name="b"},
{name="c"},
]
这种,然后在table里显示name等列的值
我对这个表进行前段的增删改查,增加删除没问题,页面渲染,updated也执行
在修改的时候,我只改name,大概代码是这样的
t.foreach((e,i)=>{
if(e.name==oldname){
e.name=newname
}
})
大体就是这样
现在的结果是,代码能运行,数据也修改了,页面也正常渲染了,但updated钩子没执行!
问题就在于这个钩子为什么没执行呢?
我换成beforeUpdate,也不执行
现在只能用forceupdate,但不知道这个有没有副作用,而且也太费劲了
到处force,不太好吧,毕竟
别太放肆,没什么用……

  • 写回答

2条回答 默认 最新

  • CSDN专家-微编程 2021-07-28 21:37
    关注

    为何不去看看官方文档呢,官方文档不是说了吗?也提到了相关的说明
    img

    updated可能并不会执行,最好的还是使用计算属性或者用watch监听数据变化,将你这个变化值的方法在写一份加入到watch里面做监听或者直接this.方法()

    watch:{
    update(){},//监听更新方法
    }
    

    随着测试的加深,一般监听时是不能监听到对象属性值的变化的,发现如果监听的是Object类型的复杂数据类型的话,这样写是无法监听key和value的变化的,需要对Object类型进行深层监听
    所以watch开启深度监听

    watch:{
    driver:{
    update(){},
    deep:true;
    }
    }
    
    

    这样基本上就解决了vue组件beforeUpdate和updated生命周期钩子不执行的问题

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月6日
  • 已采纳回答 7月29日
  • 创建了问题 7月28日

悬赏问题

  • ¥15 maple软件,用solve求反函数出现rootof,怎么办?
  • ¥50 汇编语言除法溢出问题
  • ¥65 C++实现删除N个数据列表共有的元素
  • ¥15 Visual Studio问题
  • ¥15 state显示变量是字符串形式,但是仍然红色,无法引用,并显示类型不匹配
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波