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>
相关推荐
开开心心就好31 分钟前
音频降噪剪辑工具,音量裁剪一键处理
运维·服务器·前端·spring·ocr·音视频·1024程序员节
螺丝钉tina2 小时前
[Playwright] [02]常用命令与调试:Debug UI、Mode和 Trace Viewer
开发语言·javascript·测试工具·ui·自动化
PedroQue992 小时前
0.8.2 新增 backFallback 配置,无 tabbar 页返回无忧
前端·uni-app
淡漠的蓝精灵2 小时前
web.py:一个简单到极致的 Python Web 框架
开发语言·前端·python·其他
开开心心就好3 小时前
竖式除法出题工具,整除余数混合模式
运维·服务器·前端·javascript·ocr·perl·1024程序员节
起个名字费劲死了3 小时前
Halcon学习一:骰子识别
前端·python·学习
大江东去浪淘尽千古风流人物3 小时前
【HexVIO】DSP卸载双目惯性VIO:Hexagon向量化前端与单帧融合调度深度解析
前端·状态模式·slam·dsp·vio·hexagon·移动端加速
এ慕ོ冬℘゜3 小时前
JS 事件循环、宏任务微任务:单线程底层原理 + 执行顺序
开发语言·javascript·ecmascript
其实防守也摸鱼3 小时前
Chrome 扩展安全攻防实录:从攻击面到防御实践
开发语言·前端·网络·chrome·安全·web安全·php
web打印社区3 小时前
Lodop排障总纲-常见报错一张表
开发语言·前端·javascript·chrome·websocket