hook函数

  • 什么是hook?—— 本质是一个函数,把setup函数中使用的Composition API进行了封装。

  • 类似于vue2.x中的mixin。

  • 自定义hook的优势: 复用代码, 让setup中的逻辑更清楚易懂。

 

正常的模式 : 

复制代码
<template>
    <div>
        得到鼠标坐标 x : {{pagex}}
        得到鼠标坐标 y : {{pagey}}
    </div>
</template>

<script>
    import {onMounted,reactive,toRefs}    from 'vue'
    export default {
        name: 'App',
        setup() {
      let page = reactive({
        pagex:'',
        pagey:''
      })
            onMounted(() => {
                window.addEventListener('click',(event)=>{
          page.pagex = event.pageX
          page.pagey = event.pageY
                })
            })
      return {...toRefs(page)}
        }
    }
</script>
复制代码

 

变成hook模式 :  [ JS 使用默认暴露,引入js的话,取什么名字都行]

hook.js

复制代码
import {onMounted,reactive,onBeforeUnmount}    from 'vue'
export default function(){
    // 数据
    let page = reactive({
        pagex:'',
        pagey:''
    })

    // 方法
    let data = (event)=>{
        page.pagex = event.pageX
        page.pagey = event.pageY
    }

    // 组合式API
    onMounted(() => {
        window.addEventListener('click',data)
    })

    // 组合式API
    onBeforeUnmount(() => {
        window.removeEventListener('click',data)
    })

    return page
}
复制代码

使用 : 

复制代码
<template>
    <div>
        得到鼠标坐标 x : {{pagex}}
        得到鼠标坐标 y : {{pagey}}
    </div>
</template>

<script>
  import suiyi from '../hooks/usePage'
    import {toRefs}    from 'vue'
    export default {
        name: 'App',
        setup() {
         let page = suiyi()
         return {...toRefs(page)}
        }
    }
</script>
复制代码

 

posted @   杨建鑫  阅读(263)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示