hooks
自定义hooks
1、将对应一个功能的代码拆分出去:
import { reactive, onMounted } from "vue"; import axios from "axios"; //有了default后 function不用加名字 export default function () { //数据 let dogList = reactive([ "https://images.dog.ceo/breeds/papillon/n02086910_9579.jpg", ]); //方法 async function getDog() { try { let result = await axios.get("https://dog.ceo/api/breeds/image/random"); console.log(result.data.message); dogList.push(result.data.message); } catch (error) { alert(error); } } //挂载后 onMounted(() => { getDog() }) //向外部提供东西 return { dogList, getDog }; }
2、然后在导入使用
<template> <div class="person"> <h2>当前求和为:{{ sum }}</h2> <button @click="add">点我sum+1</button> <hr> <img v-for="(dog, index) in dogList" :key="index" :src="dog" alt="狗的照片"> <br> <button @click="getDog">再来一只小狗</button> </div> </template> <script setup lang="ts" name="Person"> import useDog from '../hooks/useDog'; import useSum from '../hooks/useSum'; const {sum, add} = useSum(); const {dogList, getDog} = useDog(); </script> <style scoped> .person { background-color: skyblue; box-shadow: 0 0 10px; /* 盒子阴影 */ border-radius: 10px; padding: 20px; } button { margin: 0 5px; } img { width: 100px; margin-right: 10px; } </style>
本文作者:如此而已~~~
本文链接:https://www.cnblogs.com/fragmentary/p/18626698
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步