Vue 中ref()和 reactive()响应式数据的使用方法

 更新时间:2025年01月24日 11:30:42   作者:来一碗刘肉面  
article介绍Vue3中ref()和reactive()函数的使用方法,ref()用于创建基本数据类型的响应式引用,reactive()用于创建响应式对象,本文介绍Vue中ref()和reactive()响应式数据的使用方法,感兴趣的朋友一起看看吧

一、ref( )

在 Vue 3 中,ref() 是一个用于创建响应式引用的函数。它是 Vue 3 Composition API(组合式API) 的一部分,允许在组件中创建响应式数据。

使用对象:基本数据类型(String 、Number 、Boolean 、Null 等)、对象类型

****需要使用 . value 

1.引入ref () 函数

// 引入
import { ref } from 'vue';

2.  创建响应式引用

// 定义 响应式数据  在 <script> 标签中
// 在 <script> 标签中写的 JS 代码 , 都需要写 .value 来获取值
const name = ref('张三');
const age = ref(20);
const tel = '123xxxxxxxxxx';
const count = ref(0); // 创建一个响应式的数字
const message = ref('Hello, Vue 3!'); // 创建一个响应式的字符串

3.  访问和修改引用的值

// 访问和修改引用的值
// 使用 ref() 创建的响应式引用会返回一个对象
// 该对象有一个 .value 属性来访问和修改其值
console.log(count.value); // 0
count.value++; // 修改值
console.log(count.value); // 1

 4. 在模板中的使用

<template>
// 在模板中,不需要使用 .value 。当在模板中使用时,ref 会自动解包
    <div class="person">
        <h2>姓名:{
  { name }}</h2>
        <h2>年龄:{
  { age }}</h2>
        <h2>地址:{
  { tel }}</h2>
        <button @click="changeName">修改名字</button>
        <button @click="changeAge">修改年龄</button>
        <button @click="showTel">查看电话</button>
        <p>{
  { count }}</p> <!-- 直接使用 count -->
        <button @click="count++">Increment</button>
    </div>
</template>

5.  与对象的结合使用

const user = ref({
  name: 'Alice',
  age: 25,
});
// 访问和修改对象属性
console.log(user.value.name); // Alice
user.value.age++; // 修改属性
console.log(user.value.age); // 26

当我们在模板中使用了 ref 时,在改变了 这个 ref 的值时,Vue 会自动检测到这个变化,并且相应地更新 DOM。

ref ( ) 是基于 reactive( ) 编写的。  

二、reactive( ) 

Vue 3 中,reactive() 是一个用于创建响应式对象的函数。它是 Vue 3 组合式 API 的一部分,允许开发者将普通对象转换为响应式对象,从而在数据变化时自动更新视图。

使用对象:对象类型

****需要使用 . value 

1.导入 reactive ( ) 函数

// 从 Vue 中导入
import { reactive } from 'vue';

2.创建响应式对象 

// 创建响应式对象
const state = reactive({
    count: 0,
    message: 'Hello, Vue 3!',
});

3.  访问和修改响应式属性

// 访问和修改响应式属性
// 可以像访问普通对象一样访问和修改响应式对象的属性。
// Vue 会自动追踪这些属性的变化,并在它们变化时更新视图。
console.log(state.count); // 0
state.count++; // 修改属性
console.log(state.count); // 1

4. 支持嵌套对象的响应性:

const state = reactive({
    user: {
        name: 'Alice',
        age: 25,
    },
});
// 访问嵌套属性
console.log(state.user.name); // Alice
// 修改嵌套属性
state.user.age++;
console.log(state.user.age); // 26

三、ref( ) 与 reactive( ) 的区别:

  • ref() 返回一个包含 .value 属性的对象,而 reactive() 返回的是一个直接可用的响应式对象。
  • reactive 重新分配一个新对象,会失去响应式。(可以使用Object.assign 来整体替换)。
  • 使用原则:
    • 若需要一个基本类型的响应式数据,必须使用 ref ; 
    • 若需要一个响应式对象,层级不深,ref ,reactive 都可以使用;
    • 若需要一个响应式对象,且层级较深,推荐使用 reactive。

到此这篇关于Vue 中ref( ) 和 reactive( ) 响应式数据的使用方法的文章就介绍到这了,更多相关Vue ref( ) 和 reactive( ) 响应式数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Vue刷新修改页面中数据的方法

    Vue刷新修改页面中数据的方法

    今天小编就为大家分享一篇Vue刷新修改页面中数据的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-09-09
  • vue报错Failed to execute 'appendChild' on 'Node'解决

    vue报错Failed to execute 'appendChild&apos

    这篇文章主要为大家介绍了vue报错Failed to execute 'appendChild' on 'Node'解决方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • Vue项目webpack打包部署到服务器的实例详解

    Vue项目webpack打包部署到服务器的实例详解

    这篇文章主要介绍了Vue项目webpack打包部署到服务器的实例详解的相关资料,需要的朋友可以参考下
    2017-07-07
  • 详解vue3.x页面功能拆分方式

    详解vue3.x页面功能拆分方式

    本文主要介绍了vue3.x页面功能拆分方式,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • vue3 setup中使用响应式的方法

    vue3 setup中使用响应式的方法

    文章主要介绍了Vue3中的响应式数据处理机制,包括ref和reactive函数的使用,它们的区别,以及如何使用watch和watchEffect来监听数据变化,文章最后提到了Vue3的生命周期钩子和自定义hooks的概念,感兴趣的朋友跟随小编一起看看吧
    2024-11-11
  • vue中解决异步交互数据出现延迟问题

    vue中解决异步交互数据出现延迟问题

    这篇文章主要介绍了vue中解决异步交互数据出现延迟问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • vue获取token实现token登录的示例代码

    vue获取token实现token登录的示例代码

    最近新做了个vue项目,正好项目中有登录部分,本文就详细的介绍一下登录部分的实现,文中通过示例代码介绍的非常详细,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • 解决vuecli3.0热更新失效的问题

    解决vuecli3.0热更新失效的问题

    今天小编就为大家分享一篇解决vuecli3.0热更新失效的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-09-09
  • 解决vue打包报错Unexpected token: punc的问题

    解决vue打包报错Unexpected token: punc的问题

    这篇文章主要介绍了解决vue打包报错Unexpected token: punc的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • 利用vite创建vue3项目的全过程及一个小BUG详解

    利用vite创建vue3项目的全过程及一个小BUG详解

    Vite作为一个构建工具,提供了一种快速的方法来构建Vue应用,而Vue3 则是一个前端框架,提供了强大的功能来构建和管理前端项目,下面这篇文章主要给大家介绍了关于利用vite创建vue3项目的全过程及一个小BUG的相关资料,需要的朋友可以参考下
    2023-04-04

最新评论