vue.js2.0学习(二)——计算属性和监听属性

本文深入探讨Vue.js中计算属性的概念及使用方式,包括缓存机制、setter应用以及侦听属性的功能对比。通过实例展示了如何利用计算属性提高前端开发效率。

计算属性(computed)

实例:
<div id="example">
	<p>Orginal message:"{{message}}"</p>
	<p>Computed reversed message:"{{reversedMessage}}"</p>
<div>
var vm = new Vue({
	el:"#example",
	data:{
		message:"hello"
	},
	computed:{
		reversedMessage:function(){
			//'this'指向vm实例
			return this.message.split(''),reverse().join();
			
			//该方法的执行依赖于this.message的值是否发生改版,这里不能设置message的值,
			//例如:this.message="改变了"
			//但是获得message的值并进行一些操作
		}
	}
});

//data中的message的值一旦发生改变,计算属性(computed)中的reversedMessage方法就会执行

计算属性的缓存 与 方法(methods)

  • 比较

      1.计算属性是基于他们的依赖关系进行缓存的,只有在依赖关系发生改变时他们才能更新变化.
      这意味着只要message没有发生变化,多次访问reverseMessage计算属性会立即返回之前的缓存结果,
      而不必再次执行函数,但是计算属性在页面渲染后就会执行一次
    
      2.方法总会在每次触发重新渲染时调用函数
    

计算属性的 setter

computed 属性默认只有get,不过在需要是也可以提供一个set
博主个人理解:计算属性可以有多个依赖属性

  • get: 获取依赖的属性值
  • set:设置依赖的属性值
//部分代码
computed:{
	num2:{
		get:function(){
			return this.num-1;
		},
		set:function(val){		//接收设置的值,这里的val是一个形参,可以自己设置成别的
			this.num = val;
		}
	}
}

vm.num = 111;          //这里会先执行set函数进行赋值,然后再执行get函数,结果为110
注意:set函数肯定是给其依赖的属性赋值

侦听属性(watch)

通过watch来响应数据的变化,适用于异步加载数据或开销较大的操作

var vm = new Vue({
  el:"#test",
  data:{
   name:"lk",
   user:{
      id:1001,
      name:"刘凯",
      age:23,
   }
  },
  watch:{
     name:function(newValue,oldValue){              //监视name属性
        console.log("修改之前的值:" + newValue,"修改之后的值:" + oldValue);
     },
     user:{                     //监视user对象
      handler:function(newValue,oldValue){     //注意这里的两个参数是对象
		//由于user是一个对象,是按引用访问的,所以这里的newValue和oldValue是两个对象
        console.log("修改之前的值:" + newValue.name,"修改之后的值:" + oldValue.name);
      },
      deep:true        //用来检测对象内部的属性变化,如果不加就是监测对象引用地址的改变
  }
 }
});
注意:此用法不能监视对象里具体的一个属性
	如果监视的是一个对象的话,那么回调函数里的参数就是监视的对象了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值