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>
相关推荐
俊昭喜喜里几秒前
理解全局跨域CORS配置
前端
香芋芋圆29 分钟前
iD-editor 详解|OSM官方在线编辑器,基于D3.js的轻量地图编辑器
开发语言·javascript·编辑器
晗夜未央2 小时前
任务队列反复失败,先分清重试、阻塞和结果待核对
开发语言·javascript
锋行天下3 小时前
DeepSeek写Langgraph就是个大傻逼,一本正经胡说八道
前端·人工智能·后端
jktantan3 小时前
每个节点 41 字节:把一棵百万节点树拆进 14 个 typed array
前端·javascript·vue.js·算法·typescript
计算机魔术师3 小时前
Anthropic官方插件被「寄生」,背后是同一类攻击又来了
前端
我命由我123454 小时前
访客系统形式(有用户概念、无用户概念)
java·开发语言·前端·javascript·python·产品运营·产品经理
key_3_feng4 小时前
评估与对齐:Agent 自我进化的护栏
前端·数据库·agent
程序员大阳4 小时前
副队长JavaScript教程(65)-详解JSON:轻量级数据交换格式
javascript·json·序列化·反序列化·stringify·parse
LaughingZhu5 小时前
Product Hunt 热榜 2026-10-30:Empacer、Scape、Floot in ChatGPT
java·前端·数据库·人工智能·chatgpt·notion