zoukankan      html  css  js  c++  java
  • Vue更新问题

    Vue更新问题

    不会触发

    数组

    • 通过数组下标为数组赋值
       n1(){
           this.list[0]= "用索引直接设置一个项"
           console.log(this.list)
        },
    数组改变,视图不变
    
    • 改变数组长度
    n2(){
    this.list.length =1
    console.log(this.list)
    },
    数组改变,视图不变
    
    • 添加属性
    n3(){
     this.list.forEach(item=>{
       item.haha = "ouhuo"
      })
      console.log(this.list)
    },
    
    • 不懂第四种 向响应式对象删除属性
    this.list.splice(0,1)
    数组改变视图也改变
    

    解决方法总结

    • 1、创建新的数组替换原有数组值

    • 2、使用JavaScript的数组操作函数,这些方法都会返回一个新数组,也是数组替换原理;

    支持的方法:

    Vue 包含一组观察数组的变异方法,所以它们也将会触发视图更新。这些方法如下:

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

    不支持的方法:

    • filter() concat() slice()

    • 3、使用vue自带的 vue.set(object , key , value ); 向响应式对象添加属性;
    • 4、使用vue自带的 vue.delete(object , key ); 向响应式对象删除属性;
    • 5、对象添加属性还可以使用Object.assign({},obj1,obj2)返回获取的新对象替换原有对象;
      代替 Object.assign(this.someObject, { a: 1, b: 2 })this.someObject = Object.assign({}, this.someObject, { a: 1, b: 2 })
    • 注意对象不能是 Vue 实例,或者 Vue 实例的根数据对象
  • 相关阅读:
    解读express框架
    mongodb学习
    Express框架
    如何添加第三方路由进度条?
    商品删除、添加login和register组件
    商品编辑实操(上文三种方法验证)
    实现添加商品页面,并且构建路由
    与json-server对接,为组件提供CRUD API功能
    json-server学习
    jQuery核心
  • 原文地址:https://www.cnblogs.com/dudududadada/p/14711895.html
Copyright © 2011-2022 走看看