Vue3——第四章(响应式基础:reactive、ref)

news2024/11/29 10:01:23

一、用reactive()声明响应式状态

  • 我们可以使用 reactive() 函数创建一个响应式对象或数组:
    在这里插入图片描述

  • 响应式对象其实是 JavaScript Proxy,其行为表现与一般对象相似。不同之处在于 Vue 能够跟踪对响应式对象属性的访问与更改操作。

  • 要在组件模板中使用响应式状态,需要在 setup() 函数中定义并返回。
    在这里插入图片描述

  • 自然,我们也可以在同一个作用域下定义一个更新响应式状态的函数,并作为一个方法与状态一起暴露出去:
    在这里插入图片描述

  • 暴露的方法通常会被用作事件监听器:
    在这里插入图片描述

二、reactive() 的局限性

  1. 仅对对象类型有效(对象、数组和 Map、Set 这样的集合类型),而对 string、number 和 boolean 这样的 原始类型 无效。

  2. 因为 Vue 的响应式系统是通过属性访问进行追踪的,因此我们必须始终保持对该响应式对象的相同引用。这意味着我们不可以随意地“替换”一个响应式对象,因为这将导致对初始引用的响应性连接丢失:
    在这里插入图片描述

  • 同时这也意味着当我们将响应式对象的属性赋值或解构至本地变量时,或是将该属性传入一个函数时,我们会失去响应性:
    在这里插入图片描述

三、用 ref() 定义响应式变量

  • reactive() 的种种限制归根结底是因为 JavaScript 没有可以作用于所有值类型的 “引用” 机制。
  • 为此,Vue 提供了一个 ref() 方法来允许我们创建可以使用任何值类型的响应式 ref:
    在这里插入图片描述
  • ref() 将传入参数的值包装为一个带 .value 属性的 ref 对象:
    在这里插入图片描述
  • 和响应式对象的属性类似,ref 的 .value 属性也是响应式的。
  • 同时,当值为对象类型时,会用 reactive() 自动转换它的 .value。
  • 一个包含对象类型值的 ref 可以响应式地替换整个对象:
    在这里插入图片描述
  • ref 被传递给函数或是从一般对象上被解构时,不会丢失响应性:
    在这里插入图片描述
  • 简言之,ref() 让我们能创造一种对任意值的 “引用”,并能够在不丢失响应性的前提下传递这些引用。
1、ref 在模板中的解包
  • 当 ref 在模板中作为顶层属性被访问时,它们会被自动“解包”,所以不需要使用 .value。
    在这里插入图片描述
  • 请注意,仅当 ref 是模板渲染上下文的顶层属性时才适用自动“解包”。 例如, foo 是顶层属性,但 object.foo 不是。
    在这里插入图片描述
2、ref 在响应式对象中的解包
  • 当一个 ref 被嵌套在一个响应式对象中,作为属性被访问或更改时,它会自动解包,因此会表现得和一般的属性一样:
    在这里插入图片描述

  • 如果将一个新的 ref 赋值给一个关联了已有 ref 的属性,那么它会替换掉旧的 ref:
    在这里插入图片描述

3、响应性语法糖 (实验性)
  • 相对于普通的 JavaScript 变量,我们不得不用相对繁琐的 .value 来获取 ref 的值。
  • 这是一个受限于 JavaScript 语言限制的缺点。
  • 然而,通过编译时转换,我们可以让编译器帮我们省去使用 .value 的麻烦。
  • 请注意它仍处于实验性阶段,在最终提案落地前仍可能发生改动。
    在这里插入图片描述

四、<script setup>

  • 在 setup() 函数中手动暴露大量的状态和方法非常繁琐。
  • 幸运的是,我们可以通过使用构建工具来简化该操作。
  • 当使用单文件组件(SFC)时,我们可以使用<script setup>来大幅度地简化代码。
    在这里插入图片描述
  • <script setup>中的顶层的导入和变量声明可在同一组件的模板中直接使用。
  • 你可以理解为模板中的表达式和 <script setup> 中的代码处在同一个作用域中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/152763.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java后端第六阶段:SpringMVC

