2-3.Vue全局API

Vue全局API

Vue.set全局操作-------引用外部数据

Vue.set全局操作,可以在构造器外操作构造器内部的数据,属性或方法
下面的这个例子就是在构造器内部定义一个属性,然后通过在构造器外写一个方法来操作构造器内部的数据。
例子:现在构造器里面定义一个count属性,其初始值为1,通过点击按钮,改变count的值
外部数据:就是不在Vue构造器里里的data处声明,而是在构造器外部声明,然后在data处引用。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>Vue.set实例</title>
		<script src="../assets/js/vue.js" type="text/javascript"></script>
	</head>
	<body>
		<h1>Vue.set实例,在构造器内部操作外部数据实例</h1>
		<div id="app">
			<p>外部数据:&nbsp;&nbsp;&nbsp;&nbsp;{{count}}</p>
		</div>
		<button onclick="add()">加分</button>
		<script type="text/javascript">
			function add(){
				//demo.count++;
				//dataMessages.count++;
				Vue.set(dataMessages,'count',5);
			//	Vue.set(dataMessages.arr,1,'dd')
			}
			var dataMessages={
				count:1	
			}
			var demo=new Vue({
				el:'#app',
				data:dataMessages
			})
		</script>
	</body>
</html>

在这里插入图片描述
通过Vue.set()对外部数据进行操作,
Vue.set(对象,属性,值)

Vue.set(dataMessages,'count',5);

改变外部数据的方法有以下三种:

function add(){
	//demo.count++;---用Vue对象进行操作
	//dataMessages.count++;---直接操作外部数据
	Vue.set(dataMessages,'count',5);
}

由于javascript的限制,Vue不能自动检测变动的数组,利用Vue.set改变外部数组元素的值。

  • 当利用索引更新数组中摸一个元素的值时,vue不会自动更新
  • 当改变数组的长度时,vue也不会自动更新
    所以想要改变数组元素,需要调用Vue.set方法进行全局操作

点击按钮,将数组元素下标为0的值修改为“dd",同时count的值也会发生改变。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>Vue.set实例</title>
		<script src="../assets/js/vue.js" type="text/javascript"></script>
	</head>
	<body>
		<h1>Vue.set实例,在构造器内部操作外部数据实例</h1>
		<div id="app">
			<p>外部数据:&nbsp;&nbsp;&nbsp;&nbsp;{{count}}</p>
			<ul><li v-for="item in arr">{{item}}</li></ul>
		</div>
		<button onclick="add()">加分</button>
		<script type="text/javascript">
			function add(){
				//demo.count++;
				//dataMessages.count++;
				Vue.set(dataMessages,'count',5);
				Vue.set(dataMessages.arr,1,'dd')
			}
			var dataMessages={
				count:1,
				messages:'这是Vue.set的测试数据',
				arr:['aa','bb','cc']
			}
			var demo=new Vue({
				el:'#app',
				data:dataMessages
			})
		</script>
	</body>
</html>

运行前:
在这里插入图片描述
运行后:
在这里插入图片描述
核心代码:
其中1是数组元素的下标

Vue.set(dataMessages.arr,1,'dd')
发布了32 篇原创文章 · 获赞 3 · 访问量 507

猜你喜欢

转载自blog.csdn.net/weixin_43913219/article/details/104040468
今日推荐