react中的refetch如何用
这篇“react中的refetch如何用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“react中的refetch如何用”文章吧。
10年积累的成都网站建设、成都网站设计经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先建设网站后付款的网站建设流程,更有惠来免费网站建设让你可以放心的选择与我们合作。
使用react-refetch来简化api获取数据的代码
const List = ({data: gists}) => { return (
-
{gists.map(gist => (
- {gist.description} ))}
上面的代码,我们将api获取数据的逻辑用高阶组件抽离出来,下面我们再用react-refetch来简化上面的异步代码
import { connect as refetchConnect } from 'react-refetch' const List = ({gists}) => { if (gists.pending) { returnloading...} else if (gists.rejected) { return{gists.reason}} else if (gists.fulfilled) { return ( gists.fulfilled &&
-
{gists.value.map(gist => (
- {gist.description} ))}
瞬间清爽多了,顺便利用react-refetch提供的属性,顺便把loading逻辑也添加了
分离列表和项目的职责
很明显,List组件是一个渲染列表的组件,他的职责就是渲染列表,但是我们在这里也处理了单个Item的逻辑,我们可以将其进行职责分离,List只做列表染,而Gist也只渲染自身
const Gist = ({description}) => (
-
{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}) => (
加工Gist组件,star函数会被传递给Gist的prop,然后就可以在Gist里面使用了
connectWithStar(Gist)
以上就是关于“react中的refetch如何用”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注创新互联行业资讯频道。
分享名称:react中的refetch如何用
文章链接:http://hbruida.cn/article/pdohih.html