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

【Vue3】watchEffect

【Vue3】watchEffect

  • 背景
  • 简介
  • 开发环境
  • 开发步骤及源码

背景

随着年龄的增长,很多曾经烂熟于心的技术原理已被岁月摩擦得愈发模糊起来,技术出身的人总是很难放下一些执念,遂将这些知识整理成文,以纪念曾经努力学习奋斗的日子。本文内容并非完全原创,大多是参考其他文章资料整理所得,感谢每位技术人的开源精神。

简介

本文介绍 Vue3 中如何使用 watchEffect

Vue3 中 watchEffectwatch 的区别在于:

  • 使用 watch 需要明确指明监视的数据源,可以访问被监视数据的新值和旧值;
  • 使用 watchEffect 不用明确指明监视的数据源,会自动对回调函数中使用到的数据执行监视。且在初始化时便会执行一次,无法访问被监视数据的旧值。

开发环境

分类名称版本
操作系统WindowsWindows 11
IDEVisual Studio Code1.91.1

开发步骤及源码

在 【Vue3】watch 监视多种类型数据 基础上修改 Vue 根组件 App.vue 代码。

<template><div class="person"><h1>监视多种类型数据</h1><h2>姓名:{{ person.name }}</h2><h2>年龄:{{ person.age }}</h2><h2>电影:{{ person.film.f1 }} | {{ person.film.f2 }}</h2><button @click="growUp">长大</button><button @click="changeFilm">修改全部电影</button><button @click="changeFilm1">修改第一部电影</button><button @click="changeFilm2">修改第二部电影</button></div>
</template><script setup lang="ts" name="App">
import { reactive, watchEffect } from 'vue'const person = reactive({name: 'Harry Potter',age: 10,film: {f1: '哈利·波特与魔法石',f2: '哈利·波特与密室',}
})function growUp() {person.age += 1
}function changeFilm() {person.film = {f1: '哈利·波特与阿兹卡班的囚徒',f2: '哈利·波特与火焰杯',}
}function changeFilm1() {person.film.f1 = '哈利·波特与凤凰社'
}function changeFilm2() {person.film.f2 = '哈利·波特与混血王子'
}watchEffect(() => {console.log('%s 年龄长大一岁到 %d', person.name, person.age)console.log(person.name, '出演电影', JSON.stringify(person.film))
})
</script><style scoped>
button {margin-right: 10px;
}
</style>

日志

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 基于Netty服务端快速了解核心组件
  • PHP师生荣誉管理系统—计算机毕业设计源码10079
  • RuntimeError: No CUDA GPUs are available
  • 【Redis 初阶】初识 Redis
  • 设计模式7原则
  • linux练习2
  • magento2 安装win环境和linux环境
  • Hive之扩展函数(UDF)
  • 【设计模式】工厂模式详解
  • 宝塔安装mysql5.7无法通过远程连接
  • 获取手机当前信号强度(dbm/asu值)解决 getGsmSignalStrength()总是返回99问题
  • 设计模式-备忘录
  • Django基础知识全解:从模型到视图的完整指南
  • NAS变身云盘管理大师:群晖部署AList全攻略!
  • 花几千上万学习Java,真没必要!(三十四)
  • crontab执行失败的多种原因
  • eclipse的离线汉化
  • ECMAScript6(0):ES6简明参考手册
  • hadoop集群管理系统搭建规划说明
  • Java读取Properties文件的六种方法
  • mysql中InnoDB引擎中页的概念
  • Terraform入门 - 1. 安装Terraform
  • VUE es6技巧写法(持续更新中~~~)
  • vue:响应原理
  • 半理解系列--Promise的进化史
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 服务器从安装到部署全过程(二)
  • 回顾 Swift 多平台移植进度 #2
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 浅析微信支付:申请退款、退款回调接口、查询退款
  • 区块链技术特点之去中心化特性
  • 如何进阶一名有竞争力的程序员?
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  •  一套莫尔斯电报听写、翻译系统
  • 移动端解决方案学习记录
  • 怎么将电脑中的声音录制成WAV格式
  • 如何在招聘中考核.NET架构师
  • ​用户画像从0到100的构建思路
  • #pragma once与条件编译
  • (1)无线电失控保护(二)
  • (9)目标检测_SSD的原理
  • (二)c52学习之旅-简单了解单片机
  • (二十九)STL map容器(映射)与STL pair容器(值对)
  • (附源码)ssm基于微信小程序的疫苗管理系统 毕业设计 092354
  • (附源码)ssm考生评分系统 毕业设计 071114
  • (回溯) LeetCode 78. 子集
  • (六)Flink 窗口计算
  • (论文阅读26/100)Weakly-supervised learning with convolutional neural networks
  • (每日一问)设计模式:设计模式的原则与分类——如何提升代码质量?
  • (五)c52学习之旅-静态数码管
  • (一)基于IDEA的JAVA基础10
  • .bat批处理出现中文乱码的情况
  • .Net Attribute详解(上)-Attribute本质以及一个简单示例