VueJs中的shallowRef与shallowReactive函数使用比较

 更新时间:2023年04月04日 11:42:38   作者:itclanCoder  
这篇文章主要为大家介绍了VueJs中的shallowRef与shallowReactive函数的使用比较解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

前言

vue3当中一些相似的组合式API,如果没有经常使用,就会混淆,对于初学者,很是迷惑,比如:shallowRefshallowReactive

shallowRef

如果传入基本数据类型,那么shallowRefref的作用基本没有什么区别,也就是浅层的ref的内部值将会原样的存储和暴露,并不会被深层递归地转为响应式

但如果是对象的话,那么就存在区别了的,shallowRef不处理对象类型的数据

其实,它就是只处理基本数据类型的响应式,不进行对象的响应式处理

性能优化,应用场景:如果有一个对象数据,后续功能不会修改该对象中的属性,而是生的对象来替换,那么就可以用shallowRef

shallowRef() 常常用于对大型数据结构的性能优化或是与外部的状态管理系统集成

const state = shallowRef({ count: 1 })
// 不会触发更改
state.value.count = 2
// 会触发更改
state.value = { count: 2 }

shallowReactive

浅层作用的响应式数据处理,也就是只处理第一层对象的数据,在往下嵌套的数据,操作数据是不起作用的

只考虑对象第一层的数据响应式,在第一层嵌套下的数据不考虑

reactive()不同,没有深层及的转换,一个浅层响应式对象里只有根级别的属性是响应式的,属性的值会被原样存储和暴露,这意味着值为ref的属性不会被自动解构的

性能优化:具体应用场景:

如果有一个对象数据,数据结构比较深,复杂,但变化时只需要外层属性变化,那么就可以使用shallowReactive,如下示例代码所示

const state = shallowReactive({
  foo: 1,
  nested: {
    bar: 2
  }
})
// 更改状态自身的属性是响应式的
state.foo++
// ...但下层嵌套对象不会被转为响应式
isReactive(state.nested) // false
// 不是响应式的
state.nested.bar++

总结

shallowReativeshallowRef在某些特殊的应用场景下,是可以提升性能的,前者针对对象,用于浅层作用的响应式数据处理,而后者只处理基本数据类型的响应式,不进行对象的响应式处理

以上就是VueJs中的shallowRef与shallowReactive的使用比较的详细内容,更多关于Vue shallowRef shallowReactive的资料请关注脚本之家其它相关文章!

相关文章

  • el-date-picker 选择日期范围只保存左侧日期面板的实现代码

    el-date-picker 选择日期范围只保存左侧日期面板的实现代码

    接到这样的需求,日期筛选,但限制只能选择同一个月的数据,故此应该去掉右侧月份面板,今天通过本文给大家分享el-date-picker 选择日期范围只保存左侧日期面板的实现代码,感兴趣的朋友一起看看吧
    2024-06-06
  • 详解Vue内部怎样处理props选项的多种写法

    详解Vue内部怎样处理props选项的多种写法

    这篇文章主要介绍了详解Vue内部怎样处理props选项的多种写法,详细的介绍了props的使用的写法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11
  • Vue Element前端应用开发之界面语言国际化

    Vue Element前端应用开发之界面语言国际化

    我们开发的系统,一般可以不用考虑语言国际化的问题,大多数系统一般是给本国人使用的,而且直接使用中文开发界面会更加迅速 一些,不过框架最好能够支持国际化的处理,以便在需要的时候,可以花点时间来实现多语言切换的处理,使系统具有更广泛的受众用户。
    2021-05-05
  • Vue.JS入门教程之自定义指令

    Vue.JS入门教程之自定义指令

    这篇文章主要为大家详细介绍了Vue.JS入门教程之自定义指令,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • 详细对比Ember.js和Vue.js

    详细对比Ember.js和Vue.js

    这篇文章主要介绍了详细对比Ember.js和Vue.js,对JS框架感兴趣的同学,可以参考下
    2021-05-05
  • vue async await promise等待异步接口执行完毕再进行下步操作教程

    vue async await promise等待异步接口执行完毕再进行下步操作教程

    在Vue中可以使用异步函数和await关键字来控制上一步执行完再执行下一步,这篇文章主要给大家介绍了关于vue async await promise等待异步接口执行完毕再进行下步操作的相关资料,需要的朋友可以参考下
    2023-12-12
  • Vue 拦截器对token过期处理方法

    Vue 拦截器对token过期处理方法

    下面小编就为大家分享一篇Vue 拦截器对token过期处理方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01
  • 使用vue编写一个点击数字计时小游戏

    使用vue编写一个点击数字计时小游戏

    这篇文章主要为大家详细介绍了使用vue编写一个点击数字计时小游戏,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-08-08
  • vue中关于v-for循环key值问题的研究

    vue中关于v-for循环key值问题的研究

    这篇文章主要介绍了vue中关于v-for循环key值问题的研究,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • 解决vue项目运行npm run serve报错的问题

    解决vue项目运行npm run serve报错的问题

    这篇文章主要介绍了解决vue项目运行npm run serve报错的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10

最新评论