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 关于大棚监测的pcb板设计
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥15 帮我写一个c++工程