当前位置:首页 > javascript > vue > 正文内容

vue3 ref,shallowRef, triggerRef, customRef

hxing6413年前 (2022-09-25)vue2092


ref深层次响应

变成响应式

JavaScript
const name = ref('refName')
name.value = 'newName'

shallowRef浅层次响应

JavaScript
const obj = shallowRef({ name: 'shallowRefName' })
obj.value = { name: 'newName' } // 响应式
obj.value.name = 'newName' // 非响应式,视图不刷新

triggerRef主动触发一次更新

JavaScript
const obj = shallowRef({ name: 'shallowRefName' })
obj.value = { name: 'newName' } // 响应式
obj.value.name = 'newName' // 非响应式,视图不刷新
triggerRef(obj) // 重新触发一次视图刷新

customRef自定义ref

JavaScript
function custom(value) {
  return customRef((track, trigger) => {
    return {
      get() {
        track()
        return value
      },
      set(newVal) {
        value = newVal
        trigger()
      }
    }
  })
}
// 返回一个ref对象
const name = custom('customRefName')
name.value = 'customNewRefName' // 触发了set方法,视图更新

扫描二维码推送至手机访问。

版权声明:本文由星星博客发布,如需转载请注明出处。

本文链接:http://xingxinghan.cn/?id=401

“vue3 ref,shallowRef, triggerRef, customRef” 的相关文章

UniApp H5项目指南:处理二维码生成和扫描操作

UniApp H5项目指南:处理二维码生成和扫描操作

在我们基于UniApp的H5项目中,需要生成一些二维码进行展示,另外也需要让用户可以扫码进行一定的快捷操作,本篇随笔介绍一下二维码的生成处理和基于H5的扫码进行操作。二维码的生成,使用了JS文件weapp-qrcode.js进行处理,而二维码扫码则是基于一个第三方组件的方式进行支持的,最后通过统一入...

【Vue】详解Vue组件系统

Vue是一款流行的JavaScript框架,它的组件系统是它最重要的特性之一。Vue组件系统允许开发人员将UI界面划分成独立、可重复使用的组件,从而提高代码的可维护性和可重用性。本文将详细介绍Vue组件系统的各个方面。组件的定义在Vue中,一个组件是由一个Vue实例构成的。组件通常包含一个模板、一个...

uniapp 中 ScrollView 组件上拉分页怎么不滚动到最顶部

实现类似微信聊天页面,上拉加载更多历史聊天记录,每次上拉到顶部,界面自动会滚动到最顶部,我希望ScrollView不要滚动到最顶部,每次就停留在当前位置1,绑定scroll-view中scroll-into-view属性<scroll-view class="scroll-...

Vue中的父子组件通讯及使用sync同步父子组件数据

在Vue.js中,组件通讯是一个非常重要的主题。特别是在处理父子组件之间的通讯时,我们需要了解不同的方式来传递数据和响应事件。本文将介绍Vue中父子组件通讯的几种方式,并重点讨论使用sync属性来实现父子组件数据的双向绑定。父子组件通讯 在Vue中,父组件可以通过prop向子组件传递数据,而子组件则...

Vue.js 系列教程:深入理解组件、Props和Slots

Vue.js 是一款流行的 JavaScript 框架,它提供了一种组件化的开发方式,使得构建复杂的用户界面变得更加简单和高效。 在本篇教程中,我们将深入探讨 Vue.js 中的组件、Props 和 Slots 的概念和用法。 组件...

uniapp运行APP报错reportJSException >>>> exception function:createInstanceContext, exception:white screen

今天分享个自己在工作中遇到的头疼问题,记录下,在使用pinia时,引入use模块,h5端没问题,我使用的是vue3,运行在APP端一直报错:reportJSException >>>> exception function:createInstanceContext, exc...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。