自定义hook函数与toRef

hook

  • 什么是hook?
    • 本质是一个函数,把setup函数中使用的Composition API进行了封装。
  • 类似于 vue2 中的mixin。
  • 自定义hook的优势:复用代码,让setup中的逻辑更清除易懂。
  • 怎么用?
    • hooks文件夹里面的usepoint.js(相当于封装了一套,后续直接一套带走)

      import {onMounted, reactive,onBeforeUnmount} from 'vue'
      export default function(){
          let point = reactive({
              x:0,
              y:0
            }) 
            function savPoint(e){
              point.x = e.pageX,
                point.y = e.pageY
                console.log(point.x,point.y)
            }
            onMounted(()=>{
              window.addEventListener('click',savPoint)
        
            })
            onBeforeUnmount(()=>{
              window.removeEventListener('click',savPoint)
            })
            return point
      }
      
    • 要用的地方

引入:

import usePoint from './hooks/usePoint'

在setup里:

let point = usePoint()

要记得return 出去哦!!!

toRef、toRefs

  • 作用:创建一个ref对象,其value值指向另一个对象中的某个属性值。
  • 语法:const name = toRef(person,'name')。
  • 应用:要将响应式对象中的某个属性单独提供给外部使用时。
  • 扩展:toRefs 与 toRef 功能一致,但可以批量创建多个ref对象,语法:toRefs(person)。
相关推荐
web150854159351 小时前
vue 集成 webrtc-streamer 播放视频流 - 解决阿里云内外网访问视频流问题
vue.js·阿里云·webrtc
一个处女座的程序猿O(∩_∩)O3 小时前
vue3 如何使用 mounted
前端·javascript·vue.js
迷糊的『迷』3 小时前
vue-axios+springboot实现文件流下载
vue.js·spring boot
web135085886353 小时前
uniapp小程序使用webview 嵌套 vue 项目
vue.js·小程序·uni-app
陈大爷(有低保)3 小时前
uniapp小案例---趣味打字坤
前端·javascript·vue.js
cronaldo914 小时前
研发效能DevOps: Vite 使用 Element Plus
vue.js·vue·devops
百罹鸟5 小时前
【vue高频面试题—场景篇】:实现一个实时更新的倒计时组件,如何确保倒计时在页面切换时能够正常暂停和恢复?
vue.js·后端·面试
Java_慈祥5 小时前
慈様や 前端学习导航👩🏻‍🚀🚀
前端·javascript·vue.js
编程百晓君6 小时前
一文解释清楚OpenHarmony面向全场景的分布式操作系统
vue.js
暴富的Tdy7 小时前
【CryptoJS库AES加密】
前端·javascript·vue.js