首页 > 其他分享 >vue中的ref 和 reactive--今天学了啥 23/3/12

vue中的ref 和 reactive--今天学了啥 23/3/12

时间:2023-04-20 21:57:55浏览次数:47  
标签:vue const 23 -- value reactive 对象 解包 ref

  这两者都是默认deep reactive,不同的是reactive使用es6的proxy,只能使对象reactive。ref不仅支持对象还支持基本数组,不能说ref是reactive的超集,因为这两者返回的类型就不一样。   Ref type:

function ref<T>(value: T): Ref<UnwrapRef<T>>

interface Ref<T> {
  value: T
}
如果将一个对象赋值给 ref,那么这个对象将通过 reactive() 转为具有深层次响应式的对象。这也意味着如果对象中包含了嵌套的 ref,它们将被深层地解包。 示例代码:
const obj = ref({act:1,m1:2})
const msg= ref('ddd')
obj.value.m2 ={a:1,b:2,mst:msg}
console.log(obj.value.m2.mst) // 'ddd'
对象{a:1,b:2} 赋值给obj,此时 整个对象被reactive转成reactive对象,其中mst也被解包为mst:msg.value 。 Reactive type:
function reactive<T extends object>(target: T): UnwrapNestedRefs<T>
上面说了ref对象在reactive会被解包,但是,当访问到某个响应式数组或 Map 这样的原生集合类型中的 ref 元素时,不会执行 ref 的解包。
const books = reactive([ref('Vue 3 Guide')])
// 这里需要 .value
console.log(books[0].value)

const map = reactive(new Map([['count', ref(0)]]))
// 这里需要 .value
console.log(map.get('count').value)
另外Reactive 对象如果使用解构的话会丧失reactive性。 未完待续

标签:vue,const,23,--,value,reactive,对象,解包,ref
From: https://www.cnblogs.com/aliceKurapika/p/17338473.html

相关文章

  • WinForm快速开发框架-ZianWinForm
    WinForm快速开发框架-ZianWinForm介绍ZianWinForm是基于C#WinForm快速开发框架UI组件采用***。ORM框架采用PersistenceLayer。内嵌简单的IOC框框,支持特性:Autowired、Bean、Component,待支持特性:Configuration、ConfigurationProperties、Controller、PathVariable、PostCon......
  • 4.20汇编学习
    首先配置文件和编译环境用x修改分辨率,屏幕显示大小。入门命令讲解 mount将磁盘挂载到文件 c进入直观理解计算机组成原理 -r查看CPU中的寄存器状态,还可以修改-d查看内存,可以分块查看,块+块偏移-e修改内存,可以直接修改,也可以进去一个一个修改,因为计算机是16进......
  • 字符集
    C++支持1,2,3,4个字节的字符集,已有std::string,std::wstring,std::u8string,std::u16string,std::u32stringstd::string"helloworld"charANSIstd::wstringL"helloworld"wcahr_tUnicodestd::u8stringU8"helloworld"charUTF-8std:......
  • Django笔记二十六之数据库函数之数学公式函数
    本文首发于公众号:Hunter后端原文链接:Django笔记二十六之数据库函数之数学公式函数这一篇来介绍一下公式函数,主要是数学公式。其中sin,cos这种大多数情况下用不上的就不介绍了,主要介绍下面几种:Abs()绝对值Ceil()向上取整Floor()向下取整Mod()取余Power()乘方Roun......
  • 4.20每日总结
    <%@pageimport="wangzhan.Pd_zhengce"%><%@pageimport="wangzhan.Thesql"%><%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtm......
  • 剑指offer刷题 进度:JZ8
    题目列表https://www.nowcoder.com/ta/coding-interviewsJZ3数组中重复的数字时间空间复杂度都为\(O(n)\),直接建一个数组a,初始化全0,出现数i就a[i]++intduplicate(vector<int>&numbers){constintN=10005;vector<int>count(N,0);for......
  • 团队冲刺4/19
     今日,在数据库已经完善了的基础上,要对饼状图和折线图进行实现,在通过调用数据库的信息,进行规整,将数据填入,实现了饼状图的实现。以下为实现的界面: ......
  • Bootstrap模板-使用现成的免费完善模板制作网页.
    Bootstrap有一系列现成的免费而优秀的模板,我们可以用于制作前端页面稍加改进就是一个美观的页面  模板代码(源自purpleTemplate):<!DOCTYPEhtml><htmllang="en"><head><metacharset="utf-8"><metaname="viewport"content="width=dev......
  • 证明霍夫丁引理 Hoeffding Lemma
    马尔可夫不等式(Markov'sinequality)\(X\ge0\)为非负随机变量,\(t>0\)为常数,则有\[\begin{align*}\mathbbP(X\get)\le{\mathbbEX\overt}\end{align*}\]证:指示器函数\(I\lbraceA\rbrace=\begin{cases}1&\text{if}A\\0&\text{else}\end{cases}......
  • Tomcat报错严重: Unable to process Jar entry [module-info.class] from Jar
    Tomcat运行时出现UnabletoprocessJarentry[module-info.class]fromJar分析报错可知无法从Jar包中处理Jar条目[module-info.class]报错内容严重:UnabletoprocessJarentry[module-info.class]fromJar[jar:file:/D:/STS/Workspaces/Cloudview/.metadata/.plugins/......