我很好奇,因为两者似乎都可以使用,并且在Vue文档中找不到答案。您有理由将Vue中的数据称为this.$data.whatever
而不是this.whatever
吗?
答案 0 :(得分:2)
带有$前缀的数据是专门为访问vue数据属性而不是用户定义的属性定义的。
例如。
var data = { foo: 'foo' } // user defined data
var inst = new Vue({ data: { foo: 'foo' } }) // data - built-in vue property
data.foo // user defined data
inst.$data.foo // vue property - data
当您位于Vue挂钩中时,只需将this.foo
用作例如。内部计算方法。
有关更多详细信息,请参见docs
答案 1 :(得分:1)
$ data属性用于访问组件外部的data属性:
var data = { a: 1 }
// direct instance creation
var vm = new Vue({
data: data
})
vm.a // => 1
vm.$data === data // => true
// must use function when in Vue.extend()
var Component = Vue.extend({
data: function () {
return { a: 1 }
}
})