6、计算属性与侦听器(conputed、watch)

简介: 6、计算属性与侦听器(conputed、watch)

1、计算属性与侦听器


区别
计算属性computed 多个值改变,为了得到一个结果,使用计算属性(为了得到一个值)
侦听器watch 一个值的改变,影响多个值,使用侦听器(为了观察一个值)
总结 在实际开发过程中,大部分问题都是可以用computed计算属性来解决,但检测路由侦听器watch来完成的


2、计算属性computed

<template>
  <div id="app">
    <!-- <h1>计算属性与侦听器</h1> -->
    <!-- 1、名字 -->
    <div class="case1">
      <h1>案例一:名字</h1>
      <p>{{ firstName + lastName }}</p>
      <p>{{ name }}</p>
    </div>
    <!-- 2、购物车 -->
    <div class="case2">
      <h1>案例二:购物车</h1>
      <table border="1px">
        <thead>
          <th>名称</th>
          <th>单价</th>
          <th>数量</th>
          <th>折扣</th>
          <th>总价</th>
          <th colspan="2">操作</th>
        </thead>
        <tbody>
          <tr>
            <td>{{ shopName }}</td>
            <td>{{ price }}</td>
            <td>{{ quality }}</td>
            <td>{{ discount }}</td>
            <td>{{ totalPrice }}</td>
            <td><button @click="sub">-</button></td>
            <td><button @click="add">+</button></td>
          </tr>
        </tbody>
      </table>
    </div>
  </div>
</template>
<script>
export default {
  data() {
    return {
      // 1、名字
      firstName: "Jas",
      lastName: "mine",
      // 2、购物
      shopName: "键盘",
      price: 100,
      quality: 1,
      discount: 0.5,
    };
  },
  // 1、计算属性(computed):多个值改变,为了得到一个结果,使用计算属性(为了得到一个值)
  computed: {
    name() {
      return this.firstName + this.lastName;
    },
    totalPrice() {
      return this.price * this.quality * this.discount;
    },
  },
  methods: {
    sub() {
      if (this.quality > 0) {
        return this.quality--;
      }
    },
    add() {
      return this.quality++;
    },
  },
};
</script>
<style scoped>
#app {
  display: flex;
  justify-content: space-around;
}
</style>

3、侦听器watch

<template>
  <div id="app">
    <!-- <h1>计算属性与侦听器</h1> -->
    <!-- 1、名字 -->
    <div class="case1">
      <h1>案例一:名字</h1>
      <p>{{ firstName + lastName }}</p>
      <p>{{ name }}</p>
    </div>
    <!-- 2、购物车 -->
    <div class="case2">
      <h1>案例二:购物车</h1>
      <table border="1px">
        <thead>
          <th>名称</th>
          <th>单价</th>
          <th>数量</th>
          <th>折扣</th>
          <th>总价</th>
          <th colspan="2">操作</th>
        </thead>
        <tbody>
          <tr>
            <td>{{ shopName }}</td>
            <td>{{ price }}</td>
            <td>{{ quality }}</td>
            <td>{{ discount }}</td>
            <td>{{ totalPrice }}</td>
            <td><button @click="sub">-</button></td>
            <td><button @click="add">+</button></td>
          </tr>
        </tbody>
      </table>
    </div>
  </div>
</template>
<script>
export default {
  data() {
    return {
      // 1、名字
      firstName: "Jas",
      lastName: "mine",
      // 2、购物
      shopName: "键盘",
      price: 100,
      quality: 1,
      discount: 0.5,
      totalPrice: 0,
    };
  },
  // 1、计算属性(computed):多个值改变,为了得到一个结果,使用计算属性(为了得到一个值)
  computed: {
    name() {
      return this.firstName + this.lastName;
    },
    // totalPrice() {
    //   return this.price * this.quality * this.discount;
    // },
  },
  // 2、侦听器(watched):一个值的改变,影响多个值,使用侦听器(为了观察一个值)
  watch: {
    quality(value) {
      this.totalPrice = this.price * value * this.discount;
    },
  },
  methods: {
    sub() {
      if (this.quality > 0) {
        return this.quality--;
      }
    },
    add() {
      return this.quality++;
    },
  },
};
</script>
<style scoped>
#app {
  display: flex;
  justify-content: space-around;
}
</style>


相关文章
|
9月前
|
JavaScript 数据处理
当数据发生变化时,`watch`函数是如何被触发的?
当数据发生变化时,`watch`函数是如何被触发的?
73 3
computed【计算属性】watch【监听】methods【方法】的区别
computed【计算属性】watch【监听】methods【方法】的区别
|
3月前
|
JavaScript
computed 计算属性和 watch 监听函数的执行顺序
【10月更文挑战第23天】理解`computed`计算属性和`watch`监听函数的执行顺序是 Vue.js 开发中的一个重要知识点,它有助于我们更好地处理数据的变化和响应,确保应用的正常运行和性能优化。
|
3月前
|
JavaScript 前端开发
计算属性和 watch 监听函数的回调函数可以异步执行吗?
【10月更文挑战第23天】总的来说,虽然计算属性和监听函数的回调函数通常是同步执行的,但在特定情况下可以进行异步操作。在实际应用中,要根据具体的需求和场景来合理选择是否使用异步执行,并注意处理好异步操作的结果和状态,以确保应用的正常运行和性能优化。
|
4月前
|
缓存 JavaScript
计算属性和 watch 方法的结合使用方式
【10月更文挑战第3天】
116 3
|
4月前
|
缓存 监控 JavaScript
computed 属性和 watch 方法的性能比较
【10月更文挑战第3天】
54 4
|
4月前
|
缓存 JavaScript
|
4月前
|
缓存 JavaScript Serverless
vue中computed计算属性、watch侦听器、methods方法的区别以及用法
vue中computed计算属性、watch侦听器、methods方法的区别以及用法
245 0
|
7月前
|
缓存 JavaScript
计算属性(computed)和侦听器(watch)
计算属性(computed)和侦听器(watch)
91 0
|
9月前
|
缓存 JavaScript
computed/watch深度监听
computed/watch深度监听
253 1