Vue 的响应式数据 ref的使用

news2024/11/25 18:58:55

ref  是 vue 提供给我们用于创建响应式数据的方法。

ref 常用于创建基本数据,例如:string、number、boolean 等。

ref 还是通过 Object.defineProperty 的 get 与 set 方法,实现的响应式数据。

 ref 创建基本数据:

<template>
  <p>商品数量:{{ num }}</p>
  <button @click="addNum">增加</button>
</template>

<script>
// 引入 ref 函数
import { ref } from 'vue'
export default {
  name: "Home",
  setup() {
    // 使用 ref 创建基本数据
    const num = ref(0);
    // 创建方法
    const addNum = () => {
      num.value++;
      // 返回的是一个对象,我们需要的值在 value 属性中
      console.log(num);
    }
    // 返回数据
    return {
      num,
      addNum
    }
  }
}
</script>

通过 ref 创建的数据是一个对象的格式,其中的 value 属性才是我们需要的值,所以在 script 标签中,需要通过 value 属性才能使用或修改 ref 数据。

:在 template 模板中不需要写 value ,因为 template 模板会自动识别 ref 数据。

  ref 创建引用数据【不推荐】:

<template>
  <p>姓名:{{ info.name }}</p>
  <p>年龄:{{ info.age }}</p>
  <p>性别:{{ info.sex }}</p>
  <button @click="editInfo">修改信息</button>
</template>

<script>
// 引入 ref 函数
import { ref } from 'vue'
export default {
  name: "Home",
  setup() {
    // 使用 ref 创建引用数据
    const info = ref({
      name: "张三",
      age: 20,
      sex: "男"
    });
    // 创建方法
    const editInfo = () => {
      info.value.name = "李四";
      info.value.age = 22;
      info.value.sex = "女";
      // info.value 是一个 proxy 对象,proxy 对象内的数据可以直接使用
      console.log(info.value);
    }
    // 返回数据
    return {
      info,
      editInfo
    }
  }
}
</script>

ref 也可以创建引用数据。并且在获取第一层数据时,需要使用 value 属性,之后的数据可以直接使用。

 

原创作者:吴小糖

创作时间:2023.10.13 

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

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

相关文章

springboot 通过url下载文件并上传到OSS

DEMO流程 传入一个需要下载并上传的url地址下载文件上传文件并返回OSS的url地址 springboot pom文件依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w…

【【萌新的SOC学习之基于BRAM的PS和PL数据交互实验】】

萌新的SOC学习之基于BRAM的PS和PL数据交互实验 基于BRAM的PS和PL的数据交互实验 先介绍 AXI BRAM IP核控制器的简介 AXI BRAM ip核 是xilinx提供的一个软核 这个ip核被设计成 AXI的一个从机接口 用于AXI互联的集成 系统的主设备和本地的RAM进行通信 &#xff08;我们可以通过这…

大数据分析/开发项目实战班

大数据分析/开发项目实战班采用新型教学模式&#xff0c;让学生“学有所用&#xff0c;学能所用”&#xff0c;角色演练开展项目式教学&#xff0c;将产业项目与教学知识结合&#xff0c;突出学生的主体性&#xff0c;打破传统教学壁垒。 大数据分析/开发项目实战班介绍&#x…

ubuntu下yolov6 tensorrt模型部署

文章目录 ubuntu下yolov6 tensorrt模型部署一、Ubuntu18.04环境配置1.1 安装工具链和opencv1.2 安装Nvidia相关库1.2.1 安装Nvidia显卡驱动1.2.2 安装 cuda11.31.2.3 安装 cudnn8.21.2.4 下载 tensorrt8.4.2.41.2.5 下载仓库TensorRT-Alpha并设置 二、从yolov6源码中导出onnx文…

Linux高性能服务器编程 学习笔记 第十三章 多线程编程

早期Linux不支持线程&#xff0c;直到1996年&#xff0c;Xavier Leroy等人开发出第一个基本符合POSIX标准的线程库LinuxThreads&#xff0c;但LinuxThreads效率低且问题多&#xff0c;自内核2.6开始&#xff0c;Linux才开始提供内核级的线程支持&#xff0c;并有两个组织致力于…

【灵动 Mini-G0001开发板】+Keil5开发环境搭建+ST-Link/V2程序下载和仿真+4颗LED100ms闪烁。

我们拿到手里的是【灵动 Mini-G0001开发板】 如下图 我们去官网下载开发板对应资料MM32G0001官网 我们需要下载Mini—G0001开发板的库函数与例程&#xff08;第一手学习资料&#xff09;Keil支持包&#xff0c; PCB文件有需要的&#xff0c;可以自行下载。用户指南需要下载&a…

在Mission Planner上校准外置GPS罗盘

环境 windows 11 pixhawk 2.4.8 GPS M8N Mission Planner 1.3.80 前提 已经校准pixhawl自带的加速度计 根据提示&#xff0c;转动pixhawk&#xff0c;按空格键进行下一个步骤&#xff0c;成功后提示success 校准GPS罗盘 pixhawk飞控支持使用双罗盘&#xff08;也就是内置…

【LeetCode热题100】--394.字符串解码

