简单来说,加 $ 的是 vue 框架定义的内部属性,不加 $ 的是用户定义的自定义属性。
内部属性是固定的几个,比如 vm.$el vm.$data vm.$props ,每一个内部属性代表不同内容,具体自己查官网 API 文档
自定义属性是用户定义在 vue 实例的 data 选项上的属性,数量不限,属性名可以随便定义
new Vue({
data: { // 这里的 data 对象通过 vm.$data 来访问,
message: 'hello world', // 这是用户自定义属性,通过 vm.message 或 vm.$data.message 来访问
age: 30 // 这也是用户自定义属性
}
})
访问用户自定义属性时候,通过 vm.属性名 访问,例如 vm.messsage vm.age
访问内部属性的时候,通过 vm.$属性名 访问,例如 vm.$el vm.$data
vm.$data 是一个 Object ,指向 new Vue({ data: {} }) 中的 data 选项对象
vm.$data === {
message: 'hello world',
age: 30
}
所以访问 vm.message 其实就是访问 vm.$data.message