• 数据响应式是指当数据改变后,会通知到使用该数据的代码。例如,视图渲染中使用了数据,数据改变后,视图也会自动更新。
new Vue内部对data的代理和监听
  • data的bug

    • 由于使用了Object.defineProperty(obj, 'n', {...}) ,必须要有'n',才能监听和代理mydata

Object.defineProperty(obj, 'n', {...}) & get(){} & set(){} 书写如下:

var _xxx = 0
Object.defineProperty(obj3,'xxx',{get(){return _xxx},set(value){_xxx = value}
})//get,set对属性的读写进行监控

  • 解决办法:刚开始的时候就声明 或者 使用Vue就提供的API

    • Vue.set & this.$set

//代码示例如下:

import Vue from "vue/dist/vue.js";
Vue.config.productionTip = false;new Vue({data: {obj: {a: 0,           // obj.a 会被 Vue 监听 & 代理b: undefined    //刚开始的时候就声明}},template: `<div>{{obj.b}}<button @click="setB">set b</button></div>`,methods: {setB() {// this.obj.b = 1;   Vue.set(this.obj, "b", 12);     //使用Vue就提供的APIthis.$set(this.obj, "b", 12);   //使用Vue就提供的API//上面2个函数一模一样}}
}).$mount("#app");

  • 如果代理和监听的是数组的话,原理和处理方法:

    • 篡改数组的API,Vue 将被侦听的数组的变更方法进行包裹,使用 Vue 提供的数组变异 API 时,会自动添加监听和代理。
import Vue from "vue/dist/vue.js";
Vue.config.productionTip = false;
new Vue({data: {array: ["a", "b", "c"]},template: `<div>{{array}}<button @click="setB">set b</button></div>`,methods: {setB() {this.array.push("d");        //用push方法添加console.log(this.array);}}
}).$mount("#app");

  • 包裹原型的API如下:
this.array.push(&amp;amp;amp;quot;d&amp;amp;amp;quot;)

vue set方法_Vue 数据响应式相关推荐

  1. chrome vue 未响应_VUE数据响应式

    响应式顾名思义就是对外界的触发变化做出响应. 在vue中,vue的data是响应式的,我们会很好奇,为什么传入new Vue({})中的data在做出变化的时候,UI中相应地显示的数据也会响应做出变化 ...

  2. vue 获取数组长度_Vue数据响应式

    响应式是一种设计模式. 页面响应式布局就是根据页面缩放大小调整布局,数据响应式就是代码根据数据变化作出反应. 深入响应式原理 - Vue.js​cn.vuejs.org 简单来说,当我们把一个 Jav ...

  3. Vue深入学习3—数据响应式原理

    1.数据响应式原理 1.1.MVVM是什么? 简单来说,就是数据变了,视图也会跟着变,首先你得定义一个带有{{ }}的模板Model,当数据中的值变化了,视图View就会跟着变化:视图模型View-m ...

  4. vue是怎么实现数据响应式的?

    数据响应式原理核心就是采用了 defineReactive,defineReactive里的Object.defineProperty对每个属性进行监听对数据进行拦截,把这些属性全部转成getter/ ...

  5. 彻底理解Vue数据响应式原理

    彻底理解Vue数据响应式原理 当创建了一个实例后,通过将数据传入实例的data属性中,会将数据进行劫持,实现响应式,也就是说当这些数据发生变化时,对应的视图也会发生改变. const data = { ...

  6. vue data数据修改_VUE的数据响应式

    什么是数据响应式? const vm =newVUE({data:{n:0}}) 上面的代码中,如果修改vm.n,那么UI中的n就会通过变化来响应我,这就是数据响应式. VUE对data做了什么? 当 ...

  7. 详细介绍Vue的数据响应式

    Vue.js的核心包括一套"响应式系统"."响应式",是指当数据改变后,Vue会通知到使用该数据的代码.例如,视图渲染中使用了数据,数据改变后,视图也会自动更新 ...

  8. php可以实现响应式吗,怎么实现Vue数据响应式

    这次给大家带来怎么实现Vue数据响应式,实现Vue数据响应式的注意事项有哪些,下面就是实战案例,一起来看一下. 前言 Vue的数据响应主要是依赖了Object.defineProperty(),那么整 ...

  9. vue 数组长度_深入理解Vue的数据响应式

    什么是响应式 当一个物体对外界的变化做出反应就叫响应式的,如"我打你一拳,你会喊疼". Vue的数据响应式 就是对数据做出改变时,视图上也会做出相应的变化. 举个例子 1const ...

最新文章

  1. 构建根文件系统启动(1)
  2. mysql查看死锁并杀掉_查看当前进程,或死锁进程,并能自动杀掉死进程_MySQL
  3. springboot 常用的异常处理方式
  4. Windows键盘驱动结构与消息机制--转
  5. JVM Class详解之一
  6. 各浏览器内核与C#WinForm开发Demo
  7. 面码份量Java_JAVA语言(28道练习题)
  8. 用poi-3.6-20091214.jar 实现java给excel资料加密
  9. 使用ML.Net和C#进行机器学习
  10. 浅谈语音识别技术的发展趋势与应用前景 - 全文
  11. 感知机原理及代码实现小结
  12. vue+高德地图 点击地图获取经纬度和详细地址
  13. db2查看数据库端口
  14. 焊接计算机软件系统,计算机在焊接中的应用
  15. Netd 服务注册过程(Android 10)
  16. 于朦胧 机器人_机器人演戏?建议于朦胧陈钰琪这部《两世欢》改名:我的面瘫男友...
  17. 实战|教你爬取全国火锅店数量,并利用地图可视化展示
  18. ubuntu root账户下添加和删除用户
  19. 勒索病毒爆发波及中石油:2万座加油站断网
  20. 无盘服务器接几根网线,设置无线路由器需要几根网线_安装路由器需要几根网线?-192路由网...

热门文章

  1. [BZOJ1815BZOJ1488]有色图/图的同构(Polya定理)
  2. [BZOJ4920][Lydsy六月月赛]薄饼切割
  3. C++构造函数初始化列表与赋值
  4. 转载:认识自我,把握机遇 —— 谢恩伟 (二)
  5. Visual Studio 2010 中编写C代码的一些常见问题
  6. [转载] Python输入,输出,Python导入
  7. [转载] python执行shell命令的几种方法
  8. [转载] 【Python】set() 集合操作与运算 元素输出顺序
  9. leecode第三十题(串联所有单词的子串)
  10. FastAdmin composer json 版本说明