1、Spring IoC&#xff08;Inversion of Controller&#xff09;控制反转 使用对象时&#xff0c;由主动new产生对象转换为由外部提供对象&#xff0c;此过程中对象中创建控制权由程序转移到外部&#xff0c;此思想称为控制反转 Spring技术对IoC思想进行了实现 Spring提供了一…

第四十九讲:神州路由器IPv6 OSPFv3和RIPng路由的配置

神州路由器支持IPv6的内部网关路由协议常用的有OPSFv3和RIPng。 实验拓扑图如下所示 配置要求&#xff1a;在两台路由器上启用IPv6 routing&#xff0c; 在接口上配子ipv6协议后&#xff0c;通过配置RIPng和OSPFv3相关命令&#xff0c;观察学习到的路由。 配置步骤&#xff1…

产品试用记录

某产品试用记录 还可以选屏哦

【PWA学习】3. 让你的 WebApp 离线可用

引言 PWA 其中一个令人着迷的能力就是离线(offline)可用 即使在离线状态下&#xff0c;依然可以访问的 PWA离线只是它的一种功能表现而已&#xff0c;具体说来&#xff0c;它可以&#xff1a; 让我们的Web App在无网(offline)情况下可以访问&#xff0c;甚至使用部分功能&#…

Redis哨兵模式搭建

以下配置机器部署ip为 a、b、c&#xff0c;其中a为master节点 需提前创建 /app/user/oms/redis/data 目录 1.1上传 redis-5.0.5.zip 到对应目录&#xff0c;解压 unzip redis-5.0.5.zip # 生成 redis-5.0.5 目录 1.2 修改配置文件 maxclients 10000 #20000 &#xff0…

接口测试实战| GET/POST 请求区别详解

在日常的工作当中&#xff0c;HTTP 请求中使用最多的就是 GET 和 POST 这两种请求方式。深度掌握这两种请求方式的原理以及异同之处&#xff0c;也是之后做接口测试一个重要基础。GET、POST 的区别总结请求行的 method 不同&#xff1b;POST 可以附加 div&#xff0c;可以支持 …

概率论【离散型二维变量与连续性二维变量(下)】--猴博士爱讲课

6.连续型二维变量&#xff08;下&#xff09; 1/7 求边缘分布函数 边缘概率密度 边缘概率密度 2/7 求边缘密度函数 边缘概率密度 3/7 判断连续型二维变量的独立性 F(x,y) Fx(X) * Fy(Y)那么X、Y互相独立 f(x,y) fx(X) * fy(Y)那么X、Y互相独立 这种题目带入验证就可以了 先求…

百度举办首个人机共创大会,最强技术天团邀约全球开发者

1月10日&#xff0c;百度举办Create AI开发者大会&#xff08;下称“Create大会”&#xff09;。作为首个“人机共创大会”&#xff0c;AIGC&#xff08;利用AI技术自动生成内容的生产方式&#xff09;技术被深度应用&#xff0c;创造、搭建、连接了多个科技感爆棚的数字化演讲…

powershell ISE 多个选项卡,替换命令行黑窗口

安装powershell ISE设置权限解决方案1.管理员打开PowerShell2. 执行Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser运行脚本自定义函数&#xff0c;function start_service([string]$Name,$p,$r) {$NewTab $psISE.PowerShellTabs.Add()$NewTab.Displa…

ES之module

模块&#xff1a;一个一个的局部作用域的代码块 模块系统需要解决的主要问题 模块化的问题消除全局变量管理加载顺序 Module的基本用法 模块里面都是局部无法访问 切换幻灯片示例 Base.js // 默认参数 const DEFAULTS {// 初始索引initialIndex: 0,// 切换时是否有动画a…

Repvgg推理时融合BN

