首页 > 其他 > 详细

ch2 vue实例

时间:2017-03-29 23:54:59      阅读:282      评论:0      收藏:0      [点我收藏+]
Vue 实例
1 每个Vue.js都是通过创建一个Vue的根实例启动的
 var vm = new Vue({})

2 扩展Vue构造器,用预定义选项创建可复用的组件构造器
var MyComponent = Vue.extend({
        //扩展选项
   })
   //所有的 MyComponent 实例都将以预定义的扩展选项被创建
   var myComponentInstance = new MyComponent()

3 属性与方法
3.1 每个Vue实例都会代理data对象里所有的属性
var data = {a:1},
         vm = new Vue({
             data: data
         });
         console.log(vm.a === data.a); //true
         //设置属性也会影响到原始数据
         vm.a = 2;
         console.log(data.a); //2
         data.a = 3;
         console.log(vm.a); //3

3.2 只有这些被代理的属性是响应的,如果实例被创建后添加新的属性到实例上
,它不会触发视图更新

3.3 除了data属性,Vue实例暴露了一些有用的实例属性和方法
这些都有前缀$,以便与代理的data属性区分
var data1 = {a:1},
         vm = new Vue({
             el: ‘#test‘,
             data: data1,
         });
         console.log(vm.$data === data); //true
         console.log(vm.$el === document.getElementsById(‘test‘));//true

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

4 实例生命周期
4.1 每个 Vue 实例在被创建之前都要经过一系列的初始化过程。
例如,实例需要配置数据观测(data observer)、编译模版、挂载实例到 DOM ,
然后在数据变化时更新 DOM 。在这个过程中,实例也会调用一些 生命周期钩子 ,这就给我们提供了执行自定义逻辑的机会。
例如,created 这个钩子在实例被创建之后被调用:
var vm = new Vue({
            data: {
                a: 1
            },
            created: function () {
                //this指向 vm实例
                console.log(‘a is:‘+this.a); //a is:1
            }
        });
    4.2 也有一些其它的钩子,在实例生命周期的不同阶段调用,如 mounted、 updated 、destroyed 。钩子的 this 指向调用它的 Vue 实例。

5 生命周期图示

技术分享


https://cn.vuejs.org/v2/guide/instance.html

ch2 vue实例

原文:http://www.cnblogs.com/easyweb/p/6642490.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!