Vue.js系列(六): Vue的数据状态及函数!

Vue.js系列(六): Vue的数据状态及函数!


前言


注意本次用cdn形式引入js学习,有node.js的玩家可以用node.js。CDN下载地址:https://vuejs.org/js/vue.min.js以及Node.js:Vue系列: windows下npm安装vue

今天博主将为大家分享Vue.js系列(六): Vue的数据状态及函数!不喜勿喷,如有异议欢迎讨论!

有一个强大的地基才能写出健壮的程序!请先阅读博主关于:Windows10用npm安装Vue!


目标
学习使用methods对象
学习使用computed对象
学习使用watch对象

1.1.1 methods对象
methods是一个包含了{key:function}的对象.通过实例可直接访问这些函数.也可以在指令的表达式中调用.

methods 将被混入到 Vue实例中。可以直接通过 VM实例访问这些方法,或者在指令表达式中使用。方法中的 this 自动绑定为Vue 实例。
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>Vue 测试实例,Vue的数据状态及函数!</title>
		<script src="js/Vue.min.js"></script>
	</head>
	<body>
		<div id="app">

		</div>
		<script type="text/javascript">
			var vm = new Vue({
				el: "#app",
				data: {
					a: 1,
					b: 2
				},
				methods: {
					plus: function() {
						//这里的this指向 vue的实例 vm
						this.a++;

					}

				}
			});
			//可以通过 Vue 对象的实例,调用 methods 中定义的函数
			vm.plus();
			console.log(vm.a); //2
		</script>
</html>

可以通过vue对象的实例直接调用methods中的函数.


1.1.2 computed对象
计算属性将被混入到 Vue实例中。所有 getter和 setter的 this 上下文自动地绑定为 Vue实例。

和普通属性一样是在模板中绑定计算属性的,当data中对应数据发生改变时,计算属性的值也会发生改变。

methods : 只要调用它,函数就会执行。

computed : 计算属性是基于它们的依赖进行缓存的,只有相关依赖会发生改变时才会重新求值。只要相关依赖未改变,只会返回之前的结果,不再执行函数。

computed中的对象可以是key:function 也可以是 key:{ get:function,set:function }
<script type="text/javascript">
			var vm = new Vue({
				data: {
					a: 1
				},
				computed: {
					// 只读
					aDouble: function() {
						return this.a * 2
					},
					// 读取和设置
					aPlus: {
						get: function() {
							return this.a + 1
						},
						set: function(newValue) {
							this.a = newValue - 1
						}
					}
				}
			});
			console.log(vm.aPlus); // => 2
			vm.aPlus = 3 console.log(vm.a); // => 2
			//computed 仅在依赖项发生变化时才重新计算.
			//vm.aDouble依赖于vm.a,所以当vm.a发生变化时,vm.aDouble才会发生变化.
			console.log(vm.aDouble); // => 4
		</script>

1.1.3 watch对象
watch是一个对象{ key: string | Function | Object | Array },键是需要观察的表达式,值是对应回调函数。值也可以是方法名,或者包含选项的对象。Vue 实例将会在实例化时调用 $watch(),遍历 watch对象的每一个属性。
<div id="app">
			<h3>Watch对象</h3>
			<p>
				请输入搜索关键词:
				<input v-model="key">
			</p>
			<p v-text="result"></p>
		</div>
		<script type="text/javascript">
			var vm = new Vue({
				el: "#app",
				data: {
					key: '',
					result: '请先输入查询条件...',
					i: 0,
					obj: {
						a: 1
					}
				},
				watch: {
					key: function(newKey, oldKey) {
						this.result = '请稍后,正在查询中...';
						this.search();
					},
					obj.a: function(nValue, oValue) {
						//当对象obj中的属性a发生变化时触发
					}
				},
				methods: {
					search: function() {
						var vm = this;
						setTimeout(function() {
							vm.result = "第:" + vm.i + "次搜索完毕.";
						}, 500);
					}
				}
			});
		</script>
watch对应一个对象,键是观察表达式,值是对应回调.当被观察的对象发生变化时,触发回调函数.

总结

在本次学习中:

1. 掌握vue示例中的methods,computed,watch对象的使用

2. methods对象内定义函数并调用

3. 掌握computed对象的使用,并理解methods和computed的区别

4. 学习watch对象的使用

5. 关于methods,computed,watch三者区别:
    methods:只有被调用才会执行.
    computed:相关依赖发生改变时才会重新求值.
    watch:当被观察对象的值变化时触发.

勇于尝试(做练习):第二天博主会贴出答案!

    1. 在vue实例创建完成后,调用函数计算当前浏览器窗体的宽度
    2. 使用计算属性对data对象中的一个Number类型数组求和
    3. 使用watch观察一个数字,当数字小于1时禁用按钮.
    4. 例如:模拟一个商品详情页,点击购买数量即减少1,当商品库存小于1时将购买按钮禁用

到这里Vue.js系列(六): Vue的数据状态及函数!各位小伙伴快去试试吧!


最后

  • 更多参考精彩博文请看这里:《陈永佳的博客》

  • 喜欢博主的小伙伴可以加个关注、点个赞哦,持续更新嘿嘿!

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈永佳

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值