vue3.0 watch监听器使用方法

Vue2

export default {watch:{}}

Vue3

1、侦听ref创建的data数据

 import {ref,watch,} from 'vue'
export default {setup() {const name = ref("张三")/*** watch:侦听数据变化* oldvalue:系统自动注入,更新之前的数据* value:系统自动注入,更新之后的最新数据* **/// 普通侦听器watch(name, function (value, oldvalue) {console.log(value, oldvalue)})return {name,}},}

2、侦听 reactive 创建的data数据

 import {ref,reactive,} from 'vue'

setup中监听某个对象属性(不可以)

export default {setup() {const user = reactive({name: ''})//不支持侦听某个对象的属性user.name(Vue2中可以使用)watch(user.name, function (value, oldvalue) {console.log(value, oldvalue)})//只可以监听对象watch(user, function (value, oldvalue) {console.log(value, oldvalue)})return {user,}},}

组件内对象中监听某个对象属性

    setup() {const user = reactive({name: ''})watch(user.name, function (value, oldvalue) {console.log(value, oldvalue)})return {user}},data() {return {list: ["vue", "uniapp", ""]}},//组件内监听:watch: {"user.name": function (value, oldvalue) {console.log(value, oldvalue)},// vue3中对数组元素可进行操作,侦听器侦听不到list(value, oldvalue) {console.log(value, oldvalue)}},

3、对数组元素进行侦听

<!-- home.vue  -->
<template><div><!-- <h1>{{msg}}</h1> --><!-- <h1>{{reverseMsg}}</h1> -->ref创建执行:<input type="text" v-model="name" placeholder="请输入姓名"><hr>setup内执行:<input type="text" v-model="user.name" placeholder="请输入姓名"><hr>组件内执行:<input type="text" v-model="user.age" placeholder="请输入姓名"><hr><el-button type="primary" @click="handleName">修改</el-button></div>
</template>
<script>// 按需导入import {reactive,toRefs,ref,watch,computed} from 'vue'export default {setup() {const name = ref("张三")const user = reactive({name: '',age: ""})/*** watch:侦听数据变化* oldvalue:系统自动注入,更新之前的数据* value:系统自动注入,更新之后的最新数据* **/// 普通侦听器watch(name, function (value, oldvalue) {console.log(value, oldvalue)})// 普通侦听器watch(name, function (value, oldvalue) {console.log(value, oldvalue)}, {deep: true})return {name,user}},data() {return {list: ["vue", "uniapp", ""]}},watch: {"user.age": function (value, oldvalue) {console.log(value, oldvalue)},// vue3中对数组元素可进行操作,侦听器侦听不到,必须使用深度侦听器来侦听list(value, oldvalue) {console.log(value, oldvalue)},// 深度侦听器来侦听list: {handle(value, oldvalue) {console.log(value, oldvalue)},deep: true}},methods: {handleName() {this.msg = this.reverseMsg}},}
</script><style>
</style>

vue3.0 watch监听器使用方法相关推荐

  1. Vue3.0快速入门

    一.安装 1. cdn <script src="https://unpkg.com/vue@next"></script> 2. npm $npm ins ...

  2. Vue3.0新特性及使用方法

    1.1创建Vue3.0项目 通过脚手架 vite 安装: npm init vite-app hello-vue3 # OR yarn create vite-app hello-vue3 Vite目 ...

  3. Vue3.0如何在setup中获取定义的全局方法

    有些情况下我们需要定义全局方法 然而在vue3.0中我们定义全局方法需要在globalProperties上面定义大部分情况下还是可以定义在main.js中的 我们这里就以定义在main.js中为例 ...

  4. vue3.0 父组件调用子组件方法及获取子组件的值

    vue3.0 父组件调用子组件方法及获取子组件的值 通过对比2.0的获取及调用方式这里我们也可以借鉴2.0中的this.$refs去获取3.0和2.0的refs获取的方式有点大同小异,但是思路还是一样 ...

  5. 前端开发:Vue3.0提示警告Avoid app logic that relies on enumerating keys on a component instance… 的解决方法

    前言 在前端开发中使用Vue的开发者都知道,Vue目前已经以Vue3.0为基础版本了,也就是说Vue3.0已经成为主流版本了.还在只用Vue2.0开发没有使用Vue3.0的开发者要注意了,要赶紧熟悉和 ...

  6. Vue最全知识点,面试必备(基础到进阶,覆盖vue3.0,持续更新整理,欢迎补充讨论)

    声明:本篇文章纯属笔记性文章,非整体原创,是对vue知识的整理,对自己有很大帮助才分享出来,参考文章传送:1.童欧巴对vue知识的整理 2.我是你的超级英雄对vue知识的整理 3.vue官网 基础篇 ...

  7. Vue3.0.0-beta.1 今天它来了!!!

    2020 年 04 月 17 日,尤小右微博发布 Vue 3.0 beta 了! 看到的第一眼也是觉得学不动了!第二天,真香~所以本 Chat 简单分享下我的体验. 序 2020 年 4 月 17 日 ...

  8. Vue3.0系列(一): VUE3.0的新特性

    和Vue2.0 相比,Vue3.0有哪些亮点: 序号 特性 解析 1 Performance 性能上比Vue2.0快1.3-2倍 2 Tree shaking support 按需编译,体积更加轻量化 ...

  9. 覆盖vue3.0的最全Vue知识点

    声明:本篇文章纯属笔记性文章,非整体原创,是对vue知识的整理,对自己有很大帮助才分享出来,参考文章传送:1.童欧巴对vue知识的整理 2.我是你的超级英雄对vue知识的整理 3.vue官网 基 础 ...

最新文章

  1. Firefox 的User Agent 将移除 CPU 架构信息
  2. 67 Airflow配置MySQL数据库和LocalExecutor
  3. IDEA 引入传统 j2ee spring mvc
  4. python打包的程序很大_Pyinstaller 打包以及pipenv 虚拟环境应用,以及打包出来程序太大的解决办法...
  5. mysql中获取时间的年月日_关于苹果ios中的Date()获取时间NaN的问题
  6. python3命令需要使用命令行开发者工具_关于Python3的import问题(pycharm可以运行命令行import错误)...
  7. Linux 命令之 cd 命令-切换目录
  8. 三方面搞定http协议之“状态码”
  9. [转载] PGPool介绍和安装经验
  10. vb 字符串截取_VB进阶之玩转文件读写
  11. 智慧职教云Java题库_智慧职教作业的答案,云课堂智慧职教java职业证书题库答案,职教云智慧职教题库答案...
  12. C语言简单连点器网课必备
  13. 获取微信公众号用户的openid
  14. IDEA中springboot项目启动慢
  15. GitHub贡献统计
  16. python学生成绩管理程序设计总框图_学生成绩管理系统ER图+流程图+组织结构图-课程设计...
  17. Android移动开发
  18. 阳春三月,放飞希望---希望今年不再碌碌无为
  19. Go语言的strings包字符串处理二之字符串操作函数
  20. android provided without an @Inject constructor or an @Provides-annotated method.报错原因

热门文章

  1. c++多线程之packaged_task
  2. 阿里云云计算工程师 ACP 认证(Alibaba Cloud Certified Professional -Cloud Computing)考试大纲
  3. Windows系统的重要文件目录
  4. eureka访问出现红色字体:THE SELF PRESERVATION MODE IS TURNED OFF
  5. TouTiao开源项目 分析笔记15 新闻详情之两种类型的实现
  6. arcgis for android(二)显示二维地图
  7. windows同步linux用户,用winbind实现windowsPDC和linux系统的帐号同步
  8. 游戏开发程序员可能会遇到的英文单词
  9. SDK对接遇到的问题与解决
  10. R语言——数据格式和数据读取