1、Vue会代理data对象里面所有的属性!!

这句话的意思就是,只有在data对象里面明确的写着的属性,Vue才会真的监听到属性的变化,当我们变化这个属性的值的时候,才会引发界面的渲染,否则,Vue无法监听到这种渲染,就不会引发界面渲染。
示例demo:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>vue学习</title>
    <script type="text/javascript" src="https://unpkg.com/vue/dist/vue.js"></script>
</head>
<body>
<div id="app">
    <span>{{message}}</span>
    <span>{{message2}}</span>
</div>
<script>
    var vm = new Vue({
        el:"#app",
        data:{
            message:"hello"
        }
    });
    vm.message = 'world';
    vm.message2 = 'world';
</script>
</body>
</html>

运行结果就是界面上只展示一个world。因为我们的data中只有message,而没有message2.

2、Vue的实例属性

什么是实例属性?顾名思义,实例属性就是实例化了的属性,相当于一个构造函数中this.name = name;this.age = age; 的意思。

实例的概念是针对JavaScript中的原型的概念来区别的。原型就是我没必要实例化这个对象,本身就存在的原型的方法或者原型的属性。

如果你学过java,实例的意思类似于java中的成员变量,而原型相当于java中的静态变量。

在Vue中,为了区分,把所有的实例属性或者方法,前面都加上了”$”符号。

var vm = new Vue({
    el:"#app",
    data:{
        message:"hello"
    }
});
console.log(vm.$el);//获取了id为app的节点。
console.log(vm.$data);//获取了属性为message的对象。

3、Vue的实例方法

// $watch 是一个实例方法
vm.$watch('message', function (newVal, oldVal) {
  // 这个回调将在 `vm.message`  改变后调用
})
Logo

前往低代码交流专区

更多推荐