vue中的 data 为什么是一个函数

一句话总结:
因为组件复用问题要区分作用域

首先我们做一个类比
在这里插入图片描述
我们定义一个对象,再直接赋值给其他变量,我们只要改变了一个变量的值,那么其他变量的值也会相应改变,因为这几个变量都指向的同一个地址

那么我们使用函数调用呢
在这里插入图片描述
对于三个不同的变量 p3,p4,p5进行赋值,并且都是调用方法 person1,也就是说创建了三个不一样的实例,所以返回的此方法的值也就赋值给了三个不同的地址,因此这三个变量的内存地址是不同的,改变其中一个另外两个也不会改变

在vue 中,data 如果是一个对象,里面存放着很多数据 ,都是指向同一个地址,如果在vue实例中多次 调用这一个组件,那么只要其中一个组件改变daga 中的值之后,那就会其他的组件造成干扰如果我们使用函数返回一个对象,在创建不同组件的时候,会 return出不同地址的对象,就不会存在这个问题啦。
在这里插入图片描述

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值