Vue3_响应式数据的处理方式

目录

ref和reactive区别

让一个普通数据转换为响应式数据,有如下两种方式

  1. ref函数,更适合单个变量
    在script标签中操作ref响应式数据要通过.value
    在template中操作ref响应式数据则无需.value
  2. reactive函数 更适合对象
    在script和template标签中操作都是直接使用对象名.属性方式即可

测试

clike 复制代码
实现 + - 按钮,实现数字加1减1

code

clike 复制代码
<script setup>
import {ref,reactive} from 'vue'
let counter = ref(10)

let person = reactive({
  name:"",
  age:101
})


</script>
<template>
<div>
<button @click="counter++">+</button>
<span >{{counter}}</span>
<button @click="counter--">-</button>
<hr>
<button @click="person.age--">-</button>
{{person.age}}
<button @click="person.age++">+</button>


</div>
</template>
<style scoped>
</style>

toRef函数和ToRefs函数

toRef函数:将reactive响应式数据中的某个属性转换为ref响应式数据

toRefs函数:同时将reactive响应式数据中的多个属性转换为ref响应式数据

clike 复制代码
<script setup>
import {ref,reactive,toRef,toRefs} from 'vue'
let counter = ref(10)

let person = reactive({
  name:"",
  age:101
})

let p_age = toRef(person,'age')
let {name,age} = toRefs(person)


</script>
<template>
<div>
  
<button @click="counter++">+</button>
<span >{{counter}}</span>
<button @click="counter--">-</button>
<hr>
<button @click="person.age--">-</button>
{{person.age}}
<button @click="person.age++">+</button>

<hr>
{{p_age}}
<button @click="p_age++">+</button>

<hr>
{{age}}
<button @click="age++">+</button>


</div>
</template>
<style scoped>
</style>
相关推荐
佛系打工仔21 小时前
绘制K线第二章:背景网格绘制
android·前端·架构
计算机毕设VX:Fegn08951 天前
计算机毕业设计|基于springboot + vue医院设备管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
明天好,会的1 天前
分形生成实验(五):人机协同破局--30万token揭示Actix-web状态管理的微妙边界
运维·服务器·前端
C_心欲无痕1 天前
nginx - alias 和 root 的区别详解
运维·前端·nginx
北辰alk1 天前
Vue 路由信息获取全攻略:8 种方法深度解析
vue.js
北辰alk1 天前
Vue 三剑客:组件、插件、插槽的深度辨析
vue.js
北辰alk1 天前
Vue Watch 立即执行:5 种初始化调用方案全解析
vue.js
北辰alk1 天前
Vue 组件模板的 7 种定义方式:从基础到高级的完整指南
vue.js
北辰alk1 天前
深入理解 Vue 生命周期:created 与 mounted 的核心差异与实战指南
vue.js