Vue3中的toRef和toRefs的区别和用法示例小结
Vue3中的toRef和toRefs的区别和用法
刚做了Ref和Reactive区别及使用方法笔记(见文末补充介绍),再来总结一下,toRef 和 toRefs 的作用、用法、区别
1、作用和区别
toRef 和 toRefs 可以用来复制 reactive 里面的属性然后转成 ref,而且它既保留了响应式,也保留了引用,也就是你从 reactive 复制过来的属性进行修改后,除了视图会更新,原有 ractive 里面对应的值也会跟着更新。
toRef: 复制 reactive 里的单个属性并转成 reftoRefs: 复制 reactive 里的所有属性并转成 ref
2、使用方式
2.1 toRef使用示例
<template>
<h2>
reactive-name: {{ user.name }}
</h2>
<h2>
toRef-name: {{ uName }}
</h2>
<button @click="onChangeName">点击</button>
</template>
<script>
import { reactive, toRef } from 'vue'
export default {
setup() {
let user = reactive({
name: 'zs',
age: 18
})
// 复制 user 里的 name 属性
let uName = toRef(user, 'name')
// 更改
const onChangeName = () => {
uName.value = 'ls'
}
return {
user,
uName,
onChangeName
}
}
}
</script> 2.2 toRefs使用示例
<template>
<h2>
{{ name }}
</h2>
<h2>
{{ age }}
</h2>
</template>
<script>
import { reactive, toRef } from 'vue'
export default {
setup() {
let user = reactive({
name: 'zs',
age: 18
})
return {
...toRefs(user),
}
}
}
</script> 补充:vue3响应式:Ref和Reactive区别及使用方法
vue3响应式:Ref和Reactive区别及使用方法
在Vue3中,Ref和Reactive是两个实现响应式编程的关键的API。
1、区别
Ref:用于创建一个响应式的基本数据类型,比如数字、字符串等。它将普通的数据变成响应式数据,可以监听数据的变化。使用Ref时,我们可以通过.value来访问和修改数据的值。
Reactive:Reactive则用于创建一个响应式对象,可以包含多个属性。通过Reactive,我们可以将整个对象变成响应式,使对象的任何属性发生变化时都能被检测到。
2、ref使用场景
Ref:适用于管理简单的单一数据,如计数器、输入框的值等。
使用ref实现计数器示例
<template>
<div>
<p>Count: {{ i }}</p>
<button @click="increment">Increment</button>
</div>
</template>
<script>
import { ref } from 'vue';
setup(){
const i = ref(0);
const increment = () => {
i.value++;
};
return{
i,increment
}
}
</script>注意
1、在js中访问/修改需要使用.value
2、在模版中插值不需要使用.value
3、Reactive使用场景
使用Reactive实现管理用户信息和订单示例1
<template>
<div>
<p>User Name: {{ user.name }}</p>
<p>Age: {{ user.age }}</p>
</div>
</template>
<script>
import { reactive } from 'vue';
setup(){
const user = reactive({
name: 'Alice',
age: 30
});
return{
user
}
}
</script> 使用Reactive实现管理用户信息和订单示例2
<template>
<div>
<p>User Name: {{ name }}</p>
<p>Age: {{ age }}</p>
</div>
</template>
<script setup>
import { reactive } from 'vue';
setup(){
const user = reactive({
name: 'Alice',
age: 30
});
return{
...toRefs(user)
}
}
</script> 注意,return中是否使用展开运算符的差别
到此这篇关于Vue3中的toRef和toRefs的区别和用法的文章就介绍到这了,更多相关Vue3 toRef和toRefs内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
在Vue3项目中集成CodeMirror创建SQL编辑器的方法详解
在这篇文章中,我们将学习如何在 Vue 3 项目中集成 CodeMirror,以创建一个支持 SQL 语法高亮和自动补全的代码编辑器,需要的朋友可以参考下2025-04-04
解决vue2+vue-router动态路由添加及路由刷新后消失问题
这篇文章主要介绍了解决vue2+vue-router动态路由添加及路由刷新后消失问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2024-08-08
详解vue结合el-table实现表格小计总计需求(summary-method)
这篇文章主要介绍了vue结合el-table实现表格小计总计需求(summary-method),本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧2024-01-01
vue用Object.defineProperty手写一个简单的双向绑定的示例
这篇文章主要介绍了用Object.defineProperty手写一个简单的双向绑定的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2018-07-07


最新评论