react基础之自定义获取异步的hooks

react 中也可以自定义获取异步数据的hooks,其基本用法,与同步数据有点类似,代码如下

js 复制代码
import { useEffect, useState } from "react"


// 异步获取信息
function getInfo(): Promise<string> {
    return new Promise(resolve => {
        setTimeout(() => {
            resolve(Date.now().toString())
        }, 1500)
    })
}

// 自定义hooks
const useGetInfo = () => {
    const [loading, setLoading] = useState(true)
    const [info, setInfo] = useState('')
    // 获取数据
    useEffect(() => {
        getInfo().then(info => {
            // 设置状态
            setLoading(false)
            setInfo(info)
        })
    }, [])

    return {
        loading, info
    }
}
// 返回hooks
export default useGetInfo

使用方法:

js 复制代码
import useGetInfo from './hooks/useGetInfo';

  const { loading, info } =  useGetInfo()
  
  <div>
    异步获取数据:{ loading ? '加载中。。。': info}
</div>
相关推荐
浩~~18 分钟前
HTML5 浮动(Float)详解
前端·html·html5
AI大模型顾潇1 小时前
[特殊字符] 本地大模型编程实战(29):用大语言模型LLM查询图数据库NEO4J(2)
前端·数据库·人工智能·语言模型·自然语言处理·prompt·neo4j
九月TTS2 小时前
TTS-Web-Vue系列:Vue3实现内嵌iframe文档显示功能
前端·javascript·vue.js
爱编程的小学究2 小时前
【node】如何把包发布到npm上
前端·npm·node.js
weixin_473894772 小时前
前端服务器部署分类总结
前端·网络·性能优化
LuckyLay2 小时前
React百日学习计划-Grok3
前端·学习·react.js
澄江静如练_2 小时前
小程序 存存上下滑动的页面
前端·javascript·vue.js
互联网搬砖老肖3 小时前
Web 架构之会话保持深度解析
前端·架构
菜鸟una3 小时前
【taro3 + vue3 + webpack4】在微信小程序中的请求封装及使用
前端·vue.js·微信小程序·小程序·typescript·taro
hao_04133 小时前
elpis-core: 基于 Koa 实现 web 服务引擎架构设计解析
前端