ref、reactive、toRef、toRefs

这篇具有很好参考价值的文章主要介绍了ref、reactive、toRef、toRefs。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ref
作用:定义一个响应式数据
语法:const xxx = ref(initValue)
创建一个包含响应式数据的引用对象
js中操作数据:xxx.value
模板中读取数据:不需要.value,直接<div>{{xxx}}</div>
接收的数据:基本类型、对象类型
基本类型的数据:响应式是靠object.defineProperty()的get与set完成的
对象类型的数据:通过vue3.0的一个新函数–reactive函数包装实现的
import { ref } from 'vue'

// 为基本数据类型添加响应式状态
const name = ref('张三')

// 为复杂数据类型添加响应式状态
const state = ref({
  count: 0
})

// 打印name的值
console.log(name.value)
// 打印count的值
console.log(state.value.count)
reactive
作用:定义一个对象类型的响应式数据
语法:const 代理对象= reactive(源对象)接收一个对象(或数组),返回一个代理对象(Proxy的实例对象,简称proxy对象)
操作数据与读取数据:均不需要.value。
reactive定义的响应式数据是“深层次的”
内部基于ES6的Proxy实现,通过代理对象操作对象内部数据进行操作
import { reactive } from 'vue'

// 响应式状态
const state = reactive({
  count: 0
})

// 打印count的值
console.log(state.count)

toRef
作用:创建一个ref对象,其value值指向另一个对象中的某个属性。
语法:const name = toRef(person,'name')
获取数据值的时候需要加.value
toRef后的ref数据不是原始数据的拷贝,而是引用,改变结果数据的值也会同时改变原始数据
应用:要将响应式对象中的某个属性单独提供给外部使用时。
import { defineComponent, toRef } from 'vue'

export default defineComponent({
  props: [title],
  
  setup (props) {
    // 创建变量myTitle
    const myTitle = toRef(props, 'title')

    console.log(myTitle.value)
  }
})

toRefs
作用:批量创建多个 ref 对象
语法:toRefs(person)
获取数据值的时候需要加.value
toRefs后的ref数据不是原始数据的拷贝,而是引用,改变结果数据的值也会同时改变原始数据
应用:常用于es6的解构赋值操作,因为在对一个响应式对象直接解构时解构后的数据将不再有响应式,而使用toRefs可以方便解决这一问题。
import { defineComponent, toRefs } from 'vue'

export default defineComponent({
  props: [title],
  
  setup (props) {
    // 使用了解构赋值语法创建了变量myTitle
    const { myTitle } = toRefs(props)

    console.log(myTitle.value)
  }
})文章来源地址https://www.toymoban.com/news/detail-715172.html

到了这里,关于ref、reactive、toRef、toRefs的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Vue3 知识第七讲】reactive、shallowReactive、toRef、toRefs 等系列方法应用与对比

    reactive() 函数用于返回一个对象的响应式代理 。与 ref() 函数定义响应式数据的异同点如下: 数字化管理平台 Vue3+Vite+VueRouter+Pinia+Axios+ElementPlus 权限系统-商城 个人博客地址 ref 函数和 reactive 函数都是用来定义响应式数据的。 ref 函数更适合定义基本数据类型(可接收基本数据

    2024年02月09日
    浏览(30)
  • 搞懂 Vue3 中的各种 ref:toRef,toRefs,isRef,unref...

    在 Vue3 中,有许多与响应式相关的函数,例如 toRef、toRefs、isRef、unref 等等。合理地使用这些函数可以在实际开发中大大提高效率。本文将详细介绍这些函数的用法,让我们在实际开发中知道应该使用哪些 API 并能够熟练地回答面试官的相关问题。 大家对于 ref 这个 API 肯定都

    2024年02月12日
    浏览(44)
  • Vue3快速上手(八) toRefs和toRef的用法

    顾名思义,toRef 就是将其转换为ref的一种实现。详细请看: toRef就相当于是将对象Person里的某个属性,如name,单独解构赋值给name,并使得name同为响应式对象。且修改name的值时,person.name的值随之变化。 如下图可以看到: 1、name是一个ObjectRefImpl对象的实例。 2、底层还是个P

    2024年02月19日
    浏览(30)
  • Vue3技术6之toRef和toRefs、shallowReactive与shallowRef、readonly与shallowReadonly

    App.vue Demo.vue 原理: App.vue DemoTwo.vue 作用:创建一个ref对象,其value值指向另一个对象中的某个属性 语法: const name=toRef(person,‘name’) 应用:要将响应式对象中的某个属性单独提供给外部使用时 扩展: toRefs 与 toRef 功能一致,但可以批量创建多个ref 对象,语法: toRefs(perso

    2023年04月24日
    浏览(28)
  • vue3 toRefs详解

    toRefs函数的作用是将响应式对象中的所有属性转换为单独的响应式数据,对象成为普通对象,并且值是关联的。在这个过程中toRefs会做以下两件事: 把一个响应式对象转换成普通对象 对该普通对象的每个属性都做一次ref操作,这样每个属性都是响应式的 说明: reactive 对象取

    2024年02月12日
    浏览(23)
  • Vue 2 和 Vue 3 中 toRefs的区别

    摘要:本文将介绍 Vue 2 和 Vue 3 中 toRefs 函数的不同用法和行为,并解释其在各个版本中的作用。 正文: Vue 是一款流行的 JavaScript 框架,用于构建用户界面。在 Vue 2 和 Vue 3 中,都存在一个名为 toRefs 的函数,但其行为在这两个版本中有所不同。 在 Vue 2 中,使用 Composition A

    2024年02月15日
    浏览(29)
  • Vue3中 toRefs的基本使用

    什么是toRefs? 把一个响应式对象转换成普通对象,该普通对象的每个 property 都是一个 ref; 理解一下: 期望: 页面上展示 “小明=========…”; 实际:页面展示\\\"小明\\\",myData中name 无法响应。 解决: 通过toRefs的方式,将一个响应式 reactive 对象的所有原始属性转换为响应式的

    2024年02月11日
    浏览(25)
  • 前端Vue篇之Vue3响应式:Ref和Reactive

    在Vue3中,响应式编程是非常重要的概念,其中 Ref 和 Reactive 是两个关键的API。 Ref : Ref 用于创建一个响应式的基本数据类型,比如数字、字符串等。它将普通的数据变成响应式数据,可以监听数据的变化。使用 Ref 时,我们可以通过 .value 来访问和修改数据的值。 Reactive :

    2024年04月25日
    浏览(31)
  • vue3前端开发,自学一下reactive,ref的差异是什么。

    vue3前端开发,自学,学习一下,reactive和ref的差别。以及基础用法。 前言,这2个东西,都能对外输出动态的数据对象。但是,有点区别,是,reactive只支持输入一个对象作为参数,ref则还可以支持简单的数据信息作为参数。待会有案例代码展示。 下面看看代码内容。第一个

    2024年01月18日
    浏览(38)
  • 助你丝滑过度到 Vue3 生命&自定义hook&toRef ②⑥

    @作者 : SYFStrive   @博客首页 : HomePage 📜: VUE3~TS 📌: 个人社区(欢迎大佬们加入) 👉: 社区链接🔗 📌: 觉得文章不错可以点点关注 👉: 专栏连接🔗 👉 TypeScript (🔥) 👉 微信小程序 (🔥) 👉 UNIAPP开发 (🔥) 提示:以下是本篇文章正文内容 简介 : 2020年9月

    2024年02月15日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包