• vue 关于数组和对象的更新


    在日常开发中,我们用的最多的就是 绑定数据

    <div v-for="item in data" :key="item.id">
    <!-- 内容 -->
    </div>

    如果你有ng的开发经验,假设 data 你要更新数据了

    this.data=res.data;

    但是这在vue中 并不会起到作用,DOM并没有触发变化。

    vue不是已经实现的实时数据双向绑定,那么model层发生了变化之后,为什么view层没有更新呢???

    看官网 这里才发现 深入响应式原理  列表渲染

    数组检测更细变异的方法

    • push()
    • pop()
    • shift()
    • unshift()
    • splice()
    • sort()
    • reverse()

    注意事项

    由于 JavaScript 的限制,Vue 不能检测以下变动的数组:

    1.  this.data[index] = res.data;

    2.  this.data.length = 0;

     

    正确的操作方式

    1. Vue.$set(this.data, 1, {name:"huangenai",age:"22"})

    2.   vm.items.splice(0)

    对象

    还是由于 JavaScript 的限制,Vue 不能检测对象属性的添加或删除:

    <script> 
    export default {
          data(){
                return {
                    userProfile: {
                        name: 'Anika'
                    }
                    user: {
                       name: "huangenai",
                       age: 12
                    }
                }
         },
         mounted() {
               this.$set(this.userProfile, 'age', 27)
               this.user = Object.assign({}, this.user, {
                                         age: 22,
                                         name: "huangenai"
               });
         }
       }
    </script>

    此随笔乃本人学习工作记录,如有疑问欢迎在下面评论,转载请标明出处。

    如果对您有帮助请动动鼠标右下方给我来个赞,您的支持是我最大的动力。

  • 相关阅读:
    线程私有数据
    C
    Zend_Json 简介 --(手冊)
    Spring之AOP实现面向切面编程
    JDBC框架
    NYOJ15-括号匹配(二)-区间DP
    SDUTOJ 贪心 -商人小鑫
    Java 8 类型转换及改进
    java内存结构(执行时数据区域)
    Android Studio 编译Gradle提示编码错误
  • 原文地址:https://www.cnblogs.com/huangenai/p/9836811.html
Copyright © 2020-2023  润新知