react学习笔记(25) - Redux(5) react-redux的基本使用
什么是react-redux
react-redux
是一个由react
官方推出的第三方插件,是一个redux
的绑定库,它能够使你的React组件
从Redux store中
读取数据,并且向store
分发actions
以更新数据。其实就是用于连接redux
,更方便我们在项目中操作redux
。react-redux
提供了connect
(用于进行组件连接)和Provider
(给全局父组件App
包裹用于进行全局的store
传参)两个Api
react-redux
将所有组件分为两大类:UI组件
和容器组件
,其中所有容器组件
包裹着UI组件
,构成父子关系
。容器组件负责和redux
交互,里面使用redux API
函数,UI组件
负责页面渲染,不使用任何redux API
。容器组件会给UI组件
传递redux
中保存对的状态(state
)和操作状态的方法(action
)。
基本使用
- 下载
react-redux
npm i react-redux |
- 在项目入口文件
index.js
中引入Provider
,以及配置好的redux
的store
对象,并以类似context
的通信形式,将provider
包裹在跟组件的最外层
/* --------------- react项目入口文件 ---------------- */ |
- 在子组件中调用
react-redux
提供的两个API
/* ------------------- provider ----------------------- */ |
- 在异步操作中使用
react-redux
/* |
案例展示:
- 还是上一篇博客的案例: 进入
info
页面显示底部区域,退出info
页面关闭底部区域展示,进入about
页面,请求狗图数据(异步操作
,这里使用redux-promise
),关闭底部区域
1. 入口文件(index.js
)
/* --------------- react项目入口文件 ---------------- */ |
2. store.js
(全局状态管理)
// 1. 引入redux |
3. home.js
(首页页面,路由页面,使用mapStateToProps
获取全局状态)
import React, { Component } from 'react' |
4. info.js
(信息页面,使用mapDispatchToProps
修改全局状态)
import React ,{useEffect}from 'react' |
5. about.js
(关于页面,使用mapStateToProps,mapDispatchToProps
以及异步操作)
import React ,{useEffect}from 'react' |
6. 异步操作action
// 接口地址:随机生成一个狗图(vpn):https://dog.ceo/api/breeds/image/random |
结果展示
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0许可协议。转载请注明来自 肥林の仓库