Vue3理解(9)
侦听器
1.计算属性允许我们声明性地计算衍生值,而在有些情况下,我们需要状态变化时执行一些方法例如修改DOM。
2.侦测数据源类型,watch的第一个参数可以市不同形式的‘数据源’,它可以市一个ref(包括计算属性),一个响应式对象,一个getter函数或者多给数据源组成的数组,不可以直接侦测一个响应式对象的属性值。
3.深层侦听器,直接给watch()传入一个响应式对象,会隐式地创建一个深层侦听器,该回调函数在所以嵌套的变更都会触发,深度侦测需要遍历所以被侦测的对象,当用于大型数据结构时,开销很大因此在必要时使用它。
4.即时回调的侦听器,watch默认时懒执行,只有当数据发生变化时才触发回调,但是有的场景需要侦听器在创建的时候立即执行一次可以使用 immediate:true 来强制侦听器立即执行。
5.watchEffect() 可以消除手动维护依赖列表的负担,如果你需要侦听一个数据结构中的几个属性,watchEffect()比深度侦听器更有效,因为它将只跟踪回调中使用到的属性,而不是递归跟踪所有属性,watchEffect仅会在其同步执行期间才会追踪依赖,在使用异步回调只有第一个await才会被追踪。
6.watch和watchEffect都能响应地执行有副作用的回调,它们之间主要是追踪响应式依赖的方式,watch只追踪明确的数据源,它不会追踪任何在回调中访问到的东西,另外,仅在数据源确实改变才会触发,watch会避免在发生副作用时追踪依赖因此,我们能更准确地控制回调函数的触发时机,watchEffect则会在副作用发生期间追踪依赖,它会在同时执行过程中,自动追踪所有能访问到的响应式属性,这更方便,而且代码往往更简洁,使得响应式依赖关系会不那么明确。
7.回调函数触发时机,当你更改了响应式状态,它可能会同时触发Vue组件更新和侦听器回调,默认情况下用户创建的侦听器会在Vue组件更新之前被调用,这意味侦听器中访问DOM是在Vue更新之前的状态,如果你想在Vue更新DOM之后需要指明 flush:'post' 选项。
8.停止侦听器,在setup()或者<script setup>中用同步语句创建的侦听器,会自动绑定到宿主组件实例上,并且会在宿主组件上自动卸载停止,因此你不必关系怎么停止一个侦听器,如果你为了防止内存泄漏需要手动停止它就调用watch或watchEffect返回的函数。
浅层侦听器
<script setup>import {ref,watch} from "vue"const data = ref('')watch(data, async(newQuestion,oldQuestion)=>{console.log('数据发生了改变')})</script>
深层侦听器
<script setup>import {ref,watch} from "vue"const data = reactive({count:0})watch(data, async(newQue/stion,oldQuestion)=>{console.log('数据发生了改变')},{deep:true}
)</script>
模板引用
1.虽然Vue的声明性渲染模型抽象了大部分对DOM的直接操作,但在某些情况下,我们仍然需要直接访问底层DOM元素,实现这一点我们可以使用特殊的ref,它允许我们在一个特定的DOM元素或子组件实例被挂载后,获得对它得直接引用。
2.在v-for中的模板引用ref,对应的ref中包含的值是一个数组,它将在元素被挂载后包含对应整个列表的所以元素。
3.函数模板引用,除了使用字符串作为名字ref还可以绑定一个函数在每次组件更新时被调用。
4.组件上的ref,如果一个子组件使用选项式API或者没有使用<script setup>,被引用的组件实例和该子组件的this完全一致,这意味着父组件对子组件的被一个属性和方法都有完全的访问权,这使得在父组件和子组件之间创建紧密耦合的实现细节变得很容易,当然也因此,应该在绝对需要时才使用组件引用。
<script setup>import {ref,onMounted} from "vue"const input= ref(null)onMounted(()=>{input.value.focus()})
</script>
<template><input :ref="input">
</template>
<script setup>import {ref,onMounted} from "vue"const input= ref(null)onMounted(()=>{input.value.focus()})
</script>
<template><input :ref="(el)={}">
</template>
相关文章:
Vue3理解(9)
侦听器 1.计算属性允许我们声明性地计算衍生值,而在有些情况下,我们需要状态变化时执行一些方法例如修改DOM。 2.侦测数据源类型,watch的第一个参数可以市不同形式的‘数据源’,它可以市一个ref(包括计算属性),一个响应式对象&…...
CRM系统中的销售漏斗有什么作用?
随着数字化发展,越来越多的企业使用CRM销售管理系统提高销售管理水平,提升盈利能力。在这个过程中,销售漏斗起到了非常重要的作用。下面就来说说,CRM系统中的销售漏斗有什么作用? 一、销售数据可视化 CRM销售漏斗通过…...
项目(模块1:用户登陆流程分析)
验证登陆点流程...
2023年中国商用服务机器人行业发展概况分析:国产机器人厂商向海外进军[图]
商用服务机器人指在非制造业的商用服务场景中,用来替代或辅助人类进行服务性质工作的机器人;常见的商用场景中,商用服务机器人主要分为终端配送类机器人,商用清洁类机器人,引导讲解类机器人等,被广泛应用在…...
千兆光模块和万兆光模块的适用场景有哪些
随着数字化和物联网的普及,对网络速度和带宽的要求也越来越高。千兆光模块和万兆光模块是两种常见的光模块,在不同的应用场景中,它们各具优势。下面我们来探讨一下千兆光模块和万兆光模块的主要适用场景。 首先是企业网络。千兆光模块常用于…...
2 files found with path ‘lib/armeabi-v7a/liblog.so‘ from inputs:
下图两个子模块都用CMakeLists.txt引用了android的log库,编译后,在它们的build目录下都有liblog.so的文件。 四个CPU架构的文件夹下都有。 上层模块app不能决定使用哪一个,因此似乎做了合并,路径就是报错里的哪个路径,…...
qt中json类
目录 QJsonValue QJsonObject QJsonArray QJsonDocument 案例: Qt 5.0开始提供了对Json的支持,我们可以直接使用Qt提供的Json类进行数据的组织和解析,下面介绍4个常用的类。 QJsonValue 该类封装了JSON支持的数据类型。 布尔类型…...
NeurIPS 2023 | AD-PT:首个大规模点云自动驾驶预训练方案
概要 自动驾驶领域的一个长期愿景是,感知模型能够从大规模点云数据集中学习获得统一的表征,从而在不同任务或基准数据集中取得令人满意的结果。之前自监督预训练的工作遵循的范式是,在同一基准数据集上进行预训练和微调,这很难实…...
设计模式-结构型模式
文章目录 一、代理模式1.静态代理2.JDK动态代理3.CGLib动态代理4.三种代理对比 二、适配器模式1.类适配器模式2.对象适配器模式 三、装饰者模式静态代理和装饰者的区别 四、桥接模式五、外观模式六、组合模式七、享元模式 结构性模式描述如何将类或对象按某种布局组成更大的结构…...
BUUCTF学习(7): 随便注,固网杯
1、介绍 2、解题 11;show tables;# select * from 1919810931114514 concat(sel,ect from 1919810931114514 ) PEREPARE y from sql; ECCUTE y; -1; sEt sql CONCAt(se,lect * from 1919810931114514;); prePare stmt from sql; EXECUTE stmt; # 结束...
【文末福利】巧用Chat GPT快速提升职场能力:数据分析与新媒体运营
欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术。关…...
院内导航系统厂商分析
随着医疗技术的不断发展和医院规模的不断扩大,院内导航系统成为了现代化医院不可或缺的一部分。患者就医时,一个高效便捷的导航系统可以帮助他们快速找到目标科室,同时也能提高医院的整体运营效率。本文将推荐五家在院内导航市场具有竞争力的…...
MES系统作业调度
一、MES系统作业调度的概念和功能 作业调度是指在制造过程中,根据生产计划和实际情况,合理安排和调度各项任务和资源,以达到最佳的生产效率和资源利用率。MES系统作业调度功能涉及以下方面: 1. 任务计划与分配:MES系…...
C++入门-引用
C入门-引用 前置知识点:函数栈帧的复用前置知识点:类型转换时产生的临时变量1.含义2.代码形式3.引用的价值1.传参数传参效率测试补充:C与Java中引用的区别 2.引用做返回值(前置知识:栈帧复用)1.传值返回2.传引用返回传引用返回并用引用接收3.静态变量传引用返回4.引用做返回值真…...
问题:Qt中软件移植到笔记本中界面出现塌缩
这是由于软件之前运行的设备DPI较低,移植到笔记本中显示设备DPI较高,导致窗体显示进行了缩放。 解决方案,在main.cpp中加入以下代码: if(QT_VERSION>QT_VERSION_CHECK(5,6,0)) QCoreApplication::setAttribute(Qt::AA_EnableHi…...
NDK编译脚本:Android.mk or CMakeLists.txt
本文来自于:https://github.com/xufuji456/FFmpegAndroid/blob/master/doc/NDK_compile_shell.md 前言 Android NDK以前默认使用Android.mk与Application.mk进行构建,但是在Android Studio2.2之后推荐使用CMake进行编译。 CMake是跨平台编译工具&#…...
低代码提速应用开发
低代码介绍 低代码平台是指一种能够帮助企业快速交付业务应用的平台。自2000年以来,低代码市场一直充斥着40大大小小的各种玩家,比如国外的Appian、K2、Pega Systems、Salesforce和Ultimus,国内的H3 BPM。 2015年以后,这个市场更是…...
Hi3516DV500 SVP_NNN添加opencv库记录
默认没有带opencv库,但是实际项目中需要用到opencv库,因此添加一下此库; 1:编译opencv源码,这里具体可以参考 海思Hi3516移植opencv以及错误调试_海思hi3516摄像头开发-CSDN博客 2:在工程的根目录下新建…...
BIO实战、NIO编程与直接内存、零拷贝深入剖析
原生 JDK 网络编程 BIO BIO,意为 Blocking I/O,即阻塞的 I/O。 BIO 基本上就是我们上面所说的生活场景的朴素实现。在 BIO 中类 ServerSocket 负责绑定 IP 地址,启动监听端口,等待客户连接;客户端 Socket 类的实例…...
计网第六章(应用层)(四)(电子邮件)
电子邮件采用客户/服务器的方式。 1、三个构成 电子邮件系统的三个组成构件:用户代理、邮件服务器以及电子邮件所需的协议。 用户代理是用户与电子邮件系统的接口,又称为电子邮件客户端软件。 邮件服务器是电子邮件系统的基础设施。因特网上所有的服…...
Lua篇笔记
. 和 : 的区别 lua的面向对象 Lua数据类型 nil number bool table string userdata thread function Lua-字符串连接 C#与Lua交互过程及原理 Lua中的闭包 常见的一些Lua功能 热重载: function reload_module(module_name) local old_module _G[module_name] --取…...
一种更具破坏力的DDoS放大攻击新模式
近日,内容分发网络(CDN)运营商Akamai表示,一种使网站快速瘫痪的DDoS放大攻击新方法正在被不法分子所利用。这种方法是通过控制数量巨大的中间设备(middlebox,主要是指配置不当的服务器)…...
WordPress 常规设置页面调用媒体中心上传图片插入URL(新版可用)
首先,我们需要在主题或插件文件夹中创建一个 JavaScript 文件(如:media-uploader.js),该文件中包含如下代码。 /*** 媒体中心上传 js **/ jQuery(document).ready(function($){var mediaUploader;$(#upload_image_but…...
Elasticsearch实现检索词自动补全(检索词补全,自动纠错,拼音补全,繁简转换) 包含demo
Elasticsearch实现检索词自动补全 自动补全定义映射字段建立索引测试自动补全 自动纠错查询语句查询结果 拼音补全与繁简转换安装 elasticsearch-analysis-pinyin 插件定义索引与映射建立拼音自动补全索引测试拼音自动补全测试繁简转换自动补全 代码实现demo结构demo获取 自动补…...
LaunchView/启动页 的实现
1. 创建启动画板,LaunchScreen.storyboard 添加组件如图: 2. 项目中设置只支持竖屏,添加启动画板,如图: 3. 创建启动画面动画视图,LaunchView.swift import SwiftUI/// 启动视图 struct LaunchView: View {/// 字符串转换为字符串…...
windows安装npm教程
在安装和使用NPM之前,我们需要先了解一下,NPM 是什么,能干啥? 一、NPM介绍 NPM(Node Package Manager)是一个用于管理和共享JavaScript代码包的工具。它是Node.js生态系统的一部分,广泛用于构…...
网络端口验证
网络端口连通性验证 1、背景2、目标3、环境4、部署4.1、准备工作4.2、安装4.3、场景测试 1、背景 在日常运维过程中经常会遇到以下两种场景: 1、程序业务端口的开具及验证 2、业务程序访问异常网络排障 2、目标 1、验证端口的正确开具 2、网络策略的连通性 3、环…...
MongoDB 索引和常用命令
一、基本常用命令 1.1 案例需求 存放文章评论的数据存放到 MongoDB 中,数据结构参考如下,其中数据库为 articledb, 专栏文章评论 comment 字段名称 字段含义 字段类型 备注 _id ID ObjectId或String Mongo的主键的字段 articlei…...
【超详细】win10安装docker
win10安装docker 因为要在win10复现一个CVE漏洞,需要用到docker所以特地自己亲自安装了一下,其实在win10上安装docker与在Linux上面的原理一致,都是将docker安装在虚拟机里,不同的是win10是安装在Hyper-V虚拟机上的,需…...
JVM调优(一)
什么时候会有内存泄漏,怎么排查? 答: 首先内存泄漏是堆中的一些对象不会再被使用了,但是无法被垃圾收集器回收,如果不进行处理,最终会导致抛出 java.lang.OutOfMemoryError 异常。 内存泄露: …...
建站平台有哪些免费一键搭建网站/怎么简单制作一个网页
从事数据分析工作,统计基础不可或缺。今天小编就来给大家好好梳理一下关于一名合格数据分析师所要掌握的统计基础都有哪些,旨在为大家查缺补漏,让大家的数据分析之路走得更扎实稳靠。统计的基本任务是对经济社会发展情况进行统计调查、统计分…...
如何用服务器代替空间做网站/seo公司优化排名
2017-02-05 16:02:14你好,具体操作如下: 1、实现手机与电脑连接的第一步操作就是打开手机“USB调试”开关。依次点击“设置”-“应用程序”-“开发工具”,勾选其中的USB调试开关项即可。 2、当手机出...2016-12-30 14:09:481、登陆路由器&…...
wordpress 免费 博客主题/西安网站优化推广方案
为了提升PHP的运行效率,程序员不光需要写出逻辑清晰,效率很高的代码,还要能对query语句进行优化。虽然我们对数据库的读取写入速度上却是无能为力,但在一些数据库类扩展像memcache、mongodb、redis这样的数据存储服务器的帮助下&a…...
网站建设怎么挣钱/18款免费软件app下载
计算机c语言期末考试卷二.doc下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。2.下载的文档,不会出现我们的网址水印。3、该文档所得收入(下载内容预览)归上传者、原创作者&a…...
澳门公交乘车码怎么弄/企业优化推广
欢迎来到人人都可写代码,大家好,我是杨晓华,今天我们的课程内容是学习语法,熟悉if else条件语句。条件语句主要格式一般有3种:if、if…else、if…else if…else1、if 语法格式:if(表达式){//如果表达式结果为true &…...
wordpress按分类显示图片/绍兴百度seo排名
1.Greenplum 体系架构 Greenplum架构图如下: Greenplum 由三部分组成:Mastert、Segment、Interconnect。 (1)Master 访问系统的入口 数据库侦听进程 (postgres) 处理所有用户连接 建立查询计划explain 协调工作处理过程 管理…...