vue.js 的 watch 适用场景记录 以及其中的immediate适用场景和注意事项

2023-05-16

但凡来面试的,如果说没用过watch,那么这个前端就不用招了,理论上只有两种可能,第一种,从未写过复杂逻辑,第二种,从未封装过组件;而两种情况都不能要;

watch 和 computed

computed解决的是多个变量处理一个问题;

watch解决的是单个变量处理多个变量或问题,刚好与computed形成互补形态,如果没有用过watch,那么computed用的也少,更可能的是用函数来取缔computed这种高效处理方式,使得代码写的比较臃肿;

watch 最多应用场景

就是组件!

开发组件目的有两个:

1,一个页面的功能逻辑太多了,有上千行,需要自己一块块的拆分开来,方便未来好维护,不然每次都从上到下看几千行,万一改哪里,还影响全局,导致代码维护极其困难;

2,就是复用代码,同一个下拉选择框,需要处理的逻辑较多,并且多处使用,便可以抽离成组件;

watch在组件中起到作用:

承上启下的功能

组件有特点,从外引入参数,自内返回处理结果,这个从外引入时 ,就大量用到了watch

编辑时启用immediate

对于 immediate:true 面试的好多人都不知道这干啥的,这里直接指出,这是编辑时用到的,当然你也可以在created中处理,但是很多编辑功能,watch都不仅仅处理一次,因此created单独再写一份watch逻辑则显得臃肿,直接在watch中写逻辑。

immediate:true 会导致一个问题

immediate会让watch执行顺序提升至created之前,这个可是坑点,如果你在immediate中修改了初始data值,就会导致created获取的值是修改过的值,导致一些人瞬间懵逼。

平时养成好习惯在mounted函数中加载初始数据,用无意识方式避开created这个问题,此外,既然已采用watch方式,created尽量不要去用了,直接将逻辑存放在watch逻辑中处理。

不要将逻辑放在created中处理,设置全局变量init:false,在watch中进行初次判断,之后把init:true,避免二次处理

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue.js 的 watch 适用场景记录 以及其中的immediate适用场景和注意事项 的相关文章

