『Vue知识点』浅谈Vue.js中data、computed和watch有什么区别(面试多问)

data:

  1. data是一个对象,和数据相关的属性一般都放在data中
  2. data对象内部所有的内容都是成对的,也就是键值对,我们叫属性比如site、url、alexa、msg这样的属性是我们自己定义的
  3. Vue内部把data中的属性使用数据代理的方式直接绑定到了vm对象上
  4. Vue 会递归的将 data 的属性转换为 getter/setter,从而让 data 的属性能够响应数据变化。对象必须是纯粹的对象 (含有零个或多个的 key/value 对):浏览器 API 创建的原生对象,原型上的属性会被忽略。大概来说,data 应该只能是数据 - 不推荐观察拥有状态行为的对象。一旦观察过,不需要再次在数据对象上添加响应式属性。因此推荐在创建实例之前,就声明所有的根级响应式属性。官网API-data

computed:

  1. computed是计算属性,也就是计算值,它更多用于计算值的场景。
  2. computed具有缓存性,computed的值在getter执行后是会缓存的,只有在它依赖的属性值改变之后,下一次获取computed的值时才会重新调用对应的getter来计算。
  3. computed适用于计算比较消耗性能的计算场景。

watch:

  1. 更多的是「观察」的作用,类似于某些数据的监听回调,用于观察props $emit或者本组件的值,当数据变化时来执行回调进行后续操作。
  2. 无缓存性,页面重新渲染时值不变化也会执行。

小结:

  1. data属性的值,不会随赋值变量的改动而改动。如果要改变这个属性的值,则需要直接给data属性赋值,视图上对这个属性的显示才会变。
  2. computed属性,属于持续变化跟踪。在computed属性定义的时候,这个computed属性就与给它赋值的变量绑定了。改变这个赋值变量,computed属性值会随之改变。
  3. 当我们要进行数值计算,而且依赖于其他数据,那么把这个数据设计为computed。
  4. 如果你需要在某个数据变化时做一些事情,使用watch来观察这个数据变化。

若能度过一个无悔的青春,老去又算得了什么呢。----------曹方《认真地老去》

  • 7
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值