Batch Normalization是谷歌研究员于2015年提出的一种归一化方法&#xff0c;其思想非常简单&#xff0c;一句话概括就是&#xff0c;对一个神经元&#xff08;或者一个卷积核&#xff09;的输出减去统计得到的均值&#xff0c;除以标准差&#xff0c;然后乘以一个可学习的系数&…

数字孪生|可视化图表之堆叠面积图

上一篇文章为大家介绍了分组条形图的相关内容&#xff0c;本文介绍的是堆叠面积图。 堆叠面积图是一种特殊的面积图&#xff0c;可以用来比较在一个区间内的多个变量。堆叠面积图和普通的面积图基本一样&#xff0c;唯一的区别就是堆叠面积图每个数据系列的起点都是基于前一个数…

再学C语言30:函数——ANSI C的函数原型

一、ANSI C关于函数原型的规则 ANSI C在函数声明中同事说明所使用的的参数类型&#xff0c;即在函数原型中声明返回值类型、参数、参数个数、参数类型 int function(int a, int b); // 形式一 int function(int, int); // 形式二// 以上两种形式的定义均满足规范要求 好…

基于无线通信物联网的水库安全监测系统

水库安全监测一直是我国防洪防汛工作的重点&#xff0c;库区的雨量、水位的实时监测&#xff0c;建立水库监测系统能够有效防止洪涝灾害的发生&#xff0c;确保水库和下游地区的安全。 物通博联推出的水库安全监测系统是基于无线通信物联网技术打造的系统平台&#xff0c;由雨…

路由器基础

交换机基本功能 1.基于源MAC地址学习2.基于目标MAC地址转发3.数据过滤4.防环 交换机基于MAC地址表进行转发&#xff0c;MAC地址表默认自动产生&#xff0c;MAC地址组成三元组&#xff1a;Mac地址、端口、VLAN。默认MAC条目信息存活时间为300s并且可以修改 泛洪&#xff08;洪…

局域网主机状态管理工具LanNeighborManager

有鉴于以下两种需求&#xff0c;做了一个小工具&#xff0c;查看局域网内的IP占用情况及联通状态&#xff1a;1&#xff09;在现场需要分配静态IP&#xff0c;但是不确定已经被占用的IP地址&#xff1b;2&#xff09;查看当前局域网内当前活跃的IP地址。该工具的主要功能有&…

华宏转债上市价格预测

华宏转债基本信息转债名称&#xff1a;华宏转债&#xff0c;评级&#xff1a;AA-&#xff0c;发行规模&#xff1a;5.15亿元。正股名称&#xff1a;华宏科技&#xff0c;今日收盘价&#xff1a;17.68&#xff0c;转股价格&#xff1a;15.65。当前转股价值 转债面值 / 转股价格…

2023.1.2-1.18 AI行业周刊(第131期):程序员的艰辛和感悟

转眼间&#xff0c;还有两周不到的时间&#xff0c;就要到除夕了。今年的春节和元旦离得很近&#xff0c;只有二十多天的时间。 班上部门的同事&#xff0c;一个个也都开始阳康&#xff0c;回到工作岗位&#xff0c;做春节前产品的最后一次版本迭代。 一晃从去年三月份进入新…

3-计算字符串的编辑距离(华为机试)

题目 Levenshtein 距离&#xff0c;又称编辑距离&#xff0c;指的是两个字符串之间&#xff0c;由一个转换成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符&#xff0c;插入一个字符&#xff0c;删除一个字符。编辑距离的算法是首先由俄国科学…

Bonitasoft认证绕过和RCE漏洞分析及复现(CVE-2022-25237)

一、漏洞原理 漏洞简述 Bonitasoft 是一个业务自动化平台&#xff0c;可以更轻松地在业务流程中构建、部署和管理自动化应用程序&#xff1b; Bonita 是一个用于业务流程自动化和优化的开源和可扩展平台。 Bonita Web 2021.2版本受到认证绕过影响&#xff0c;因为其API认证…