随机推荐

  • vivado中verilog里关于$readmemb和 $readmemh的使用方法

    vivado中verilog里关于 readmemb和 readmemh的使用方法 这两天学习verilog语言时 xff0c 对 readmemb和 readmemh怎么读文件里的数据产生了疑问 xff0c 网上大多数资料都是inter下
  • R语言:permutation test 置换检验

    1 生成男女生身高数据各20个 男身高 xff0c mean 61 180 sd 61 10 女身高 xff0c mean 61 178 sd 61 10 set seed 20211009 boy 61 rnorm 20 180 10 g
  • Mac系统原生支持NTFS格式硬盘

    所有的办法都是在没有办法的情况下才能找到 之前一直用的 Paragon NTFS 当然虽然是程序员有两种方式 一种就是支持自己的事业 用收费的 另一种就是发挥自己的特长 去破解 无奈承担不起Paragon NTFS每个版本更新都要重新购买的
  • 模板 template 的类型转换

    template lt typename T gt T to xff08 int n xff09 return T n double d 61 to lt double gt 3 float f 61 to lt float gt 2 还可
  • 两个C++编译错误及解决办法--does not name a type和field `XX' has incomplete type

    编译错误一 xff1a XX does not name a type 编译错误二 xff1a field 96 XX 39 has incomplete type 编译错误一 xff1a XX does not name a type x
  • vim 常用操作

    1 xff1a vim选中字符复制 剪切 粘贴 xff08 https www cnblogs com luosongchao p 3193153 html xff09 问题描述 xff1a vim 中选中指定字符 xff0c 进行复制 剪
  • oracle split去逗号,行列转换

    1 针对 39 1 39 39 2 39 39 3 39 39 4 39 39 5 39 xff08 逗号在字符串外面 xff09 SQL gt SELECT COLUMN VALUE FROM TABLE SYS ODCIVARCHAR2
  • 如何解决相机打开后显示灰色(只针对联想电脑)

    症状描述 xff1a 打开相机 xff0c 显示灰色 xff0c 中间有一个相机带斜杠的图标 我第二次被这玩意搞破了心态 xff0c 吐槽一句 xff1a 垃圾联想 xff0c 我丢 xff01 xff01 如何解决 xff1f 一步到位
  • python工程打包成可执行文件

    1 将python打包成exe的方式 python 上常见的打包方式目是通过 pyinstaller 来实现的 pip install pyinstaller 或者用镜像下载 xff1a 清华源 pip install pyinstalle
  • Debian 8安装、配置

    win10下双系统安装Debian 8 1 安装Debian 8 首先在Debian官网https www debian org CD 上下载网络安装CD或者完整DVD镜像 xff0c DVD镜像只需DVD 1即可 下载好镜像后做成U盘启动
  • Rust语法之原生数据类型(一)

    Rust语言有一些被认为是原生类型的数据类型 这意味着它们是语言内建的 Rust是这样的一种结构 xff0c 这种结构是标准库在这些类型上提供了一些有用的类型 xff0c 但是这些才是最原始的 Booleans Rust有一个内置的bool
  • WTL学习笔记——(5)工具条与状态条

    一 对第三部分的介绍 自从作为Windows 95的通用控件出现以来 xff0c 工具条和状态条就变成了很普遍的事物 由于MFC支持浮动的工具条从而使它们更受欢迎 随着通用控件的更新 xff0c Rebars 最初 被称为Coollbar
  • ESP8266调用心知天气API

    首先我们需要一个可以调用返回天气信息的API xff0c 这里以心知天气为例 xff0c 可以免费注册 xff0c 虽然功能受限 xff0c 但对于初学者来说 xff0c 足够了 心知天气api xff1a https api senive
  • 《信号量》讲解

    7 3 1 信号量 信号量及信号量上的操作是E W Dijkstra 在1965年提出的一种解决同步 互斥问题的较通用的方法 xff0c 并在很多操作系统中得以实现 xff0c Linux改进并实现了这种机制 信号量 semaphore 实
  • 【TouchDesigner学习笔记与资料】

    文章目录 基础知识常用快捷键TOP元件CHOP元件DAT 元件SOP元件COMP元件MAT元件 TouchDesigner是什么 xff1f 简单来说就是一种可视化的编程语言 TD 是一种编程语言 TD 不是一个 APP 应用程序 xff0
  • Java 枚举(enum) 详解7种常见的用法

    DK1 5引入了新的类型 枚举 在 Java 中它虽然算个 小 功能 xff0c 却给我的开发带来了 大 方便 用法一 xff1a 常量 在JDK1 5 之前 xff0c 我们定义常量都是 xff1a public static final
  • iOS 缓存文件到沙盒目录的执行文件夹下,并再次读取文件

    开发中我们经常要将一些文件缓存到沙盒路径下 xff0c 并且把指定的类型储存到指定文件夹下 xff0c 以便于方便管理 下面是以图片为例 首先显示缓存到指定文件夹下 xff0c 注释解释很详细 将图片存储到沙盒目录下存储成jpg 形式 xf
  • php 扩展函数openssl_decrypt 使用注意事项

    一般都采用原生数据进行处理 xff0c 通过text json方式传输 xff0c 避免base64数据被urlencode进行转码 key和 iv都是二进制的 xff0c 不是二进制 xff0c 要转成二进制 xff0c 再传入进去 da
  • 关于element-ui中dialog嵌套table时,报toggleRowSelection未定义undefined错误完美解决方案

    1 xff0c toggleRowSelection调用方式为refs方式 xff0c 直接操作DOM层 this refs multipleTable toggleRowSelection item innerGood selected
  • vue.js 的 watch 适用场景记录 以及其中的immediate适用场景和注意事项

    但凡来面试的 xff0c 如果说没用过watch xff0c 那么这个前端就不用招了 xff0c 理论上只有两种可能 xff0c 第一种 xff0c 从未写过复杂逻辑 xff0c 第二种 xff0c 从未封装过组件 xff1b 而两种情况都