自定义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)。
相关推荐
用户516816614584120 小时前
Vue Router 路由懒加载引发的生产页面白屏问题
vue.js·vue-router
前端缘梦20 小时前
Vue Keep-Alive 组件详解:优化性能与保留组件状态的终极指南
前端·vue.js·面试
Simon_He20 小时前
这次来点狠的:用 Vue 3 把 AI 的“碎片 Markdown”渲染得又快又稳(Monaco 实时更新 + Mermaid 渐进绘图)
前端·vue.js·markdown
王同学QaQ1 天前
Vue3对接UE,通过MQTT完成通讯
javascript·vue.js
华仔啊1 天前
基于 RuoYi-Vue 轻松实现单用户登录功能,亲测有效
java·vue.js·后端
艾小码1 天前
告别Vue混入的坑!Composition API让我效率翻倍的3个秘密
前端·javascript·vue.js
Gracemark2 天前
高德地图-地图选择经纬度问题【使用输入提示-使用Autocomplete进行联想输入】(复盘)
vue.js
天下无贼2 天前
【手写组件】 Vue3 + Uniapp 手写一个高颜值日历组件(含跨月补全+今日高亮+选中状态)
前端·vue.js
洋葱头_2 天前
vue3项目不支持低版本的android,如何做兼容
前端·vue.js
奔跑的蜗牛ing2 天前
Vue3 + Element Plus 输入框省略号插件:零侵入式全局解决方案
vue.js·typescript·前端工程化