Vue 计算属性基本和监视属性使用

计算属性 (computed)
  • 在computed属性对象中定义计算属性的方法;在页面中使用 {{方法名}} 来显示计算的结果

例如在下面的input中,如果要让该文本框内容本更,可以结合computed属性来完成,其中必须要用v-model命令进行绑定

<input type="text" placeholder="First Name" v-model="firstName"/>
computed:{
	//什么时执行: 初始化显示 / 相关的data属性数据放生改变
	firstName(){//	计算属性中的一个方法,方法的返回值作为属性值
		return this.firstName + '计算后的数据';
	},
}
  • 计算属性高级
    通过getter/setter实现对属性数据的显示和监视;
    切记:计算属性存在缓存,多次读取只执行一次getter计算
firstName:{
	//回调函数 当需要都去当前属性值时回调, 根据相关的数据计算并返回当前属性的值
	get(){
		return this.firstName + '计算后的数据';
	},
	//回调函数 监视当前属性值的变化 当属性值发生改变时回调,更新相关的属性数据
	set(value){// value 就是firstName的最新属性值
		this.firstName = '1111';
	}
}

监视属性 (watch)
  • 通过vm对象的 $watch() 或 watch配置来监视指定的属性。
    当属性变化时,回调函数会自动调用,在函数内部进行计算;
    其中监视分为配置监视和vue的实例方法
watch:{// 此为配置监视
	firstName(newValue, oldValue){
		return this.firstName + '计算后的数据';
	},
}
  • vue实例方法监视
vm.$watch('firstName',function(newValue, oldValue){
	this.firstName = newValue + '计算后的数据';
})

注意:每一个属性都有一个对应的set/get放到,它们均为回调函数;其中get方法的作用是返回当前属性的值,set(value)方法为监视作用,一但属性值更改后就会触发,value为最新的值

### Vue.js 中计算属性监视器的区别 #### 计算属性的特点 计算属性用于声明依赖其他响应式数据的状态,并自动追踪这些依赖关系。当任何被依赖的数据发生改变时,计算属性会重新求值并更新视图[^4]。 ```javascript // 定义一个简单的计算属性 computed: { fullName() { return this.firstName + ' ' + this.lastName; } } ``` #### 监视器的特点 监视器允许开发者显式定义如何应对特定数据变化的行为逻辑。对于复杂的异步操作或开销较大的处理过程尤为适用[^2]。 ```javascript watch: { user(newValue, oldValue) { console.log(`User updated from ${JSON.stringify(oldValue)} to ${JSON.stringify(newValue)}`); }, deep: true // 深度监听内部属性的变化 } ``` #### 使用场景差异 - **简单派生状态** 如果仅需基于现有数据创建新的展示形式而无需执行额外的操作,则推荐使用计算属性来简化代码结构提高性能效率[^1]。 - **复杂业务逻辑** 需要针对某些条件触发网络请求或其他耗时任务的情况下更适合采用监视器实现更灵活的控制流管理。 #### 实际应用案例比较 考虑如下情况: - 用户输入过滤列表项:此时可以利用计算属性轻松完成筛选工作而不必关心具体何时发生了变动。 - 表单验证提交前检查有效性:可能涉及到多个字段间的相互影响以及跨组件通信等问题,这时借助于监视器能够更好地分离关注点并保持良好的可维护性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值