vue3 Hooks 封装loading使用

vue3 Hooks 封装loading使用

个人理解:Hooks 就是 钩子 的意思,在特定时机执行的函数

之前不理解Hooks和自定义封装的utils函数有什么区别,它们都是函数,逐步理解到utils函数没有vue里面的响应式api,而自定义Hooks可以使用响应式api,比如:ref、reactive、onMounted等等

举例说明:

loading大家都不陌生,在项目请求接口时需要显示loading加载提示用户正在请求中的操作,在加载完成隐藏loading,显示返回的数据。

下面使用vue3 Hooks 来封装这个业务场景
定义 Hooks 有一个潜规则,就是要 use 开头

bash 复制代码
// useLoading.ts
import { ref } from 'vue'
export const useLoading = () => {
    const loading = ref(false)
    const show = () => {
        loading.value = true
    }
    const hide = () => {
        loading.value = false
    }
    
    return {
        loading,
        hide,
        show
    }
}

我这里用的elementui框架,使用v-loading绑定loading变量

bash 复制代码
<template>
    <div style="width: 300px;height: 300px;border: 1px solid #000" v-loading="loading">  </div>

    <el-button @click="show">显示loading</el-button>
    <el-button @click="hide">隐藏loading</el-button>
</template>

<script lang="ts" setup>
 import { useLoading } from '@/hooks/useLoading.ts'
 const { 
	loading,
	hide,
	show
	} = useLoading()
</script>

使用Hooks是为了让项目整体的开发代码质量更加高,开发功能更加便捷,效率更高

相关推荐
风月说与山鬼2 小时前
四、浏览器存储
前端·vue.js
阿懂在掘金2 小时前
记录四年前的一次前端项目权限方案改造
前端·vue.js·架构
禁止摆烂_才浅2 小时前
Vue2 高频面试题
前端·vue.js·面试
禁止摆烂_才浅2 小时前
Vue3 高频面试题
前端·vue.js·面试
独立开阀者_FwtCoder2 小时前
这次更新:换新主题,同时把好计划分享出去
前端·javascript·vue.js
资源大佬星 课it14 小时前
重学C++ ,重构你的C++知识体系
vue.js·docker·django
Eason_Lou15 小时前
【无标题】
前端·vue.js·html
Eason_Lou17 小时前
vue flow使用注意事项
前端·vue.js
马可家的菠萝1 天前
Vue3 + Canvas 手绘笔记工程化实践:别把画布只当成一张 PNG
前端·vue.js·算法
用户841794814561 天前
如何用 vue 甘特图来实现计划和实际双任务条进度展示
vue.js