394.字符串解码 思路&#xff1a; 定义两个栈&#xff0c;用于存放数字和字符如果是遇到’[&#xff0c;则数字和字母进栈如果遇到’]&#xff0c;则出栈&#xff0c;并拼接成一个字符串注意考虑多个数字在一起的情况 class Solution {public String decodeString(String s) …

MySQL的index merge(索引合并)导致数据库死锁分析与解决方案 | 京东云技术团队

背景 在DBS-集群列表-更多-连接查询-死锁中&#xff0c;看到9月22日有数据库死锁日志&#xff0c;后排查发现是因为mysql的优化-index merge&#xff08;索引合并&#xff09;导致数据库死锁。 定义 index merge(索引合并)&#xff1a;该数据库查询优化的一种技术&#xff0…

每日leetcode_775全局倒置与局部倒置

每日leetcode_755全局倒置与局部倒置 记录自己的成长&#xff0c;加油。 题目出处&#xff1a;775. 全局倒置与局部倒置 - 力扣&#xff08;LeetCode&#xff09; 题目 题目简要&#xff1a; 全局倒置&#xff1a;左边的大于右边的&#xff08;不需要紧挨着&#xff09; 局部…

Chrome插件精选 — 网页截图插件

Chrome实现同一功能的插件往往有多款产品&#xff0c;逐一去安装试用耗时又费力&#xff0c;在此为某一类型插件记录下比较好用的一款或几款&#xff0c;便于节省尝试的时间和精力。 捕捉网页截图 - FireShot 下载地址 (访问密码: 8276) Fireshot是一款浏览器插件&#xff0c…

2023.09全国青少年软件编程(scratch图形化)等级考试试卷(一级)

2023年9月全国青少年软件编程 scratch图形化 等级考试试卷&#xff08;一级&#xff09; 第 1 题 下列哪项内容是不可以修改的&#xff1f;&#xff08; &#xff09; A&#xff1a;角色名称 B&#xff1a;造型名称 C&#xff1a;舞台名称 D&#xff1a;背景名称 第 2 题…

11款新编程工具!

导读作为一名开发人员&#xff0c;对于工具的需求是一直都有的。工具使得开发人员只需要关注那些重要的事情就可以了&#xff0c;因此工作也更有效率&#xff0c;生活也更轻松了。对于开发人员来说&#xff0c;由于很难找到更好的替代方案&#xff0c;因此只能一直使用那些熟悉…

Oracle update 关联更新优化方法

关联更新顾名思义就是指&#xff0c;更新的数据从关联的表中获取并update到目标表。并且该SQL将会是一个天然的嵌套循环。有两种优化思路解决&#xff1a; 1、PLSQL 根据rowid更新 是否需要加order by rowid的考量&#xff1a; 如果buffer cache足够大&#xff0c;能够放得下要…

PyTorch 深度学习之卷积神经网络(基础篇)Basic CNN(九)

0. Revision: Fully connected Neural Network 全连接 1. Convolution Neural Network 保留空间信息 1.1 Convolution Convolution-Single Input Channel 单通道 数乘 3 input Channels 3通道 N input Channels N input Channels and M output channel M 个卷积核 1.2 conv…

jmeter性能测试过程中遇到的问题及解决方法

问题1 如何在大并发测试下&#xff0c;让登录或者后续接口只执行一次&#xff1f; 分析 这个问题网上的答案其实很多&#xff0c;但是大多不靠谱。 比如推荐使用仅一次控制器&#xff0c;但是仅一次控制器对线程组无效&#xff1b;比如推荐跨线程组调用&#xff0c;但是这样…

让ChatGPT等模型学会自主思考!开创性技术“自主认知”框架

ChatGPT、百度文心一言、Bard等大语言模型展现出了超强的创造能力&#xff0c;加速了生成式AI的应用进程。但AI模型只能基于训练数据执行各种任务&#xff0c;无法像人类一样利用生活知识、过往经验用于复杂的推理和决策。 例如&#xff0c;在玩游戏时&#xff0c;人类可以利用…

mysql中的几种排名函数

mysql中的排名函数 mysql里面的排名函数&#xff0c;涉及有以下几个&#xff1a; rank()、dense_rank()、row_number() 1、rank() 函数 RANK() OVER (PARTITION BY <expression>[{,<expression>...}]ORDER BY <expression> [ASC|DESC], [{,<expression…

如何用 ChatGPT 的 Advanced Data Analysis 帮你采集数据?

&#xff08;注&#xff1a;本文为小报童精选文章&#xff0c;已订阅小报童或加入知识星球「玉树芝兰」用户请勿重复付费&#xff09; 想采集网页数据却不会写 Python 爬虫&#xff1f;不会就不会吧&#xff0c;ChatGPT 会就可以了 &#x1f602; 问题描述 朋友最近遇到了一点儿…

thinkphp6 获取url路径中的应用名、控制器名、操作名

如果使用了多应用模式&#xff0c;可以通过下面的方法来获取当前应用 app(http)->getName(); 获取当前控制器 Request::controller(); 获取当前操作 Request::action(); 请求信息 ThinkPHP6.0完全开发手册 看云 ThinkPHP6.0基于精简核心和统一用法两大原则在5.1的基础上…