Vue3 - ref 基本类型(通俗易懂,详细教程)

news2024/10/3 8:18:17

简介

它是 Vue3 提供的一个用于创建基本数据类型的函数,能将普通的数据包装为响应式。

大白话说,就是咱们要创建一个响应式变量,需要通过这玩意才行!

回忆 Vue2

不理解没关系啊,我们先来回顾一下 Vue2 中是如何做到的。

<template>
  <div>
    <h1>{{ msg }}</h1>
    <button @click="update()">改变数据</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      msg: '哈哈哈鸡汤来喽~'
    }
  },
  methods: {
    update() {
      this.msg = '鸡汤走喽~'
    }
  }
}
</script>

相信大家都能看懂啊,不解释了。

在这里插入图片描述

切入 Vue3

那咱们在 Vue3 中如何定义响应式变量和修改变量呢?

<template>
  <div>
    <h1>{{ msg }}</h1>
    <button @click="update()">改变数据</button>
  </div>
</template>

<script>
import { ref } from 'vue'
export default {
  setup() {
    
    // 定义数据
    const msg = ref('哈哈哈鸡汤来喽~')

    // 定义方法
    const update = () => {
      msg.value = '鸡汤走喽~' 
    }

    // 暴露给模板
    return { msg, update }
  }
}
</script>

在这里插入图片描述

可以看到啊,咱们首先 import 引入了 ref,然后通过 ref() 函数包裹你想要创建的响应式数据,最后通过 x.value 形式进行访问或改变数据。


接下来呢,咱们再来定义一些布尔型和数值型响应式变量。

<script>
import { ref } from 'vue'
export default {
  setup() {
    
    // 定义数据
    const msg = ref('哈哈哈鸡汤来喽~')
    const bool = ref(true)
    const numb = ref(999)

    // 打印一下
    console.log(`布尔:${bool} | 数值:${numb}`)

    // 定义方法
    const update = () => {
      msg.value = '鸡汤走喽~' 
    }

    // 暴露给模板
    return { msg, update }
  }
}
</script>

在这里插入图片描述

哎!不对劲啊,怎么是对象啊?

别急,还记得咱们刚才提到的,需要通过 .value 来访问吗?好,我们来加上。

<script>
import { ref } from 'vue'
export default {
  setup() {
    
    // 定义数据
    const msg = ref('哈哈哈鸡汤来喽~')
    const bool = ref(true)
    const numb = ref(999)

    // 打印一下
    console.log(`布尔:${bool.value} | 数值:${numb.value}`)

    // 定义方法
    const update = () => {
      msg.value = '鸡汤走喽~' 
    }

    // 暴露给模板
    return { msg, update }
  }
}
</script>

在这里插入图片描述

非常完美。

写在后面

每次都需要写 .value 这个事,是受 JavaScript 语言限制的缺点,但好在 Vue 提供了一种编译时转换,可以允许咱们不需要再写 .value ,这个需要插件和配置,感兴趣的可以去自行了解。

那 Array 数组和 Object 对象是不是也能通过 ref 来定义啊?很遗憾,答案是不能!Vue3 专门为数组或对象这种复杂数据类型,提供了另一个方法,可以查看我的其他文章。

SEO

vue官方文档,vue ref()官方文档教程,vue3-ref函数处理基本类型,vue3中ref的理解,Vue3中 ref 属性详解,vue3 之 ref,Vue3学习之ref()用法,vue3 ref 的了解和使用,vue3如何使用ref获取元素,vue3 ref函数,vue3之ref获取元素,Vue3 - ref 基本类型(通俗易懂,详细教程)。

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

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

相关文章

MaxViT: Multi-Axis Vision Transformer

论文&#xff1a;https://arxiv.org/abs/2204.01697 代码地址&#xff1a;https://github.com/google-research/maxvit 在本文中&#xff0c;介绍了一种高效且可扩展的注意力模型&#xff0c;称之为多轴注意力&#xff0c;该模型由两个方面组成&#xff1a;分块的局部注意力和…

开源作品:引流宝!集活码、短网址等功能为一体的工具!致力于提高引流效率,减少资源流失!

