使用redux,我们可以轻松管理状态。因为如果您的组件需要共享和更新状态,那么就需要它。在本篇文章中,我将为您提供完整的redux设置,其中包括带有axios调用api获取数据的示例。

因此,让我们开始我们的redux教程。现在,通过在终端中运行以下代码来创建React项目:

npx create-react-app my-app

现在我们必须安装redux和react-redux。所以打开终端并一个接一个地运行两个命令。

npm install redux//thennpm install react-redux//thennpm install --save redux-thunk

在您的myapp\index.js文件,添加以下代码。

import {Provider} from 'react-redux';
import store from './store';ReactDOM.render(<React.StrictMode><Provider store={store}><App /></Provider></React.StrictMode>,document.getElementById('root')
);

创建您的myapp\src\store\actions\userAction.js文件,添加以下代码。

export const UPDATE_USER = 'UPDATE_USER';const fetch_user = (dispatch) => {axios.get('https://reqres.in/api/users').then(res => res.json()).then(res => dispatch({type:UPDATE_USER,payload:res.data}))
}export default fetch_user;

创建您的myapp\src\store\reducer\useruserReducer.js文件,添加以下代码。

import {UPDATE_USER} from '../actions/userAction';const userReducer = (state = {},{type,payload}) => {// console.log(actions)switch (type) {case UPDATE_USER:return payloaddefault:return state;}
}export default userReducer;

创建您的mpapp\src\store\index.js文件,添加以下代码。

import {applyMiddleware, combineReducers, compose, createStore} from 'redux';
import userReducer from './reducers/userReducer';
import thunk from 'redux-thunk';const allReducer = combineReducers({users:userReducer});const InitialStates = {users: []
} const middleware  = [thunk];const store = createStore(allReducer,InitialStates,compose(applyMiddleware(...middleware);export default store;

我们准备在组件中使用redux。现在打开您的App.js文件,添加以下代码。

import fetch_user from './store/actions/userAction';
import { useSelector, useDispatch } from 'react-redux';function App() {const users = useSelector(state => state.users);const dispatch = useDispatch();return (<div className="App"><h1>Redux Tutorial</h1>Users: <button onClick={()=>dispatch(fetch_user)}>Fetch Users</button>{users.length === 0 ? <p>No user found!</p> :users.map(user => <p key={user.id}>{user.first_name}</p>) }</div>);
}
export default App;

这就是使用Axios Api调用的Redux完整指南示例。

使用redux和axios获取api数据相关推荐

  1. 使用vuex和axios获取api数据

    使用vuex,我们可以轻松管理状态.因为如果您的组件需要共享和更新状态,那么就需要它.在本篇文章中,我将为您提供完整的vuex设置,其中包括带有axios调用api获取数据的示例. 因此,让我们开始我 ...

  2. axios获取html页面,axios 获取后台数据

    什么是axios axios是一个获取后台数据的插件 使用 前提得安装node.js 页面直接引用 下载 选中文件夹 shift+右键 调出命令窗口 输入 npm i axios -g axios的特 ...

  3. vue通过axios获取json数据

    文章目录 前言 一.axios的安装 二.通过axios.get()方法获取json数据 2.1下面的代码是通过axios.get()获取json数据 2.2显示json数据 总结 前言 今天学习了通 ...

  4. 使用 Redux 和 Axios 获取数据

    正如许多开发人员所知,状态管理是您在构建健壮的应用程序时必须处理的众多问题之一.它会很快变成一场噩梦,尤其是在客户端. Redux 强制执行单向数据流,这使得理解事件如何改变应用程序状态变得容易.伟大 ...

  5. 2021-11-03 vue笔记:反向代理介绍和使用场景,基于 vue-cli 的反向代理设置及 axios 获取 json 数据

    文章目录 0.反向代理是什么? 1.正向代理(forward proxy) 2.反向代理(Reverse proxy) 1.为什么要配置反向代理? 2.如何实现vue中配置反向代理? 2.1.安装和引 ...

  6. golang 获取api 数据

    直接上代码 type ApiRequest interface{} //参数 e 一个空接口,f http请求连接, p 请求方式 参数为 "POST" 或 "GET&q ...

  7. 利用axios获取数据并渲染到视图层

    利用axios获取到数据后,渲染到视图层,完成真正的前后端添加删除功能 <!DOCTYPE html> <html lang="en"><head&g ...

  8. json模拟数据怎么用_在使用axios获取自己模拟的json数据是踩到的坑

    最近在使用Vue仿写一个网易云音乐的单页面应用,当页面布局什么的写完后,然后就准备用axios获取后台数据渲染页面了,当然,我自己写的,并没有后台,所以,我就自己写json文件,然后弄proxy代理什 ...

  9. 如何从stackoverflow的api 中获取是数据_如何修复Vue中的 “this is undefined” 问题

    当我们使用 Vue 在愉快的开发项目的时候,突然报了一个错误: this is undefined 别担心,不只有你一个人,我也经常遇到这个问题很多次,接下我们一起来看看如何解决这个问题. 一个可能的 ...

最新文章

  1. 1109 Group Photo (25 分)【难度: 一般 / 知识点: 模拟 排序】
  2. Mips TLB miss异常
  3. C# Socket案例(服务端与客户端)
  4. 【SQL】分组数据,过滤分组-group by , having
  5. 整数线性规划实现(lingo,python分枝界定法)
  6. java中字符串(1)
  7. 记录——《C Primer Plus (第五版)》第九章编程练习第十题
  8. mysql的分页如何操作_Mysql有关分页的操作
  9. 5g组网sa方式的演进_关于5G的SA(独立组网)和NSA(非独立组网),这篇通俗易懂!
  10. 1.《Spring学习笔记-MVC》系列文章,讲解返回json数据的文章共有3篇,分别为:...
  11. 【Android应用开发】 推送原理解析 极光推送使用详解 (零基础精通推送)
  12. rubyonrails test 小记
  13. .net core with 微服务 - 微服务架构图
  14. echarts散列图示例
  15. 爬虫实例 8684公交网-太原公交线路信息
  16. 天才在左疯子在右 读书笔记
  17. steam无法连接至计算机,大神传授win7系统游戏无法连接至steam网络一直卡在“正在连接steam”界面的设置技巧...
  18. datawhale task5变形
  19. zabbix触发器通过钉钉发送警报
  20. python实现屏幕视频录制_Python实现屏幕录制功能的代码

热门文章

  1. 10年资深面试官直言:80%人面试Java都会止步于此!
  2. 5G 十项全能、搭载麒麟 820 芯片,1899 元起的荣耀 X10 来了!
  3. 这五个有用的 CSS 属性完全被我忽视了
  4. 从疫情中看智慧医疗场景新应用,智慧医疗纵深发展还有哪些可能性?
  5. 编译器说 Lambda 表达式中的变量必须是 final 的,我偏不信 | 原力计划
  6. 看完这篇 HTTP,跟面试官扯皮就没问题了
  7. 春晚亲民,快手上行:探秘春晚红包的另一种打开方式
  8. 70 行 Go 代码打败 C!
  9. 漫画:去掉一个数,如何让剩余的数乘积最大?
  10. 谷歌、IBM 们的“量子争霸”迷局