• 2022-06-17 工作记录--Vue-用$set赋值


    Vue-用$set赋值

    不积跬步无以至千里~ 细节决定成败,加油💪🏻

    一、使用方法

    举例:

    this.infoSorts[0].value = data.totalReadCount;
    
    • 1

    变成$set写法是:

    this.$set(this.infoSorts[0],'value',data.totalReadCount);
    
    • 1

    二、适用情况

    数据双向绑定失效时,就需要采用$set赋值。

    下面是优秀滴哥哥给出的结论在这里插入图片描述

    • 一般来说 data里面声明的基本数据类型这种值,直接赋值就可以。
      • 比如:this.number=1; this.flag = false;
    • 但是如果是对象/数组这种,要修改对象/数组里面的某一个key的值:
      • 直接this.obj.name =xxx;这样去赋值的话,数据可能就不是响应式的;
      • 需要改成this.$set(this.obj,'name',xxx)这样,可以让数据是响应式的。
      • 【注意】 这儿的namekey值,要加引号。不加引号就会解析成变量,但如果你上面没有声明这个变量,就是undefined了。
    • 所以以后如果是修改对象/数组里面的某个属性的属性值滴话,最好用$set去改。
    • 如果数组push pop shift unshift … 这样的基本操作数组的方法,vue是可以监听到的。可以不用$set

    1、举例:

    如下图:获取到了数据,页面上的数据却没有展示。这种情况就是数据双向绑定失效啦,需要采用$set赋值。

    在这里插入图片描述

    2、解决方法:

    $set赋值 代替 等号赋值。

    代码如下:

    messageListInfo: [], // 消息列表数据
    
    • 1

    在这里插入图片描述

    三、比较举例

    给如下图所示的值赋值时,采用哪种方法呢❓

    在这里插入图片描述

    答案:

    • 上述这种情况的话 用等号赋值$set赋值 两种方式都可以哟~
      • this.messageInfo = data;
      • 或者
      • this.$set(this, 'messageInfo', data);【注意:这里的messageInfo是key值,要加引号】
    • 如果是改messageInfo里面的某个属性的属性值滴话,就最好还是用$set
      在这里插入图片描述
  • 相关阅读:
    jmeter分布式压测
    【数据库范式】实际案例分析
    猫头虎博主第5️⃣期赠书活动:《Java官方编程手册(第12版·Java 17)套装上下册》
    【shapely】自相交问题
    MATLAB与Python:优势与挑战
    AtCoder abc148
    【CSS如何实现双飞翼布局】
    Java学习Day027(方法与方法重载)
    【AICFD案例教程】轴流风扇仿真分析
    设计模式再探——原型模式
  • 原文地址:https://blog.csdn.net/weixin_48850734/article/details/125412158