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>

运行结果:
在这里插入图片描述

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