前言 开发这款工具的初衷是为了辅助自己的工作&#xff0c;提供自己日常工作的效率&#xff0c;自己使用了一段时间下来觉得很有用&#xff0c;于是完善之后开源。如今已经开源近2年&#xff0c;第一个版本是在2020年9月份开源&#xff0c;收获了390个star&#xff0c;后来持续…

用ue4怎么制作一个物体故障闪烁的特效

这是一篇关于电子标牌出现故障时可以使用的毛刺效应的文章。本文将其分解为两个简单的效果&#xff0c;将使用 GIF 来解释它们。 噪音效果 第一个组合是噪音效果。 在 Component Mask 中指定 G 矢量并在 Sine 和 Ceil 中调整 G 值。要将线条更改为水平移动&#xff0c;请在 …

操作系统4小时速成:操作系统的基本概念,它是系统软件,管理处理机、存储器、io设备、文件,并发和共享是最基本特征,还有虚拟和异步

操作系统4小时速成&#xff1a;操作系统的基本概念&#xff0c;它是系统软件&#xff0c;管理处理机、存储器、io设备、文件&#xff0c;并发和共享是最基本特征&#xff0c;还有虚拟和异步 2022找工作是学历、能力和运气的超强结合体&#xff0c;遇到寒冬&#xff0c;大厂不招…

二叉树的存储结构

引言&#xff1a; 对于二叉树的存储&#xff0c;我们可以采取顺序存储和链式存储结构 顺序存储结构 ● 按编号次序存储节点 • 对树中每个节点进行编号 • 其编号从小到大的顺序就是节点在连续存储单元的先后次序。 我们是从编号为1开始&#xff0c;为了保持数组位序和编号保持…

EMS Advanced Data Import高级数据导入选项Crack版

EMS Advanced Data Import高级数据导入选项Crack版 EMS Advanced Data Import是Dolphi和CBuilder应用。允许您一次以著名的MS Excel、MS Access、DBF、XML、TXT、CSV、ODF和HTML格式输入数据文件。 EMS高级数据导入选项&#xff1a; 导入流行格式信息&#xff1a;S Excel 97-20…

什么是shuffle?shuffle的原理及过程

目录 一、什么是shuffle 二、为什么要引入shuffle&#xff0c;有哪些影响 三、shuffle的工作原理 1、shuffle的阶段 2、shuffle的中间文件 3、Shuffle Write 4、Shuffle Read 四、总结回顾 一、什么是shuffle 类比分公司的人与物和 Spark 的相关概念是这样对应的&#…

同时看过 unreal4 和 Unity 源代码的人觉得哪个引擎架构更好?

同时看过 unreal4 和 Unity 源代码的人觉得哪个引擎架构更好&#xff1f; UE VS U3D 技术策略上 U3D技术策略是很保守的&#xff0c;发出来的featurelist测试覆盖率无可非议&#xff0c;开发者无需多少新功能的熟悉测试成本。 UE4的技术策略是激进的&#xff0c;发出来的fea…

嵌入式开发学习之--点亮LED灯(上)

在嵌入式学习里&#xff0c;点亮LED灯的地位就如同编程语言学习里的“hello world”&#xff0c;是每个初学者都必须经历的一关&#xff0c;因为点亮了LED灯&#xff0c;至少可以说明几件事&#xff1a; 1.开发环境没问题&#xff0c;包括软件&#xff0c;硬件都没问题。 2.能…

电脑重装系统前怎么备份,重装系统怎么备份数据

有很多用户想把操作系统升级成为Win11的&#xff0c;但是又不知道怎么备份原来的数据&#xff0c;担心升级操作系统后&#xff0c;电脑中的重要数据全部丢失了。电脑重装系统前怎么备份&#xff1f;”这里小编就给我们详细介绍一下吧&#xff01; 一、升级Windows 11系统要不要…

梯度多云管理技术架构的优势

