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

(2)手摸手-学习 Vue3 之 变量声明【ref 和 reactive】

手摸手-学习 Vue3 之 变量声明【ref 和 reactive】

  • 前言
  • ref
  • reactive

前言

vue3 前端代码开发过程中,必然会涉及变量声明,会用到:refreactive 。本章节 进行讲解说明。

演示的项目,经处理后的结构如下:
在这里插入图片描述

ref

用途ref 声明变量时,使用。常用于 声明 基本类型(此外,也可声明对象)

具体更多细节,参考官网:
(1)https://cn.vuejs.org/api/reactivity-core.html#ref
(2)https://cn.vuejs.org/glossary/#ref

功能讲解,演示如下:

  1. 开发代码如下:
    在这里插入图片描述
<template><div>前端开发:{{ name }}</div><button @click="changeName">改变名称</button>
</template><script lang="ts" setup>
let name = 'Vue3'
function changeName() {console.log('name 变量修改之前:', name)name = '一起学习吧~'console.log('name 变量修改之后:', name)
}
</script><style lang="scss" scoped></style>
  1. 运行后,页面效果如下:
    说明 浏览器控制台区域,是需手动按F12调出来的,默认不展示。
    在这里插入图片描述
  2. 期望实现的需求功能
    当点击 “改变名称” 这个按钮时,页面上内容 Vue3 变成 一起学习吧~

?思考:实际上,当点击按钮时,
(1) 代码层面上的 变量 name 值,能否被修改 ?
(2) 页面内容 Vue3 能否 变成 一起学习吧~ ?

点击 “改变名称” 按钮,进行验证:
在这里插入图片描述
从验证结果上来看,变量值修改成功,但页面内容没有展示。
此时,若想实现页面内容 “联动” 效果,可使用 ref 进行变量声明,将其改为响应式方式。

什么是响应式?

  • 参考官网:https://cn.vuejs.org/glossary/#reactive-effect

在这里插入图片描述

更改为响应式方式后,
打开浏览器,控制台有输出内容:变量为一个RefImpl对象,期内有一个value属性(如下)
在这里插入图片描述
再次尝试点击 “改变名称” 按钮,修改 页面上的内容,
但是,仍然没有发生变化,如下:
在这里插入图片描述
在这里插入图片描述

变量已经改为响应式的了,但页面还是没有变化

原因:代码中,操作变量的方式不对,需调用 .value ,原来的代码(如下)并未使用.value
在这里插入图片描述
调整后的代码如下:
在这里插入图片描述

代码调整完成后(使用 .value 修改变量值),
最后,再次进行功能验证,已可正常同步联动,效果如下:
在这里插入图片描述

reactive

用途ref 声明变量时,使用。只可用于 声明 对象类型(不可用于基本类型)

具体更多细节,参考官网:https://cn.vuejs.org/api/reactivity-core.html#reactive

功能讲解,演示如下:

  1. 创建如下对象,当在页面上,点击“改变名称”按钮,验证是否可同步修改变量、以及页面是否会同步显示?
    在这里插入图片描述
<template><div>客户姓名:{{ client.name }}</div><button @click="changeName">改变名称</button>
</template><script lang="ts" setup>
let client = { name: '张三', age: 10 }console.log('声明的变量是:', client)function changeName() {console.log('变量修改之前,属性值:', client.name)client.name = '诸葛亮'console.log('变量修改之后,属性值:', client.name)
}
</script><style lang="scss" scoped></style>
  1. 经验证,变量参数值会同步修改,但是页面内容不会同步显示。
    在这里插入图片描述
  2. 若想实现,变量值发生改变时,页面同步显示,可使用 reactive 声明变量,此时将变为响应式。
    在这里插入图片描述
  3. 打开浏览器页面,查看控制台输出:此时变量对象已经发生改变 为 Proxy
    在这里插入图片描述
  4. 点击 “改变名称” 按钮,验证可知:控制台中显示变量值发生改变,且页面内容同步显示。
    在这里插入图片描述

说明
(1)使用 ref 声明的变量,修改参数值时,需使用 .value
(2)此处,使用 reactive 声明的变量,修改参数值时,无需使用 .value

若有转载,请注明出处:https://blog.csdn.net/CharlesYuangc/article/details/149105167

http://www.dtcms.com/a/266399.html

相关文章:

  • Node.js核心API(fs篇)
  • 状态机管家:MeScroll 的交互秩序维护
  • Qt创建线程的方法
  • Winscope在aosp 13/14/15版本的使用总结
  • AI Agent在企业管理中的落地路径:从概念到实践的转型指南
  • 面试版-前端开发核心知识
  • HTML表格导出为Excel文件的实现方案
  • Excel 实现进制转换 Excel十进制转二进制 Excel 中文转unicode Excel实现Unicode转中文
  • 本地部署Dify并结合ollama大语言模型工具搭建自己的AI知识库
  • 面向开发者的API平台设计与选型建议【附源码示例】
  • flutter封装vlcplayer的控制器
  • 如何使用DeepSeek一键生成系统架构图?
  • 如何将大型视频文件从 iPhone 传输到 PC
  • 怎么更改cursor字体大小
  • 10分钟搭建 PHP 开发环境教程
  • VSCode 安装使用教程
  • SQL Server 进阶语法实战:从动态透视到存储过程的深度应用(第四课)
  • 高功率的照明LN2系列助力电子元件薄膜片检测
  • 推荐算法系统系列>推荐数据仓库集市的ETL数据处理
  • GaussDB权限管理:从RBAC到精细化控制的企业级安全实践
  • 设计模式(十)
  • [学习记录]Unity毛发渲染[URP]-Fin基础版
  • Django Channels WebSocket实时通信实战:从聊天功能到消息推送
  • Linux入门篇学习——Linux 帮助手册
  • 八、测试与调试
  • 万勋科技「柔韧机器人玻璃幕墙清洗」全国巡展@上海!引领清洗无人机智能化升级
  • Rovo Dev CLI Windows 安装与使用指南
  • 暑期数据结构第一天
  • CLIP的tokenizer详解
  • 2-jdk8环境下安装Kafka