Vue.extend构造器和$mount实例构造组件后可以用$destroy()进行卸载,$forceUpdate()进行更新,$nextTick()数据修改

html
 <div id="app">
    
        </div>
    <p><button onclick="destroy()">卸载</button></p>
    <p><button onclick="reload()">刷新</button></p>
    <p><button onclick="tick()">修改</button></p>
js
 var demo = Vue.extend({
             template:`#tmp`,
             data:function(){
                 return{
                    message:"用Vue.extend构造器生成一个组件,并用实例$mount挂载上去"
                 }
             },
             destroyed:function(){
                console.log('10-destroyed(第十个钩子函数) 销毁之后');
             },
             mounted:function(){
                console.log('4-mounted 被创建');
             },
             updated:function(){
                 console.log("6-updated 被更新后");
             }
        })
      var vm =  new demo().$mount('#app')
        function destroy(){
            vm.$destroy()
        };
        function reload(){
            vm.$forceUpdate()
        };
        function tick(){
            vm.message="原生js操作对象属性"
            // 当Vue构造器里的data值被修改完成后会调用这个方法,也相当于一个钩子函数吧,和构造器里的updated生命周期很像。
            vm.$nextTick(function(){
                console.log('原生js操作对象属性,修改后利用$nextTick来检测并输出修改的内容为'+vm.message)
            })
        }

 

posted @ 2017-06-05 23:47  xuanPhoto  阅读(702)  评论(0编辑  收藏  举报