{site_name}

{site_name}

🌜 搜索

Vue 3.0 中的计算属性和侦听器是用于响应式数据更新和派生数据的两种常用技术

前端 𝄐 0
vue的计算属性和侦听器区别,vue的侦听器,vue3的计算属性,vue计算属性和侦听属性的区别,vue计算属性和监听事件的区别,vue可以监听计算属性吗
Vue 3.0 中的计算属性和侦听器是用于响应式数据更新和派生数据的两种常用技术。

1. 计算属性(Computed Properties):
计算属性是根据其他属性或状态衍生出来的属性,当它所依赖的响应式数据发生变化时,会自动重新计算并返回一个新的值。它们可以通过在 Vue 实例中定义 computed 对象来创建。

例如,假设有一个购物车组件,其中包含一个数组 cartItems 来存储所有加入购物车的商品,并且还有一个计算属性 total 来计算购物车中所有商品的总价:

javascript
// 模拟购物车数据
const cartItems = [
{ id: 1, name: 'iPhone 12', price: 6999, quantity: 2 },
{ id: 2, name: 'MacBook Pro', price: 11999, quantity: 1 }
]

// 创建 Vue 实例
const vm = Vue.createApp({
data() {
return {
cartItems: cartItems
}
},
computed: {
total() {
return this.cartItems.reduce((total, item) => total + item.price * item.quantity, 0)
}
}
}).mount('#app')


在上面的代码中,total 计算属性通过 reduce 方法计算购物车中所有商品的总价,并且每当 cartItems 数组发生变化时,total 属性都会自动重新计算并更新。

2. 侦听器(Watchers):
侦听器是一个函数,用于监听某个响应式数据的变化,并在数据发生变化时执行特定的操作。它们可以通过在 Vue 实例中创建 watch 对象来定义。

例如,假设有一个输入框组件,其中包含一个 data 属性 message 来存储用户输入的文本内容,并且还有一个侦听器来监听这个属性的变化并打印出新的值:

javascript
// 创建 Vue 实例
const vm = Vue.createApp({
data() {
return {
message: ''
}
},
watch: {
message(newVal, oldVal) {
console.log(新输入的值是:${newVal},旧的值是:${oldVal})
}
}
}).mount('#app')


在上面的代码中,watch 对象中的 message 函数会在用户输入的文本内容发生变化时被调用,并输出新旧值的信息。

总之,计算属性和侦听器都是 Vue 中非常有用的响应式数据技术,可以帮助我们更好地处理数据的衍生和变化。