当前位置: 首页 > news >正文

郫县做网站长沙网站推广和优化

郫县做网站,长沙网站推广和优化,怎么做游戏自动充值的网站,网站的导航用css怎么做假期第六篇,对于基础的知识点,我感觉自己还是很薄弱的。 趁着假期,再去复习一遍 1、shallowReactive与shallowRef shallowReactive:只处理对象最外层属性的响应式(浅响应式) shallowRef:只处理…

假期第六篇,对于基础的知识点,我感觉自己还是很薄弱的。
趁着假期,再去复习一遍

1、shallowReactive与shallowRef

shallowReactive:只处理对象最外层属性的响应式(浅响应式)
shallowRef:只处理基本数据类型的响应式,不进行对象的响应式处理(浅引用)

使用:
如果有一个对象数据,结构比较深,但变化时只是外层属性发生变化====>shallowReactive
如果有一个对象数据,后续功能不会修改该对象中的属性,而是生成新的对象来替换====>shallowRef

shallowReactive 和 shallowRef 是 Vue 3 中的两个 API,用于创建“浅响应式”对象和“浅引用”数据。
1、shallowReactive:它创建了一个浅响应式对象。与 reactive 不同,shallowReactive 只会对对象的第一层属性进行响应式处理,而不会递归地对嵌套属性进行响应式转换。这意味着嵌套属性将保持为普通的 JavaScript 对象,并且在被访问或修改时不会触发更新
2、shallowRef:它创建了一个浅引用数据。与 ref 不同,shallowRef 只会对值进行浅引用处理,而不会递归地对值进行深度引用。这意味着当修改引用对象的属性时,不会触发重新渲染

shallowReactive示例:

用reactive定义的person对象,点击按钮的时候,深层次的对象,job.job1.work可以正常改变
在这里插入图片描述
用shallowReactive定义person对象,工作变了按钮其实已经点击了,但是深层次的对象,job.job1.work没有任何改变
在这里插入图片描述

shallowRef示例:

用ref定义的简单数据类型
在这里插入图片描述
用shallowRef定义的简单数据类型,效果和ref定义的简单数据类型的是一样的
在这里插入图片描述

区别在于,用shallowRef定义的对象数据类型,点击按钮不会触发数据改变,那为什么ref定义的对象就可以?因为ref的底层其实还是求助了reactive,变成一个proxy代理对象,也是响应式的。
在这里插入图片描述
打印ref和shallowRef定义的对象x,一个是proxy对象,一个是纯对象
在这里插入图片描述
在这里插入图片描述

2、readonly与shallowReadonly

readonly:让一个响应式数据变为只读的(深只读)
shallowReadonly:让一个响应式数据变为只读的(浅只读)
使用:不希望数据被修改时

readonly 和 shallowReadonly 是 Vue 3 中的两个 API,用于创建只读的响应式对象。

1、readonly:它创建了一个深度只读的响应式对象。与 reactive 不同,readonly
只能对已经存在的响应式对象进行只读包装,而不能进行响应式转换。这意味着无法对只读对象的属性进行修改或删除,并且也无法向只读对象中添加新的属性。
2、shallowReadonly:它创建了一个浅只读的响应式对象。与 readonly 不同,shallowReadonly 只会对对象的第一层属性进行只读包装,而不会递归地对嵌套对象进行只读转换。这意味着嵌套对象仍然可以被修改或删除,但是对其属性的修改将被视为非响应式的

readonly示例:
在这里插入图片描述
不允许修改,且控制台有提示,目标源是只读的。这里不是改了没有响应式回显到页面上,而是完全没有改变
在这里插入图片描述
shallowReadonly示例:
在这里插入图片描述
shallowReadonly只会对对象的第一层属性进行只读包装,而不会递归地对嵌套对象进行只读转换
在这里插入图片描述

3、toRaw与markRaw

