vue.js里的data属性

vue.js里的data属性只是原始数据么?计算属性里属性的为什么不在data里,但为什么又能访问到?
如下所示,打印vm.$data里面只有a,没有b,但为什么通过vm.b又能拿到b的值,这是为什么?

<div id="example">
  a={{ a }}, b={{ b }}
</div>

var vm = new Vue({
  el: '#example',
  data: {
    a: 1
  },
  computed: {
    b: function () {
      return this.a + 1
    }
  }
})
阅读 21.8k
3 个回答

支持@Chobits 以及@W2EX,看文档总是没有错的。

首先第一个问题:

图片描述

这里并没有说会实例会代理计算属性。

至于计算属性是怎么被使用的,看这里:

图片描述

并没有把计算数据放到$data里面去哦,而是通过Object.defineProperty(this, key, def)直接定义到了实例上

@Chobits 支持。请楼主多看文档。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题