如何在React Hook组件中远程获取数据?

如何在React Hook组件中远程获取数据?

简介

在本教程中,我想给你看在React Hook组件中如何通过stateeffecthooks获取数据。
我们将使用众所周知的Hacker News API获取从科技世界受欢迎的文章。 您还将实现您的自定义的数据抓取钩可以重用任何地方在您的应用程序或发布在npm作为独立节点包。

  • 如果你对于关于这个新的特性还没有了解,请先查看React Hook简介.
  • 如果你对React Hook足够了解,想查看完整例子请点击这里GitHub库 (这个项目展示了如何通过effectHook获取数据)。

如果你只是想有一个准备去钩反应数据获取:npm install use-data-api并遵循文档. 别忘了明星如果你使用它:-)

注意:在未来,React Hooks不被用于数据获取的反应。 相反,一个叫做Suspense的功能将负责。
以下介绍还是一个伟大的方式来了解更多关于stateeffect hooks in React

数据获取与钩子的反应

如果你不熟悉如何在React获取数据,可以阅读我的这篇文章《如何在react远程加载数据》.
通过数据获取与React class组件,它如何可以重用渲染支撑组件和高阶组件,以及如何处理错误处理和加载功能。

在下面代码中,我展示了在React Function 组件中使用React Hook

    import React, { useState } from 'react';
    
    function App() {
      const [data, setData] = useState({ hits: [] });
    
      return (
        <ul>
          {data.hits.map(item => (
            <li key={item.objectID}>
              <a href={item.url}>{item.title}</a>
            </li>
          ))}
        </ul>
      );
    }

export default App;

App组件显示条目的列表(点击=黑客新闻文章)。datasetData来自于useStatestate hook ,它负责管理组件的state和获取数据。 初始状态是一个对象,里面有一个名为hits的空数组,表示无数据。

我们将使用axios获取数据,但是取决于你使用另一个数据抓取库或浏览器的本地获取API。 如果你还没有安装axios,你可以通过在命令行上npm install axios. 然后通过effect hook实现数据获取:

import React, { useState, useEffect } from 'react';
import axios from 'axios';

function App() {
  const [data, setData] = useState({ hits: [] });

  useEffect(async () => {
    const result = await axios(
      'http://hn.algolia.com/api/v1/search?query=redux',
    );

    setData(result.data);
  });

  return (
    <ul>
      {data.hits.map(item => (
        <li key={item.objectID}>
          <a href={item.url}>{item.title}</a>
        </li>
      ))}
    </ul>
  );
}

export default App;

影响钩子函数叫useEffect用于获取数据的axios API和设置组件的数据在本地状态与政府挂钩的更新功能。 通过async/await.解决异步请求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南易武痴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值