vue最大的特点就是数据驱动视图。

vue的数据改变,页面一定发生改变?不一定。

当操作引用类型的数据,动态添加属性时,页面不会发生改变。

vue响应式数据原理(也叫数据绑定原理、双向数据绑定原理):

  底层是Object.defineProperty(),目前用的vue2.6版本和将来更新的vue3.0(proxy)都是通过给data中的数据加一个数据劫持(setter和getter方法)。但是不管哪种版本,ie浏览器都有兼容性问题,vue2.6不兼容ie8及以下,vue3.0不兼容ie11。

  Object.defineProperty()处理data里的数据,数据就添加上get和set方法,数据获取的时候触发get,数据修改的时候触发set。在修改数据的时候,优先触发set,触发watcher监听,再通知界面。

  vue中如果动态添加属性,该属性就没有经历过处理,就没有set和get方法,所以数据变页面不变。

  vue提供一个实例方法:vm.$set(目标对象,'动态添加的属性名','属性值')可以添加一个响应式属性,会触发视图的更新。

最新文章

  1. pdfbox加载pdf时遇到wrappedioexception报错处理方式
  2. NVelocity介绍,NVelocity中文手册文档及实例下载
  3. win10突然不能使用usb大容量存储设备(移动硬盘)的解决方法
  4. IE10、IE11 无法写入Cookie
  5. 16款最佳HTML5超酷动画演示及源码
  6. 一些.net开源项目
  7. iOS中sqlite3操作
  8. UVALive 2521 Game Prediction 题解
  9. 在windows下使用cmd命令全速下载百度云文件
  10. FFPLAY的原理(七)
  11. bind 小测试
  12. JQuery button控制div或者section
  13. F分布
  14. 【C++】不要依赖编译器的默认初始值
  15. Jmeter实现对mysql的增、删、改、查
  16. mysql插入中文数据报错 java.sql.SQLException: Incorrect string value: '\xE5\x90\x88\xE8\xAE\xA1' for column
  17. 线性回归 Linear regression(4) 局部加权回归
  18. [ActionScript 3.0] 动态链接库
  19. POI 2018.10.22
  20. C# 中的单精度与双精度区别

热门文章

  1. 一步一步的理解javascript的预编译
  2. 我的周记9——"所以快乐才是真谛"
  3. 转《深入理解 Java 内存模型》读书笔记
  4. Linux内核调优部分参数说明
  5. WPF 精修篇 事件触发器
  6. git commit 统计
  7. java--static与代码块
  8. js对象常用属性和方法:复制一个对象,获取一个对象的所有key和所有value的方法
  9. kubernetes学习之二进制部署1.16
  10. `Java`中`abstract class`与`interface`区别