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

Vue3中监听器watchEffect的使用

 总结代码:

一进页面就开始监听

<template>
  <div>数量——{{ count }}</div>
  <div>姓名——{{ nickname }}</div>
  <button @click="changecount">+</button>
  <button @click="changenickname">改名</button>
  <div>姓名:{{ userInfo.name }}</div>
  <div>年龄:{{ userInfo.age }}</div>
  <button @click="changeusername">改对象名</button>
  <button @click="changeuserage">改年龄</button>
  <button @click="stop()">停止监听</button>
</template>
<script setup>
import { ref, watch, watchEffect } from 'vue';
const count = ref(0) //数量
const nickname = ref('张三')//姓名
// 对象
const userInfo = ref({
  name: 'zs',
  age: 18
})
// 改数量
const changecount = () => {
  count.value++
}
// 改姓名
const changenickname = () => {
  nickname.value = '李四'
}
// 改对象姓名
const changeusername = () => {
  userInfo.value.name = '李四'
}
// 改对象年龄
const changeuserage = () => {
  userInfo.value.age = '20'
}

// 使用watchEffect监听 一进页面就监听 
const stop = watchEffect(() => {
  console.log('数量:', count.value);
  console.log('姓名:', nickname.value);
  console.log('对象单个数据:', userInfo.value.name);
  console.log('整个对象变化:', JSON.stringify(userInfo.value));
  oninvalidata(() => {
    console.log('监听前处理一些事情');
  })
});
</script>

获取监听dom元素

 <div ref="numcom">数量——{{ count }}</div>

 使用flush获取dom元素 post:dom加载完获取

// 使用watchEffect监听 
const stop = watchEffect((oninvalidata) => {
  console.log(numcom.value);
  oninvalidata(() => {
    console.log('监听前处理一些事情');
  })
}, {
  flush: 'post'
});


http://www.kler.cn/a/314464.html

相关文章:

  • Systemd: disable和mask的区别
  • ❤React-JSX语法认识和使用
  • arkUI:遍历数据数组动态渲染(forEach)
  • 区块链技术在电子政务中的应用
  • 【韩老师零基础30天学会Java 】07章 面向对象编程(基础)
  • 【Python TensorFlow】进阶指南(续篇一)
  • Vue使用axios二次封装、解决跨域问题
  • 【go/方法记录】cgo静态库编译以及使用dlv定位cgo崩溃问题
  • 《娱乐至死》
  • BERT模型解读与简单任务实现(论文复现)
  • ChatGPT搭上langchain的知识库RAG应用,效果超预期
  • Vue.js 与 Flask/Django 后端的高效配合指南
  • 动态线程池(五)
  • 【ESP32】ESP-IDF开发 | UART通用异步收发传输器+串口收发例程
  • 深度学习-图像处理篇1.3pytorch神经网络例子
  • 【数据仓库】数据仓库层次化设计
  • vue3(整合版)
  • docker入门总结(附错误处理,持续更新)
  • 如何使用 Python 的 sqlite3 模块操作 SQLite 数据库?
  • mac命令行分卷压缩与合并
  • 长列表加载性能优化
  • python画图1
  • springboot实战学习(6)(用户模块的登录认证)(初识令牌)(JWT)
  • python:给1个整数,你怎么判断是否等于2的幂次方?
  • java.nio.ByteBuffer的 capacity, limit, position, mark
  • 如何打造高效的远程开发团队:最佳实践与挑战