首页 > 其他分享 >hooks

hooks

时间:2024-12-24 09:54:01浏览次数:5  
标签:axios getDog hooks dogList 10px import

自定义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>

标签:axios,getDog,hooks,dogList,10px,import
From: https://www.cnblogs.com/fragmentary/p/18626698

相关文章

  • 利用husky.js git hooks实现图片自动压缩功能
    场景在一般的网页开发过程中,往往我们都要下载较多的切图,而这些切图未必都做了压缩,即使做了压缩,效果未必能达到理想效果。要解决这种图片压缩问题,途径有很多1.手动将图片丢到xx站点,压缩好之后再放进项目2.让UI给已经压缩好的图这些方式都得靠人工操作,人工操作往往存在一些不......
  • zustand:基于hooks的react状态管理
    react的状态管理状态(State)是React中用于存储组件数据的特殊对象,它可以影响组件的渲染输出。状态管理的核心目标是确保数据的一致性、可预测性以及组件之间的数据流。每个React组件都可以拥有自己的状态。在类组件中,状态通过this.state来管理,而在函数组件中,可以使用useSta......
  • Vue3 封装不定高虚拟列表 hooks
    //useVirtualList.tsimport{ref,onMounted,onBeforeUnmount,watch,nextTick}from"vue";importtype{Ref}from"vue";interfaceConfig{data:Ref<any[]>;//数据源scrollContainer:string;//滚动容器的元素选择器actualHeightC......
  • 掌握 React Router Hooks:综合指南
    reactrouter是在react应用程序中处理导航的重要库。随着reactrouterv6中引入hooks,管理路由变得更加直观和强大。在这篇博文中,我们将探索五个关键的reactrouter钩子,它们可以提升你的路由游戏。1.usenavigate():轻松编程导航usenavigate钩子提供了一个函数,可以通......
  • Vue3 之hooks 使用详解教程
    一、基本使用<template><view>{{params}}<button@click="goUrl('/pages/index/index')">跳转</button></view></template><script>import{ref,onMounted......
  • react hooks--useCallback
    概述useCallback缓存的是一个函数,主要用于性能优化!!!基本用法如何进行性能的优化呢?useCallback会返回一个函数的memoized(记忆的)值;在依赖不变的情况下,多次定义的时候,返回的值是相同的;语法:constmemoizedCallback=useCallback(()=>{doSomething(a,b);......
  • 在React类组件中使用Hooks的实践技巧
    在React类组件中使用Hooks的实践技巧在React的开发过程中,Hooks自推出以来一直备受开发者的喜爱。它提供了一种更优雅、更简洁的方式来管理状态和副作用,大大简化了函数组件的开发。对于那些已经用类组件构建了大量代码的项目来说,完全转向函数组件可能并不现实。如何在类组件中有效......
  • svnhooks--分路径锁定仓库
    在之前的文章简单的实现了锁定仓库已经授予用户权限提交文件,但是在实际项目中,有时候我们是要锁定资源路径,不允许提交资源了,但是还可以提交配置和代码,那就需要通过分路径锁定。实现方式和思路也是借助pre-commit,我们先在程序里面定义一个字典,简单点我们就不用数据库了,数据先初始化......
  • svnhooks--给用户提交权限,实现单次提交
    在上一篇文章说到,我们通过getuser的方法向服务器请求到svn配置文件有写权限的用户,下面我们需要把用户显示在前端文件中,简单列一下前端的核心显示代码,具体的css样式就不列出来了<divclass="user-container"id="userList"{%ifcommitSwitch=='true'%}style="display:......
  • react常用 Hooks
    ReactHooks是React16.8引入的一项功能,它允许你在函数组件中使用状态和其他React特性,而不需要编写类组件。Hooks使函数组件可以管理本地状态、处理副作用、使用上下文等,使得函数组件更加强大和灵活。以下是常用的ReactHooks及其使用方法:useStateimportReact,{us......