vue知识点总结

vue2知识点总结

watch:

watch 是 Vue 提供的一个选项,它允许你观察 Vue 实例上的数据变化。当观察的数据发生变化时,会执行相应的回调函数,这样你就可以对数据的变化做出响应,执行一些特定的操作。

javascript 复制代码
export default {
  data() {
    return {
      message: ''
    };
  },
  watch: {
    message(newValue, oldValue) {
      console.log('message 从', oldValue,'变成了', newValue);
    }
  }
};
  • 在上述代码中:
    • watch 是 Vue 组件的一个选项,是一个对象。
    • message 是要观察的数据属性。
    • message 的值是一个函数,这个函数接收两个参数:newValueoldValue
    • message 的值发生变化时,该函数会被调用,newValue 表示变化后的新值,oldValue 表示变化前的旧值。
  • 数据监听和响应

    • 最常见的使用场景是当某个数据发生变化时,需要执行一些逻辑,例如发送网络请求、更新另一个数据或执行一些计算操作。
    复制代码
    export default {
      data() {
        return {
          searchText: '',
          searchResults: []
        };
      },
      watch: {
        searchText(newValue) {
          // 当 searchText 发生变化时,发起网络请求
          this.fetchSearchResults(newValue);
        }
      },
      methods: {
        async fetchSearchResults(query) {
          // 发送网络请求
          const results = await fetch(`/api/search?query=${query}`);
          this.searchResults = await results.json();
        }
      }
    };
    • 在这个例子中,当 searchText 的值发生变化时,会调用 fetchSearchResults 方法发送网络请求并更新 searchResults 的值。
  • 深度监听

    • 当要观察的数据是一个对象或数组时,默认情况下,watch 只会观察到对象或数组的引用是否发生变化,而不会观察对象或数组内部元素的变化。如果需要深度观察对象或数组内部元素的变化,可以使用 deep: true
    • 在这个例子中,使用 deep: trueuser 对象进行深度观察,当 user 对象内部的 nameage 发生变化时,handler 函数会被调用。
    复制代码
    export default {
      data() {
        return {
          user: {
            name: '',
            age: 0
          }
        };
      },
      watch: {
        user: {
          handler(newValue, oldValue) {
            console.log('user 对象发生了变化');
          },
          deep: true
        }
      }
    };
  • 立即执行

    • 有时你可能希望在组件创建时就立即执行 watch 的回调函数,可以使用 immediate: true
    • 这个例子中,使用 immediate: true,会在组件创建时立即执行 handler 函数,打印出 count 的初始值。
    复制代码
    export default {
      data() {
        return {
          count: 0
        };
      },
      watch: {
        count: {
          handler(newValue) {
            console.log('count 的值为', newValue);
          },
          immediate: true
        }
      }
    };

    computed和watch的区别:

  • computed

  • 主要用于计算属性,根据依赖的数据自动计算出新的值。

  • 计算属性是基于它们的依赖进行缓存的,只有依赖的数据发生变化时才会重新计算。

  • 适合于根据其他数据计算出一个新的值,例如根据 firstNamelastName 计算出 fullName

  • watch

    • 主要用于观察数据的变化并执行相应的操作。
    • 更侧重于执行一些异步或复杂的逻辑,例如发送网络请求、修改其他数据等。
相关推荐
橙子家6 小时前
浏览器缓存之【基础键值存储】:Local storage 和 Session storage
前端
星星在线8 小时前
MusicFree:一个「All in One」的个人音乐服务器,让听歌回归简单
前端·后端
IT_陈寒9 小时前
Redis的SETNX并发问题让我加了三天班
前端·人工智能·后端
demo007x9 小时前
Docling 文档转换以及技术架构分析
前端·后端·程序员
京东云开发者10 小时前
京东市民服务又“上新”!这次是黑龙江“龙易办”
前端
袋鱼不重11 小时前
我的神奇同事,AI 用多了居然写了个 Open In Codex
前端·后端·ai编程
竹林81811 小时前
Web3表单签名验证:我用 wagmi 和 ethers 给 DApp 加了一个“免密登录”,踩坑记录全在这了
javascript
用户69903048487511 小时前
try catch使用场景 处理同步代码错误兼容用的
javascript·uni-app
雪碧聊技术11 小时前
Tree.js是什么?一文讲透
开发语言·javascript·ecmascript
Fireworks11 小时前
深入vue3源码解读 -- 1、响应式的基础概念
前端