vue Hooks

Vue Hooks是Vue3基于‌Composition API实现的逻辑复用方案,通过函数式封装解决代码复用与组织难题‌。

Vue Hooks的核心作用

  • ‌逻辑复用‌:替代Vue2的‌Mixin方案,避免命名冲突(如多个Mixin的data/methods同名覆盖问题),通过usePagination等函数显式暴露状态与方法。‌‌
  • ‌代码聚合‌:将与同一功能相关的‌响应式变量、‌计算属性、生命周期逻辑整合到单一Hook中(如分页功能包含页码控制、加载状态、请求触发)。‌‌
  • ‌类型支持优化‌:配合‌TypeScript时,函数参数与返回值类型推导更精准,提升代码可维护性。‌‌
  • 自定义hook的优势:复用代码, 让setup中的逻辑更清楚易懂。

使用方式与规范

  • ‌命名规则‌:以use开头的驼峰命名(如useFetch)。‌‌

  • ‌代码组织‌:在src/hooks目录存放复用逻辑,组件中通过import { useXxx } from '@/hooks'调用。‌‌

  • 让一个功能的数据和方法合在一起,把模块化开发发挥到极致,类似vue2的mixin

  • 示例代码:

    import {ref,onMounted} from 'vue'

    export default function(){
    let sum = ref(0)

    复制代码
    const increment = ()=>{
      sum.value += 1
    }
    const decrement = ()=>{
      sum.value -= 1
    }
    onMounted(()=>{
      increment()
    })
    
    //向外部暴露数据
    return {sum,increment,decrement}

    }

组件中具体使用:

复制代码
<template>
  <h1> 数字:{{ sumData.sum }}</h1>
  <button @click="sumData.increment">点我+1</button>
</template>
 
<script setup lang="ts">
import useSum  from './hooks/useSum'
// 调用useSum函数获取返回的响应式数据
const sumData = useSum()
</script>
 
<style scoped>

</style>
相关推荐
该怎么办呢4 分钟前
Source/Core/DeveloperError.js
开发语言·javascript·ecmascript
于慨25 分钟前
tauri
java·服务器·前端
riyue66632 分钟前
封装 WebSocket 工具类
网络·vue.js·websocket·网络协议·v
贼爱学习的小黄1 小时前
NC BIP参照开发
java·前端·nc
weixin_462901971 小时前
ESP32 LED控制代码解析
javascript
小江的记录本1 小时前
【MyBatis-Plus】MyBatis-Plus的核心特性、条件构造器、分页插件、乐观锁插件
java·前端·spring boot·后端·sql·tomcat·mybatis
小张会进步1 小时前
数组:二维数组
java·javascript·算法
光影少年1 小时前
如何进行前端性能优化?
前端·性能优化
Dxy12393102161 小时前
js如何把字符串转数字
开发语言·前端·javascript
爱写bug的野原新之助1 小时前
爬虫之补环境:加载原型链
前端·javascript·爬虫