老师,vm.$data需要加$,vm.test为什么不加呢

来源:3-2 Vue实例生命周期

蓝色天空3922447

2018-07-12

写回答

3回答

于曼丽

2018-07-17

简单来说,加 $ 的是 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

2
0

蓝色天空3922447

提问者

2018-07-14

什么时候加$,什么时候不加呢

0
0

Dell

2018-07-14

vue里面的设计是这样的,vm.test 实际上会自动去找vm.$data.test的内容

0
0

Vue2.5-2.6-3.0开发去哪儿网App 零基础入门到实战

课程紧跟Vue3版本迭代,企业主流版本Vue2+Vue3全掌握

10675 学习 · 8191 问题

查看课程