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

this.$watch 侦听器 和 停止侦听器

使用组件实例的$watch()方法来命令式地创建一个侦听器;

它还允许你提前停止该侦听器
        语法:this.$watch(data, method, object)
        1. data:侦听的数据源,类型为String
        2. method:回调函数,参数一新值,参数二旧值
        3.object:配置
                a. deep:深度侦听
                b. immediate:创建时立即触发
                c. flush: 'post':更改回调机制(DOM更新后)

<script>
export default {data: () => ({account: 'Abc', // 账号emp: {name: 'Jack', // 名字salary: 7000 // 薪资},student: {name: 'Annie', // 名字age: 18 // 年龄}}),// 声明周期函数:页面成功渲染后mounted() {// 通过组件的实例调用$watch函数来创建侦听器// 语法:this.$watch(data, method, object)// 1. data:侦听的数据源,类型为String// 2. method:回调函数,参数一新值,参数二旧值// 3. object:配置//   a. deep:深度侦听//   b. immediate:创建时立即触发//   c. flush: 'post':更改回调机制(DOM更新后)this.$watch('account', (newData, oldData) => {console.log('账号的新旧值:')console.log(newData)console.log(oldData)})this.$watch('emp.salary', (newData, oldData) => {console.log('薪资的新旧值:')console.log(newData)console.log(oldData)}, { immediate: true })this.$watch('student', (newData, oldData) => {console.log('学生的新旧值:')console.log(newData)console.log(oldData)console.log(document.getElementById('titleAge').innerHTML)}, { deep: true, flush: 'post' })}
}
</script><template>账号:<input type="text" v-model="account"><hr>薪资:<input type="numner" v-model="emp.salary"><hr><h3 id="titleAge">学生年龄:<span>{{ student.age }}</span></h3>学生年龄:<input type="numner" v-model="student.age">
</template>

停止侦听器,需要自行停止侦听器,这时可以调用$watch() API 返回的函数

<script>
export default {data: () => ({account: 'Abc', // 账号stopAccountWatch: null // 调用该函数,可以停止侦听账号数据源}),// 声明周期函数:页面成功渲染后mounted() {this.stopAccountWatch = this.$watch('account', (newData, oldData) => {console.log('账号的新旧值:')console.log(newData)console.log(oldData)})}
}
</script><template>账号:<input type="text" v-model="account"><button @click="stopAccountWatch">停止侦听账号数据源</button>
</template>

 

 

http://www.lryc.cn/news/312921.html

相关文章:

  • P1030 [NOIP2001 普及组] 求先序排列题解
  • 【分布式】NCCL Split Tree kernel内实现情况 - 06
  • C语言深入学习 --- 4.自定义类型(结构体+枚举+联合)
  • AI自然语言中默认上下文长度4K 几K是什么意思?
  • vSphere 8考试认证题库 2024最新(VCP 8.0版本)
  • 系统学习Python——装饰器:“私有“和“公有“属性案例-[装饰器参数、状态保持和外层作用域]
  • 星辰天合参与编制 国内首个可兼顾 AI 大模型训练的高性能计算存储标准正式发布
  • 算法训练day38动态规划基础Leetcode509斐波纳切数70爬楼梯746使用最小花费爬楼梯
  • Leetcode 206. 反转链表
  • 电子科技大学课程《计算机网络系统》(持续更新)
  • HBase介绍、特点、应用场景、生态圈
  • 蓝桥杯错误记录
  • Spring-静态代理VS动态代理/实现代理ProxyFactory
  • 单片机精进之路-9ds18b20温度传感器
  • 支部管理系统微信小程序(管理端+用户端)flask+vue+mysql+微信小程序
  • 4、Linux-常用命令(二)
  • golang实现openssl自签名双向认证
  • 【学习】torchvision.datasets.ImageFolder()
  • pyinstaller打包的exe运行报错 No module named path
  • Vue3中Vuex状态管理库学习笔记
  • React富文本编辑器开发(二)
  • nginx代理minio客户端
  • 将ppt里的视频导出来
  • Spring Boot 3核心技术与最佳实践
  • redis缓存更新策略
  • 【操作系统学习笔记】文件管理1.4
  • 快递包装展|2024上海国际电商物流包装产业展览会
  • vue页面刷新问题:返回之前打开的页面,走了create方法(解决)
  • IJCAI23 - Continual Learning Tutorial
  • 【YOLO v5 v7 v8 v9小目标改进】HTA:自注意力 + 通道注意力 + 重叠交叉注意力,提高细节识别、颜色表达、边缘清晰度