vue3 hooks的使用(本质是一个函数,把setup函数中使用的composition API 进行了封装)

  • 什么是hook? ----本质是一个函数,把setup函数中使用的composition API进行了封装
  • 类似于vue2中的mixin
  • 自定义hook的优势:复用代码,让setup中的逻辑更清晰易懂

使用方式如下:

//使用hooks的组件
<template>
  <div class="hello" id="HelloWorld">
    x轴位置:{{valz.x}}<br/>
    y轴位置:{{valz.y}}<br/>
  </div>
</template>
<script>
  //引入定义的hooks
  import point from './../hook/commonFirst'
  export default {
    name: 'HelloWorld',
    props: {
      msg: String
    },
    setup(){
      console.log('---setup---');
      //触发执行此方法即可
      let valz=point()
      return{
        valz
      }
    },
}
</script>
//定义的hooks
import {reactive,onMounted,onBeforeUnmount} from 'vue'
export default function(){
    let point=reactive(
        {
            x:0,
            y:0
        }
    )
    function sponk(event){
        console.log(point);
        point.x=event.pageX;
        point.y=event.pageY;
        console.log(event);
    }
    onMounted(()=>{
        console.log('onMounted');
        document.getElementById('HelloWorld').addEventListener('click',sponk)
    })
    onBeforeUnmount(()=>{
        console.log('onBeforeUnmount');
        document.getElementById('HelloWorld').removeEventListener('click',sponk)
    })
    return point;
}
    

 以上只是举一个例子,就是可以公共使用所有setup的组合API

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vue 3的`setup()`函数,你可以使用封装函数,只需要将它们导入并在`setup()`函数使用即可。 假设你有一个`utils`文件夹,里面包含了你封装的防抖和节流函数。你可以按照以下步骤使用它们: 1. 在`utils`文件夹创建`debounce.ts`和`throttle.ts`文件,并实现对应的防抖和节流函数。 ```typescript // utils/debounce.ts export function debounce(func: Function, delay: number) { // 防抖函数的实现 } // utils/throttle.ts export function throttle(func: Function, delay: number) { // 节流函数的实现 } ``` 2. 在你的Vue组件的`setup()`函数导入这些函数,并进行使用。 ```vue <template> <div> <!-- 模板代码 --> </div> </template> <script> import { debounce, throttle } from './utils/debounce'; export default { setup() { // 在这里使用防抖和节流函数 const debouncedFunction = debounce(() => { // 防抖函数的回调逻辑 }, 300); const throttledFunction = throttle(() => { // 节流函数的回调逻辑 }, 500); // 返回响应式数据和方法 return { debouncedFunction, throttledFunction, }; }, }; </script> ``` 在上面的例子,我们通过导入`debounce`和`throttle`函数,并在`setup()`函数使用它们。然后我们将返回的`debouncedFunction`和`throttledFunction`绑定到组件的响应式数据,可以在模板调用它们。 这样,你就可以在Vue 3的`setup()`函数使用封装的防抖和节流函数了。记得根据实际需求调整防抖和节流函数的参数和回调逻辑。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路光.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值