watch侦听器

devtools/2024/9/23 21:59:05/

在 Vue.js 中,watch 侦听器用于观察和响应 Vue 实例上的数据变动。当你想在数据变化时执行异步或开销较大的操作时,这个方式是最有用的。与计算属性不同,watch 侦听器允许你执行更复杂的逻辑,包括异步操作,并且只有当观察的数据实际发生变化时才会触发。

watch 的基本用法

你可以在 Vue 实例的 watch 选项中添加一个或多个侦听器。每个侦听器都是一个函数,或者是一个包含 handler 方法和其他选项的对象。

示例

new Vue({
el: '#app',
data: {
message: 'Hello Vue!'
},
watch: {
message: function (newVal, oldVal) {
console.log('message changed from ' + oldVal + ' to ' + newVal);
}
}
})

在这个例子中,我们创建了一个侦听器来观察 message 属性的变化。当 message 的值改变时,侦听器函数会被调用,并且会接收到新值和旧值作为参数。

深度侦听

如果你需要侦听一个对象的所有属性,而不是只侦听对象的引用变化,你可以使用 deep 选项。但是请注意,深度侦听会使你的应用变慢,因为它会递归地遍历对象的所有属性。

示例

new Vue({
el: '#app',
data: {
obj: {
a: 1,
b: 2
}
},
watch: {
obj: {
handler: function (newVal, oldVal) {
console.log('obj changed');
},
deep: true
}
}
})

在这个例子中,我们使用了深度侦听来观察 obj 对象的所有属性。但是,只有当 obj 对象的属性被改变时,侦听器才会被触发,而不是当 obj 的引用被改变时。

立即执行

默认情况下,watch 侦听器在数据变化之后立即执行。但是,如果你希望在侦听器创建时立即执行一次,你可以使用 immediate 选项。

示例

new Vue({
el: '#app',
data: {
message: 'Hello Vue!'
},
watch: {
message: {
handler: function (newVal, oldVal) {
console.log('message changed from ' + oldVal + ' to ' + newVal);
},
immediate: true
}
}
})

在这个例子中,侦听器在创建时立即执行了一次,输出了初始的 message 值。之后,当 message 的值改变时,侦听器也会再次执行。


http://www.ppmy.cn/devtools/40761.html

相关文章

工厂自动化升级改造参考(01)--设备通信协议详解及选型

以下是整合了通信协议的特点、应用场景、优缺点以及常用接口方式的描述: 以太网/IP: 来历: 以太网是一种局域网技术,由罗伯特梅特卡夫和大卫博格在1973年开发。IP是网络层协议,负责在网络中的设备间传输数据。特点:基于标准的以太网技术,使用TCP/IP协议栈,支持高速数据传…

bat xcopy 解析

echo off set source_folder"C:\path\to\source" set destination_folder"C:\path\to\destination" set exclude_file"C:\path\to\excluded_folders.txt"REM 创建目标文件夹(如果不存在) mkdir %destination_folder% 2>…

git:分支删除

删除本地分支: git branch -d branch_name其中,branch_name 是你要删除的本地分支的名称。如果分支上有未合并的更改,使用 -d 选项会提示你确认删除。 如果要强制删除未合并的分支,可以使用 -D 选项: git branch -D…

web server apache tomcat11-33-CDI

前言 整理这个官方翻译的系列,原因是网上大部分的 tomcat 版本比较旧,此版本为 v11 最新的版本。 开源项目 从零手写实现 tomcat minicat 别称【嗅虎】心有猛虎,轻嗅蔷薇。 系列文章 web server apache tomcat11-01-官方文档入门介绍 web…

Vue创建todolist

电子书 第三章: https://www.dedao.cn/ebook/reader?idV5R16yPmaYOMqGRAv82jkX4KDe175w7xRQ0rbx6pNgznl9VZPLJQyEBodb89mqoO 没有使用VUE CLI创建项目。 创建步骤: 1, 用Vite 创建项目 2, npm run dev 运行程序 参照之前的文…

01WPS部分编写实现QT

1、新建项目 -创建wps类 -继承QMainWindow 2、菜单栏设置 3、开始实现操作 设置程序图标: pro文件中添加 RC_ICONS images/wps.ico //后面这个是文件地址哈1、字体选择大小设置 void MainWindow::initMainWindow() {// 初始化字号列表项QFontDatabase fontdb;…

详解AI算法作画原理

AI作画算法的原理主要基于深度学习和计算机视觉技术,特别是生成对抗网络(GANs)和卷积神经网络(CNNs)等模型。以下是AI作画算法原理的详细解释: 数据收集与处理: AI作画的第一步是收集大量的艺术…

【送书福利第七期】你好!Java(文末送书)

文章目录 编辑推荐内容简介作者简介目录前言/序言 编辑推荐 适读人群 :程序员;相关院校师生 本书以轻松幽默的语言,从零开始介绍Java语言。书名来源于编程语言中最经典的Hello World程序,寓意带读者从入门到精通。 书中每章都设有总结与扩展…