Vue初体验(八)属性和方法

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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

运行结果就是界面上只展示一个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的对象。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

3、Vue的实例方法

// $watch 是一个实例方法
vm.$watch('message', function (newVal, oldVal) {
  // 这个回调将在 `vm.message`  改变后调用
})
  • 1
  • 2
  • 3
  • 4
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章