vue watch - 侦听器和computed - 计算属性 的理解和使用

写在前面

本文参考了官网以及其他博客的一些文章,加上自己的理解,感谢博主的分享


古话说的好,万事开头难,之前在开发项目过程中,一直不太理解watch的用法,知道后来用了几次,才稍稍有点理解,现在记录下来,方便后续学习更新和使用,也希望简友多多指教以及提出问题,大家互相学习。

一 首先说说 侦听器(watch),官网的解释

虽然计算属性在大多数情况下更合适,但有时也需要一个自定义的侦听器。这就是为什么 Vue 通过 watch 选项提供了一个更通用的方法,来响应数据的变化。当需要在数据变化时执行异步或开销较大的操作时,这个方式是最有用的。

个人理解就是,当数据变化时想做某些操作,就可以用watch就好了。这样说可能比较模棱两可,还是举个栗子吧。

  • 受现代 JavaScript 的限制 (以及废弃 Object.observe),Vue 不能检测到对象属性的添加或删除。由于 Vue 会在初始化实例时对属性执行 getter/setter 转化过程,所以属性必须在 data 对象上存在才能让 Vue 转换它,这样才能让它是响应的。
    watch 可以监听数组,对象,字符串,通过例子看看他们的而区别。
    ##这是简单的一个监听
<template>
<div>
      <p>changeNum: {
   {
   changeNum}}</p>
      <p>watchNum: <input type="text" v-model="watchNum"></p>
       还可以这么写
      <input v-model="example1"/>
</div>
</template>
<script>
export default {
   
  data() {
   
    return {
   
    watchNum: '张三',
    otherNum: '丰',
    changeNum: ' ',
    example1:' ',
    };
  },
  watch: {
   
      //newVal是指更新后的数据
    watchNum
Vue.js中的侦听属性(Watch)和计算属性Computed)都是用于响应数据变化的机制,但它们的使用场景和实现方式略有不同。 侦听属性(Watch)用于监听数据的变化,并在数据变化时执行相应的操作。你可以监听一个或多个数据的变化,并在回调函数中执行相应的逻辑。侦听属性是基于观察者模式实现的,当被监听的数据发生变化时,回调函数会被触发。 例如,你可以使用侦听属性来监听一个数据的变化,并在数据变化时执行一些操作,比如发送网络请求或者更新其他相关数据。下面是一个示例: ```javascript watch: { inputValue(newValue, oldValue) { // 监听inputValue的变化 // newValue为新值,oldValue为旧值 // 执行相应的操作 } } ``` 计算属性Computed)用于根据已有的数据计算出一个新的值。计算属性会缓存计算结果,只有当依赖的数据发生变化时才会重新计算。这样可以避免不必要的计算,提高性能。 例如,你可以使用计算属性来根据一些数据的值计算出一个新的结果,并在模板中使用这个计算结果。下面是一个示例: ```javascript computed: { fullName() { // 计算fullName return this.firstName + ' ' + this.lastName; } } ``` 在模板中可以直接使用计算属性 fullName 的值: ```html <div>{{ fullName }}</div> ``` 总结一下,侦听属性用于监听数据变化并执行相应的操作,而计算属性用于根据已有的数据计算出一个新的值。它们都是 Vue.js 提供的强大的响应式机制,可以帮助我们更方便地处理数据变化。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值