vue3入门教程:ref函数

基本用法

  1. 引入 ref

    首先,你需要从 vue 包中引入 ref 函数:

    javascript 复制代码
    import { ref } from 'vue';
  2. 创建一个响应式变量

    使用 ref 函数来创建一个响应式变量:

    javascript 复制代码
    const count = ref(0);

    这里,count 是一个响应式引用对象,其 .value 属性初始值为 0

  3. 在模板中使用

    在 Vue 模板中,你可以直接访问响应式引用对象的值,而不需要使用 .value

    html 复制代码
    <template>
      <div>{{ count }}</div>
    </template>
  4. 在 JavaScript 中使用

    在 JavaScript 代码中,你需要通过 .value 来访问或修改响应式变量的值:

    javascript 复制代码
    count.value = 1;
    console.log(count.value);  // 输出: 1

在组合式 API 中使用

ref 通常与 Vue 的组合式 API 一起使用,特别是在 setup 函数中:

javascript 复制代码
import { ref } from 'vue';

export default {
  setup() {
    const count = ref(0);

    function increment() {
      count.value++;
    }

    return {
      count,
      increment
    };
  }
};

在模板中:

html 复制代码
<template>
  <div>
    <p>{{ count }}</p>
    <button @click="increment">Increment</button>
  </div>
</template>

ref 与原始类型

ref 可以用于基本数据类型(如数字、字符串、布尔值)以及对象和数组。对于对象和数组,ref 会使其变得"响应式",即对象的属性或数组的元素发生变化时,Vue 也能检测到并更新视图。

refreactive

refreactive 都是 Vue 3 中的响应式 API,但它们有不同的使用场景:

  • ref 用于基本数据类型和保存单一对象的引用。
  • reactive 用于创建响应式的对象或数组。

简单来说,如果你有一个基本数据类型或者想要一个明确的引用,使用 ref;如果你有一个对象或数组,并且想要使其内部属性和元素也响应式,使用 reactive

toReftoRefs

有时候你可能需要将一个响应式对象中的某个属性转换为 ref,这时候可以使用 toReftoRefs

javascript 复制代码
import { reactive, toRef, toRefs } from 'vue';

const state = reactive({
  count: 0,
  name: 'Vue'
});

const countRef = toRef(state, 'count');
const { name } = toRefs(state);

总结

ref() 是 Vue 3 中非常强大的一个工具,它使得创建和管理响应式数据变得更加简单和直观。通过合理使用 ref,你可以更好地组织你的代码,使其更加模块化和可维护。希望这篇深入教程能帮助你更好地理解和使用 ref()

相关推荐
Setsuna_F_Seiei2 小时前
前端转型 Agent 开发 05 之 Agent Hooks 与 Checkpointer(让 Agent 从全自动转变人为可掌控)
前端·agent·ai编程
百万蹄蹄向前冲4 小时前
风扇转了一晚上MVP专家团翻车事故
前端·人工智能
默_笙4 小时前
🏛 给 AI 配一间办公室:Harness Engineering 六大模块与它的实现
前端·javascript
linux_cfan5 小时前
videojs v10 源代码系列解读:14 · 谓词守卫:在运行时安全地调用能力
前端·javascript·音视频
kyriewen6 小时前
我扒了 10,221 条 JD:腾讯技术岗 75% 在要 AI
前端·人工智能·ai编程
郑州光合科技余经理6 小时前
同城外卖小程序开发:下单成功后,后台导出能不能对上用户端状态
开发语言·前端·git·后端·uni-app·php·ai编程
+VX:Fegn08957 小时前
计算机毕业设计|基于springboot + vue旅游管理系统(源码+数据库+文档)
java·开发语言·vue.js·spring boot·课程设计
雪芽蓝域zzs7 小时前
第 7 章:双 Y 轴组合图(柱状 + 折线,看板高频场景)
vue.js·echars
IT_陈寒7 小时前
Vue的响应式让我熬到凌晨三点,原来漏了这个小细节
前端·人工智能·后端
一 乐7 小时前
二手交易平台|基于springboot + vue二手交易平台(源码+数据库+文档)
java·数据库·vue.js·spring boot·小程序