vue3 - 自定义hook

自定义hook

简单点来说就是将人物或者订单的所有数据和方法放在一个ts文件里面

这样便于维护 假如一个人只需要管 人物的模块 那他只需要操作usePerson.ts文件就可以了

//useDog.ts

ts 复制代码
import { ref,reactive} from 'vue';
import axios  from 'axios';


export default function(){
    let dogList=reactive([
        'https://images.dog.ceo/breeds/pembroke/n02113023_4373.jpg' 
    ])

    async function getDog(){
        let result=await axios.get('https://dog.ceo/api/breed/pembroke/images/random')
        dogList.push(result.data.message)
    }

    //向外部提交东西
    return {dogList,getDog}
}

useHeight.ts

ts 复制代码
import { ref,reactive} from 'vue';

export default function(){
    let height=ref(0)
    
    function addHeigtht(){
        height.value+=1
    }

    return {height,addHeigtht}
}

person.vue

ts 复制代码
<template>
    <div class="person">
        <h1>当前的高度为{{ height }}</h1>
        <button @click="addHeigtht">点我高度加一 </button>
        <hr>
        <img v-for="(dog,index) in dogList" :src="dog" :key="index">
        <hr>
        <hr>
        <button @click="getDog">点我狗再来</button>
    </div>
</template>

<script lang="ts" setup name="Person">
   import useDog from '@/hooks/useDog'
   import useHeight from '@/hooks/useHeight'

   const {dogList,getDog} =useDog()

   const {height,addHeigtht} =useHeight()

</script>


<style>
    .person{
        background-color: aqua;
        box-shadow: 0 0 10px;
        padding: 20px;
        border-radius: 10px;
    }
    button{
        margin: 0 6px;
    }

    img{
        height: 150px;
    }
</style>
相关推荐
幻云20102 分钟前
Next.js指南:从入门到精通
开发语言·javascript·人工智能·python·架构
唐叔在学习3 分钟前
insertAdjacentHTML踩坑实录:AI没搞定的问题,我给搞定啦
前端·javascript·html
老马识途2.04 分钟前
java处理接口返回的json数据步骤 包括重试处理,异常抛出,日志打印,注意事项
java·开发语言
CCPC不拿奖不改名10 分钟前
网络与API:从HTTP协议视角理解网络分层原理+面试习题
开发语言·网络·python·网络协议·学习·http·面试
小王和八蛋18 分钟前
前端存储与离线应用实战:Cookie、LocalStorage、PWA 及 Service Worker 核心知识点
前端·javascript
代码游侠19 分钟前
学习笔记——HC-SR04 超声波测距传感器
开发语言·笔记·嵌入式硬件·学习
superman超哥31 分钟前
Context与任务上下文传递:Rust异步编程的信息高速公路
开发语言·rust·编程语言·context与任务上下文传递·rust异步编程
步达硬件33 分钟前
【Matlab】批量自定义图像处理
开发语言·matlab
军军君0134 分钟前
Three.js基础功能学习七:加载器与管理器
开发语言·前端·javascript·学习·3d·threejs·三维
哈__35 分钟前
React Native 鸿蒙开发:内置 Share 模块实现无配置社交分享
javascript·react native·react.js