千家信息网

react中的refetch如何用

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇"react中的refetch如何用"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇
千家信息网最后更新 2026年11月03日react中的refetch如何用

这篇"react中的refetch如何用"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"react中的refetch如何用"文章吧。

使用react-refetch来简化api获取数据的代码

const List = ({data: gists}) => { return (  
    {gists.map(gist => (
  • {gist.description}
  • ))}
)}const withData = url => Part => { return class extends Component { state = {data: []} componentDidMount() { fetch(url) .then(response => response.json ? response.json() : response) .then(data => this.setState({data})) } render() { return } }}const ListWithGists = withData('https://api.github.com/users/gaearon/gists')(List)

上面的代码,我们将api获取数据的逻辑用高阶组件抽离出来,下面我们再用react-refetch来简化上面的异步代码

import { connect as refetchConnect } from 'react-refetch'const List = ({gists}) => { if (gists.pending) {  return 
loading...
} else if (gists.rejected) { return
{gists.reason}
} else if (gists.fulfilled) { return ( gists.fulfilled &&
    {gists.value.map(gist => (
  • {gist.description}
  • ))}
) }}const ListWithGists = refetchConnect(() => ({gists: `https://api.github.com/users/gaearon/gists`}))(List)

瞬间清爽多了,顺便利用react-refetch提供的属性,顺便把loading逻辑也添加了

分离列表和项目的职责

很明显,List组件是一个渲染列表的组件,他的职责就是渲染列表,但是我们在这里也处理了单个Item的逻辑,我们可以将其进行职责分离,List只做列表染,而Gist也只渲染自身

const Gist = ({description}) => ( 
  • {description}
  • )const List = ({gists}) => { if (gists.pending) { return
    loading...
    } else if (gists.rejected) { return
    {gists.reason}
    } else if (gists.fulfilled) { return ( gists.fulfilled &&
      {gists.value.map(gist => )}
    ) }}

    使用react-refetch来给Gist添加功能

    react-refetch的connect方法接收一个函数作为参数,这个函数返回一个对象,如果结果对象的值是一个字符串,那么获取prop后,会对这个字符串发起请求,但是如果值是一个函数,那么不会立即执行,而是会传递给组件,以便后续使用

    值为字符串

    const connectWithStar = refetchConnect(() => ({gists: `https://api.github.com/users/gaearon/gists`}))

    值为函数

    const connectWithStar = refetchConnect(({id}) => ({ star: () => ({  starResponse: {   url: `https://api.github.com/gists/${id}/star?${token}`,   method: 'PUT'  } })}))const Gist = ({description, star}) => ( 
  • {description}
  • )

    加工Gist组件,star函数会被传递给Gist的prop,然后就可以在Gist里面使用了

    connectWithStar(Gist)

    以上就是关于"react中的refetch如何用"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。

    内容 函数 组件 代码 字符 字符串 职责 逻辑 对象 就是 数据 文章 知识 篇文章 面的 明显 清爽 价值 功能 单个 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州为想互联网科技有限公司 蓝思科技飞鸽互联网 互联网电商科技 西安互联网科技 狮子座互联网科技有限公司 腾讯科技 互联网女皇 亿人帮互联网科技 新华互联网科技校企合作 银川新华互联网科技学校地址 北京华百购互联网科技有限公司 中化能源互联网科技招聘 996高科技互联网公司 互联网第三次科技革命特征 深圳互联网科技的发展 风投北京互联网科技 好易买互联网科技 互联网金融金融科技 杭州科技互联网公司有哪些 瑞安市蟠桃会互联网科技有限公司 互联网企业和网络科技有限公司 互联网科技公司官网 碳银互联网科技 无线互联网科技 互联网公司会议桌创意科技软装饰 金融科技与互联网金融相同和不同 南平创想时代互联网科技有限公司 宝灵互联网科技有限公司 广西泛欧互联网科技有限公司 杭州融税互联网科技有限公司 上海旺乐尼互联网科技有限公司
    0