自定义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)。
相关推荐
ruanno_top2 小时前
四个 canvas 组件,在 2 倍屏上一直是糊的
vue.js
ruanno_top3 小时前
一个脏数据能让整条折线消失:图表组件的四种数据契约
vue.js
FlyWIHTSKY21 小时前
vue2和vue3有什么区别,用法上有哪些区别
前端·javascript·vue.js
ruanno_top1 天前
能点,但 Tab 不到:两个组件把「可操作」做了一半
vue.js
爱吃烧烤的技术渣1 天前
别再手写 CRUD 了:我把 Element Plus 的工作量压缩成一份列 schema
前端·vue.js
徐小夕1 天前
万字长文!DeepSeek Super-agent × 企业知识库架构深度拆解与落地实践
前端·vue.js·github
ruanno_top2 天前
倒计时该用 deadline 还是每秒减一?我把两种写法都跑了一遍
vue.js
徐小夕2 天前
下载量超 30 万的开源智能体 Prime Agent:它把自己从 TypeScript 重写成了 Rust
前端·vue.js·github
toooooop82 天前
CRMEB 故障排查笔记:安全网关只放行 GET/POST 怎么办
前端·javascript·vue.js·thinkphp6·crmeb
软件技术NINI2 天前
基于SpringBoot和Vue的项目评审系统
javascript·vue.js·spring boot·后端·spring·毕业设计·毕设