为什么data必须是一个函数

news/2024/7/19 14:57:09 标签: js

如果data是一个函数的话,那么我们每次创建一个新的实例之后,就会调用一个新的data函数也就是给每一个data数据定义一个新的内存地址。这样的话,修改A而不会影响B.
主要也是受到javascript的特性影响,跟vue本身设计无关。
大家都知道.vue的组件是可以复用的,这也就意味着如果我们的data是一个普通对象的话,所有复用了这个实例的组件都会引用同一份数据,就造成了数据污染。
摘抄:https://blog.csdn.net/weixin_45811884/article/details/107541759


http://www.niftyadmin.cn/n/1371503.html

相关文章

this.$set

vue2的响应式原理是Object.defineProperty,它存在性能上的劣势意外还无法更新视图上面新加入的数据需要借助this.$set 在vue2中增加乐意个数据时,在控制台我们看是可以打印出来的,但是视图上并没有更新 图片来自:https://www.ji…

Vue中如何检测数组的变化?

vue2数组并没有使用Object.defineProperty重新定义数组的每个属性,vue中是怎么检测到数组的变化? vue2缺陷 无法监测数组的新增 无法监测用索引改变数组的操作 方法: push,pop,shift,unshift,so…

三十七个常见Vue面试题,背就完事了。

一、谈谈你对MVVM的理解? 映射关系简化,隐藏controller MVVM在MVC的基础上,把控制层隐藏掉了。 Vue不是一个MVVM框架,它是一个视图层框架。 ViewModal是一个桥梁,将数据和视图进行关联。 二、谈谈你对Vue中响应式数…

vue中如何进行依赖收集

为什么要用依赖收集:其目的在于我们观察数据的属性值发生改变时,可以通知哪些视图层使用了该数据。 我们之所以要观察数据,其目的在于当数据的属性发生变化时,可以通知那些曾经使用了该数据的地方。比如第一例子中,模板…

提交表单数据

第一种 在form标签中添加Action(提交的地址)和method(post),且有一个submit按钮<input type’submit’> 就可以进行数据的提交&#xff0c;每一个input标签都需要有一个name属性&#xff0c;才能进行提交 <form action’http://www.123.com/postValue’ method’pos…

for in,forEach,for of

for in 什么都可以遍历&#xff08;noodlist会显示原型上的属性&#xff09; for in多用于遍历对象&#xff0c;他会返回对象的属性名而for in不推荐遍历数组 为什么for in不推荐遍历数组 1.for in返回的是每个item的索引如果想对数组的每一项进行操作的话就会很复杂 2.for in…

迭代器,生成器

迭代器 for of不支持遍历普通对象&#xff0c;这里的普通对象指的是没有Symbol.iterator属性的对象。 当使用for of去遍历某一个数据结构的时候&#xff0c;首先去找Symbol.iterator&#xff0c;找到了就去遍历&#xff0c;没有找到的话不能遍历 对象的Symbol.iterator属性&am…

http知识点2

HTTP有哪些方法&#xff1f; HTTP1.0定义了三种请求方法&#xff1a; GET, POST 和 HEAD方法 HTTP1.1新增了五种请求方法&#xff1a;OPTIONS, PUT, DELETE, TRACE 和 CONNECT GET和POST有什么区别&#xff1f; 数据传输方式不同&#xff1a;GET请求通过URL传输数据&#xff0…