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
    }
  }
})
阅读 22k
3 个回答

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

首先第一个问题:

图片描述

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

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

图片描述

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

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

推荐问题