当前位置: 首页 > news >正文

vue知识点总结

vue2知识点总结

watch: 

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

export default {data() {return {message: ''};},watch: {message(newValue, oldValue) {console.log('message 从', oldValue,'变成了', newValue);}}
};
  • 在上述代码中:
    • watch 是 Vue 组件的一个选项,是一个对象。
    • message 是要观察的数据属性。
    • message 的值是一个函数,这个函数接收两个参数:newValue 和 oldValue
    • 当 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: true 对 user 对象进行深度观察,当 user 对象内部的 name 或 age 发生变化时,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
  • 主要用于计算属性,根据依赖的数据自动计算出新的值。
  • 计算属性是基于它们的依赖进行缓存的,只有依赖的数据发生变化时才会重新计算。
  • 适合于根据其他数据计算出一个新的值,例如根据 firstName 和 lastName 计算出 fullName
  • watch
    • 主要用于观察数据的变化并执行相应的操作。
    • 更侧重于执行一些异步或复杂的逻辑,例如发送网络请求、修改其他数据等。
http://www.lryc.cn/news/523389.html

相关文章:

  • [实现Rpc] 环境搭建 | JsonCpp | Mudou库 | callBack()
  • llamafactory使用8张昇腾910b算力卡lora微调训练qwen2-72b大模型
  • C++,设计模式,【目录篇】
  • 《目标检测数据集下载地址》
  • C 语言的void*到底是什么?
  • Linux中的文件上传和下载
  • DDD - 微服务落地的技术实践
  • fgets、scanf存字符串应用
  • 鸿蒙动态路由实现方案
  • Spring-boot3.4最新版整合swagger和Mybatis-plus
  • 基于Java的高校实习管理平台
  • 全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之一维数组(应用技巧)
  • 【2024年华为OD机试】 (B卷,100分)- 路灯照明问题(Java JS PythonC/C++)
  • SVGAPlayer error 处理
  • 2024年12月电子学会青少年机器人技术等级考试(二级)实际操作试卷
  • Swift 专题二 语法速查
  • Api网关Zuul
  • 01设计模式(D3_设计模式类型 - D3_行为型模式)
  • python编程-OpenCV(图像读写-图像处理-图像滤波-角点检测-边缘检测)角点检测
  • 费解的开关
  • 【机器学习】机器学习引领数学难题攻克:迈向未知数学领域的新突破
  • Qt之QDjango-db的简单使用
  • 缓存、数据库双写一致性解决方案
  • SUnet: A multi-organ segmentation network based on multiple attention【医学图像分割】
  • uniapp实现“到这儿去”、拨打电话功能
  • 2025年入职/转行网络安全,该如何规划?网络安全职业规划
  • 【博客之星】2024年度个人成长、强化学习算法领域总结
  • HTML5 Canvas实现的跨年烟花源代码
  • 使用通用预训练范式为 3D 基础模型铺平道路
  • SpringMVC (2)