vue-vue实例方法(生命周期)
一、vue实例方法分类
vue实例方法可以分类:数据、事件、生命周期。
分类 | vue实例方法名称 | 方法用户 | 备注说明 |
数据 | vm.$set(object,key,value) | 为对象object添加属性key,并指定属性值value | |
vm.$delete(object,key) | 删除对象的属性key | ||
vm.$watch(data,callback[,options]) | 侦听的数据data,回调函数,可选项 | ||
事件 | vm.$on(event,callback) | ||
vm.$once(event,callback) | |||
vm.$off([event,callback]) | |||
vm.$emit(eventName,[...args]) | |||
生命周期 | vm.$mount([elementOrSelector]) | 手动挂载vue实例。 | |
vm.$forceUpdate() | 迫使 Vue 实例重新渲染。 | ||
vm.$nextTick([callback]) | 将回调延迟到下次 DOM 更新循环之后执行。 | v2.0新增 | |
vm.$destory() | 销毁vue实例。 |
二、vue实例方法(生命周期)
1、vm.$amount() 手动挂载元素。
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>vue实例方法</title> 6 <!--引入vue--> 7 <script src="../js/vue.js"></script> 8 </head> 9 10 <body> 11 <div id="hello"> 12 <h1>{{msg}}</h1> 13 </div> 14 <script> 15 //手动挂载的写法1 16 let vm = new Vue({ 17 //el:'#hello', //去掉自动挂载元素 18 data:{ 19 msg:'欢迎来到王者荣耀', 20 flag:true, 21 }, 22 }); 23 //vue实例方法 24 //vm.$mount() 手动挂载vue实例 25 vm.$mount('#hello'); //手动挂载到#hello 26 27 //手动挂载的写法2 28 new Vue({ 29 //el:'#hello', //去掉自动挂载元素 30 data:{ 31 msg:'欢迎来到王者荣耀', 32 flag:true, 33 }, 34 }).$mount('#hello'); 35 36 </script> 37 </body> 38 </html>
2、vm.$forceUpdate()
3、vm.$nextTick() 将回调延迟到下次 DOM 更新循环之后执行。
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>vue实例方法(生命周期)</title> 6 <!--引入vue--> 7 <script src="../js/vue.js"></script> 8 </head> 9 10 <body> 11 <div id="hello"> 12 <h1>{{msg}}</h1> 13 <h2 ref='name'>米多的大名:{{name}}</h2> 14 </div> 15 <script> 16 //手动挂载的写法1 17 let vm = new Vue({ 18 el:'#hello', //去掉自动挂载元素 19 data:{ 20 msg:'欢迎来到王者荣耀', 21 name:'王舒苒' 22 }, 23 }); 24 25 //vue实例方法(生命周期) 26 27 //vm.$mount() 手动挂载vue实例 28 vm.$mount('#hello'); //手动挂载到#hello 29 30 //手动挂载的写法2 31 // new Vue({ 32 // //el:'#hello', //去掉自动挂载元素 33 // data:{ 34 // msg:'欢迎来到王者荣耀', 35 // flag:true, 36 // }, 37 // }).$mount('#hello'); 38 39 //vm.$destroy() 销毁vm实例 40 //vm.$destroy(); 41 42 //vm.$nextTick() 在DOM更新完成后再执行回调函数,一般在修改数据之后使用此方法,以便及时获取更新后的DOM 43 //修改数据 44 vm.name='赵小米'; 45 46 //输出页面显示的内容。DOM还没更新完,vue实现响应式并不是数据发生改变之后DOM立即变化,需要按照一定的策略进行DOM更新,需要时间。 47 console.log('等待DOM更新:',vm.$refs.name.textContent) 48 49 //将回调等待DOM更新完之后执行 50 vm.$nextTick(function(){ 51 //DOM更新完成后再执行此代码 52 console.log('DOM更新后执行:',vm.$refs.name.textContent); 53 }) 54 55 </script> 56 </body> 57 </html>
4、vm.$destroy() 销毁vue实例。
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>vue实例方法</title> 6 <!--引入vue--> 7 <script src="../js/vue.js"></script> 8 </head> 9 10 <body> 11 <div id="hello"> 12 <h1>{{msg}}</h1> 13 </div> 14 <script> 15 let vm = new Vue({ 16 el:'#hello', //去掉自动挂载元素 17 data:{ 18 msg:'欢迎来到王者荣耀', 19 flag:true, 20 }, 21 }); 22 23 //vue实例方法 24 //vm.$destroy() 销毁vm实例 25 vm.$destroy(); 26 27 </script> 28 </body> 29 </html>