其他分享
首页 > 其他分享> > hook函数

hook函数

作者:互联网

 

正常的模式 : 

<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>

 

标签:函数,onMounted,page,hook,pagex,pagey,event
来源: https://www.cnblogs.com/qd-lbxx/p/16291727.html