#data
类型:Function
详细:
返回组件实例的 data 对象的函数。在 data 中,我们不建议观察具有自身状态行为的对象,如浏览器 API 对象和原型 property。一个好主意是这里只有一个表示组件 data 的普通对象。
一旦观察过,你就无法在根数据对象上添加响应式 property。因此推荐在创建实例之前,就声明所有的根级响应式 property。
实例创建之后,可以通过 vm.$data 访问原始数据对象。组件实例也代理了 data 对象上所有的 property,因此访问 vm.a 等价于访问 vm.$data.a。
以 _ 或 $ 开头的 property 不会被组件实例代理,因为它们可能和 Vue 内置的 property、API 方法冲突。你可以使用例如 vm.$data._property 的方式访问这些 property。
示例:
// 直接创建一个实例
const data = { a: 1 }
// 这个对象将添加到组件实例中
const vm = Vue.createApp({
data() {
return data
}
}).mount('#app')
console.log(vm.a) // => 1
注意,如果你为 data property 使用了箭头函数,则 this 不会指向这个组件的实例,不过你仍然可以将其实例作为函数的第一个参数来访问。
data: vm => ({ a: vm.myProp })
参考深入响应性原理 |