4-2.Vue中的實例方法

Vue實例和內置組件

Vue實例方法

下面將分別介紹vue的實例方法:
$mount():用來掛載我們的擴展的
$destroy():用來銷燬整個掛載的
$forceUpdate():用來提示更新數據的
$nextTick():用來提示數據已經被修改的
結合vue的幾個生命週期,可以更好的理解這些實例方法

實例方法

一. $mount()方法的示例
先構造一個外部擴展:

var demoExtendsObject=Vue.extend({
	template:`<p style="color:green">{{messages}}</p>`,
	data:function(){
		return{
			messages:'這是vue實例方法中的$mount()方法'
		}
	}
});

實例化擴展,調用$mount()方法進行元素掛載

var vm=new demoExtendsObject().$mount("#demo")

運行結果:
在這裏插入圖片描述

二. $destroy()方法的示例
新建一個按鈕,完成銷燬功能,調用vue生命週期中的destroyed()方法,查看該方法的運行效果。

<p><button onclick="destroy()">銷燬</button></p>

調用vue生命週期中的destroyed()方法:

destroyed:function(){
	console.log("destroyed 已經被銷燬")
}

調用實例方法,進行卸載:

function destroy(){
	vm.$destroy();
}

運行結果:
在這裏插入圖片描述
三. $forceUpdate()()方法的示例
新建一個按鈕,完成數據更新功能,調用vue生命週期中的updated()方法,查看該方法的運行效果。
這個方法與vue生命週期中的updated鉤子函數類似

<p><button onclick="reload()">刷新</button></p>

調用vue生命週期中的updated()方法:

updated:function(){
	console.log("updated 更新完成")
}

調用實例方法,進行更新:

function reload(){
	 vm.$forceUpdate()
}

運行結果:
在這裏插入圖片描述
四. $nextTick()方法的示例
當Vue構造器裏的data值被修改完成後會調用這個方法,也相當於一個鉤子函數
新建一個按鈕,完成數據修改功能,修改messages屬性的值,修改完成後會執行用此方法。

<p><button onclick="modify()">修改</button></p>

構造modify()方法,完成數據的修改:

function modify() {
	vm.messages = "這是vue實例方法中的$nextTick()方法 ";
	vm.$nextTick(function() {
	    console.log('messages更新完後我被調用了');
	})
}

運行結果:
在這裏插入圖片描述
注意:以上四個實例方法後邊必須要有括號,沒有括號是無用的。
完整代碼:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>Vue的實例方法</title>
		<script type="text/javascript" src="../assets/js/vue.js"></script>
	</head>
	<body>
		<h1>Vue的實例方法</h1>
		<div id="demo"></div>
		<p><button onclick="destroy()">銷燬</button></p>
		<p><button onclick="reload()">刷新</button></p>
		<p><button onclick="modify()">修改</button></p>
		<script type="text/javascript">
			var demoExtendsObject = Vue.extend({
				template: `<p style="color:green">{{messages}}</p>`,
				data: function() {
					return {
						messages: '這是vue實例方法中的$mount()方法'
					}
				},
				mounted: function() {
					console.log("mounted 創建掛載")
				},
				destroyed: function() {
					console.log("destroyed 已經被銷燬")
				},
				updated: function() {
					console.log("updated 更新完成")
				}
			});
			var vm = new demoExtendsObject().$mount("#demo")

			function destroy() {
				vm.$destroy();
			}

			function reload() {
				vm.$forceUpdate()
			}

			function modify() {
				vm.messages = "這是vue實例方法中的$nextTick()方法 ";
				vm.$nextTick(function() {
					console.log('messages更新完後我被調用了');
				})
			}
		</script>
	</body>
</html>

運行結果:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章