随着云计算模式的日渐成熟&#xff0c;作为私有云和公有云的混合形态&#xff0c;混合云迎来了爆发期。在混合云的建设过程中&#xff0c;多云管理能力成为关键&#xff0c;梯度多云管理平台是多云时代下的服务管理利器。梯度多云管理平台是对多个公有云、私有云及各种异构资源…

视频声音怎么翻译?这几个办法教你实现视频声音翻译成中文

现如今刷视频已经成为我们的日常生活中不可缺少的一部分了&#xff0c;例如有时我们看到一些有用的教学视频&#xff0c;可能会想要把这些视频保存下来&#xff0c;但有些视频却都是英文的&#xff0c;有些小伙伴可能英语基础不好&#xff0c;查看起来不方便&#xff0c;这个时…

MySQL运算符

算术运算符 算术运算符主要用于数学运算&#xff0c;其可以连接运算符前后的两个数值或表达式&#xff0c;对数值或表达式进行加&#xff08;&#xff09;、减&#xff08;-&#xff09;、乘&#xff08;*&#xff09;、除&#xff08;/&#xff09;和取模&#xff08;%&#…

【math】Hiden Markov Model 隐马尔可夫模型了解

文章目录Introduction to Hidden Markov ModelIntroductionMarkov chainHidden Markov Model(HMM)Three QuestionsQ1: evaluate problem -- Forward algorithmQ2: decode problem -- Viterbi algorithmQ3: learn problem -- Baum-Welch algorithmApplicationIntroduction to Hi…

重装Windows系统教程(U盘制作+重装系统)

一、U盘制作 找一个不用的U盘&#xff0c;大小建议在15G以上&#xff0c;因为后面要存储下载好的电脑系统。U盘在被制作成系统盘的时候会被格式化&#xff0c;注意使用前将有用的信息提前保存以免丢失。 第一步&#xff1a;用能够正常联网的电脑打开U盘制作网站&#xff0c;打开…

MySQL解决group by分组后未排序问题

MySQL解决group by分组后未排序问题一、遇见问题1、错误SQL2、正确SQL一、遇见问题 当我们要实现SQL分组后取第一条数据则需要进行排序结果作为子查询后分组 CREATE TABLE op_joke (id int(11) NOT NULL AUTO_INCREMENT,name1 varchar(255) DEFAULT NULL,name2 varchar(255) D…

Spring

Spring[TOC](Spring)1、概述1.1、优点1.2、组成2. IOC概述2.1 什么是IOC2.1.1 推导过程2.1.2 IOC本质2.2 HelloSpring2.2.1 导入Jar包2.2.2 编写代码2.2.2 思考2.3 IOC过程2.4 IOC 接口3. Bean 管理3.1 基于xml方式——set方法注入3.2 FactoryBean3.3 bean 作用域3.4 bean 生命…

mannose-Biotin|甘露糖-生物素|甘露糖-聚乙二醇-生物素|生物素-PEG-甘露糖

mannose-Biotin|甘露糖-生物素|甘露糖-聚乙二醇-生物素|生物素-PEG-甘露糖 PEG接枝修饰甘露糖&#xff0c;mannose-PEG-Biotin 甘露糖-聚乙二醇-生物素&#xff0c;生物素-PEG-甘露糖 中文名称&#xff1a;甘露糖-生物素 英文名称&#xff1a;mannose-Biotin 别称&#xff…

工具分享-Ajax Interceptor

前言 资源地址&#xff1a; https://gitee.com/LjLoveMlh/tech_share/raw/master/%E8%B5%84%E6%BA%90/Ajax%20Interceptor/1.3.1_011.zip 给大家分享个好东西 Ajax Intercepto 帮助开发&#xff0c;测试人员Mock数据&#xff0c;更快&#xff0c;更安全 解决的痛点&#xff1a…

Vue3+Vite3+Vant初体验及踩过的一些坑

需要帮人做移动端的几个页面&#xff0c;带表单那种&#xff0c;说最好能用vant做&#xff0c;于是边学边弄记录下。 首先用 npm create vitelatest 就报错了&#xff0c;于是默默看了眼node包版本比官网说的低&#xff0c;就先升级node&#xff0c;升级之后再运行一次命令 …