toRaw:将一个由reactive生成的响应式对象转为普通对象
使用:用于读取响应式对象的普通对象,对这个普通对象的所有操作,不会引起页面更新
markRaw:标记一个对象,使其永远不会再成为响应式对象
使用:
1、有些值不应该设为响应式的,例如复杂的第三方类库等
2、当渲染具有不可变数据源的大列表时,跳过响应式转换可以提高性能

toRaw 和 markRaw 是 Vue 3 中用于处理响应式对象的工具函数,它们都与 Vue 3 的响应式系统紧密相关。
1、 toRaw 函数用于获取一个响应式对象的原始(非代理)版本。这是因为当我们使用 Vue 3 的响应式系统时,会自动地将对象转换为可观察(observable)的代理对象。而有时候我们需要访问一个对象的原始版本,而不是其代理的响应式版本。通过 toRaw 函数,我们可以轻松地获取一个对象的非响应式副本
2、markRaw 函数则用于标记一个对象,使其永远不会被转换为响应式对象。通过 markRaw 标记的对象不会被观察,也不会触发任何响应式依赖的更新。这在某些情况下很有用,特别是当我们有一些特殊的对象,我们希望它们保持不可变或不受响应追踪时

toRaw 示例:
在这里插入图片描述
在这里插入图片描述
markRaw 示例:
给person对象定义一个新的属性,点击添加车的时候添加新的属性car
在这里插入图片描述
页面刚加载,控制台就给出了提示,无法读取car,因为car没有定义在实例对象身上
在这里插入图片描述
因为return的时候,先把person对象通过运算符展开,代码走到这的时候,person身上并没有car,所以模板区获取不到就会提示
所以直接把person对象都返回出去
在这里插入图片描述
页面不报错了,如果在addCar方法中添加的属性不想被响应式,如果car是一个异常复杂的对象,不仅提供了name,price,还有其他属性,并且纯展示,不需要修改。如果换数据的话,会通过接口给你新的数据,不需要自己手动改,那这个时候就需要markRaw 了,虽然继续使用reactive响应式也可以,但是响应式辛辛苦苦处理出来的数据,只是拿来纯展示,效率上就有问题了

在这里插入图片描述
数据变了,但是person.car已经不再是响应式数据
在这里插入图片描述

http://www.ds6.com.cn/news/645.html

相关文章:

  • 广东党员两学一做测试网站长沙网站开发制作
  • 网站推广指标包括软文网站推荐
  • wordpress 日历小工具优化措施最新回应
  • 大浪网站建设 优帮云优秀的营销案例
  • wordpress侧栏菜单合肥优化排名推广
  • 皋兰县建设局网站看广告收益的正规平台
  • 网站做直播b站软件推广大全
  • 乌鲁木齐微信公众号制作班级优化大师官方免费下载
  • 时时彩网站源码怎么做如何创建网页链接
  • 佳作哪个公司做网站比较好百度关键词自然排名优化公司
  • 国医堂网站平台建设天津百度推广中心
  • 银川网站建设广告公司廊坊网络推广公司
  • 免费seo网站诊断国外免费推广网站有哪些
  • 哪家做公司网站成都网站seo
  • 商务网站制作语言基础网络营销推广要求
  • 商城网站的开发怎么做的汕头seo公司
  • 40岁以上的设计师都去哪了360优化大师旧版
  • 网站建设 提成谷歌关键词推广怎么做
  • jsp借书网站开发网站运营主要做什么工作
  • 如何给网站流量来源做标记通过在网址后边加问号?seo的收费标准
  • 哪里有网页设计培训五年级下册数学优化设计答案
  • 网站建设中怎样进入后台seo视频网页入口网站推广
  • asp网站栏目如何修改百度推广官网网站
  • 杭州下沙做网站的论坛今日最新消息新闻
  • dw做响应式网站百度大搜推广
  • 建网站做seo百度一下app
  • 武汉光谷新闻最新消息网站seo教程
  • dede网站404怎么做好搜搜索
  • 泗水做网站网络软文发布平台
  • 品牌型网站建设公司广告推广投放平台