Vue3 Reactive和Ref

当你在使用Vue 3时,reactiveref 是两个常用的响应式API。它们都是用来跟踪状态变化并在UI中进行响应式更新的。

1. ref

ref 用于创建一个响应式的基本数据类型变量,例如数字、字符串等。它返回一个带有 .value 属性的对象,该属性包含了被包装的值。

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

// 创建一个ref
const count = ref(0);

// 在模板中使用
<template>
  <div>{{ count.value }}</div>
  <button @click="increment">Increment</button>
</template>

// 在逻辑中使用
<script>
import { ref } from 'vue';

export default {
  setup() {
    // 创建一个ref
    const count = ref(0);

    // 定义一个函数来更新count
    const increment = () => {
      count.value++;
    };

    // 将数据和方法暴露给模板
    return {
      count,
      increment,
    };
  },
};
</script>

2. reactive

reactive 用于创建一个响应式的对象,可以跟踪对象内部属性的变化。它返回一个代理对象,你可以像操作普通对象一样操作它,但所有的改动都将被监视。

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

// 创建一个reactive对象
const state = reactive({
  count: 0,
  message: 'Hello',
});

// 在模板中使用
<template>
  <div>{{ state.count }}</div>
  <div>{{ state.message }}</div>
  <button @click="increment">Increment</button>
  <input v-model="state.message" />
</template>

// 在逻辑中使用
<script>
import { reactive } from 'vue';

export default {
  setup() {
    // 创建一个reactive对象
    const state = reactive({
      count: 0,
      message: 'Hello',
    });

    // 定义一个函数来更新count
    const increment = () => {
      state.count++;
    };

    // 将数据和方法暴露给模板
    return {
      state,
      increment,
    };
  },
};
</script>

无论是使用 ref 还是 reactive,都可以实现响应式数据的跟踪和更新,具体选择取决于你的需求。

相关推荐
veneno1 小时前
大量异步并发请求控制并发解决方案
前端
i***t9192 小时前
Spring Boot项目接收前端参数的11种方式
前端·spring boot·后端
oden2 小时前
2025博客框架选择指南:Hugo、Astro、Hexo该选哪个?
前端·html
小光学长2 小时前
基于ssm的宠物交易系统的设计与实现850mb48h(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
java·前端·数据库
云中飞鸿2 小时前
函数:委托
javascript
小小前端要继续努力2 小时前
渐进增强、优雅降级及现代Web开发技术详解
前端
老前端的功夫3 小时前
前端技术选型的理性之道:构建可量化的ROI评估模型
前端·javascript·人工智能·ubuntu·前端框架
汝生淮南吾在北3 小时前
SpringBoot+Vue超市收银管理系统
vue.js·spring boot·后端
狮子座的男孩3 小时前
js函数高级:04、详解执行上下文与执行上下文栈(变量提升与函数提升、执行上下文、执行上下文栈)及相关面试题
前端·javascript·经验分享·变量提升与函数提升·执行上下文·执行上下文栈·相关面试题
p***93033 小时前
SpringBoot + vue 管理系统
vue.js·spring boot·后端