React开发实践之(4)redux入门

简介: React开发实践之(4)redux入门

1、入门概念

  • react是 视图层框架
  • redux是 数据层
  • 基本思想将数据保存在 store 中,当一个组件的数据发生变化时,其他来取这个组件的数据也就发生了变化, 其实做了两件事情
1、数据都放在一个 store 中管理 不同组件引用 store 的数据
2、一个组件数据变化 则会引起 其他组件数据的变化 
复制代码

网络异常,图片无法展示
|

网络异常,图片无法展示
|

2、redux 工作流程

网络异常,图片无法展示
|

  • 画一遍

3、使用 antd 编写 todoList

1、安装  yarn add antd
    2、引入  
    3、需要特别注意引入 样式文件 import 'antd/dist/antd.css';
    4、使用 
复制代码

网络异常,图片无法展示
|

  • 代码放在地下
import { Input, Button, List } from "antd";
import "antd/dist/antd.css";
class TodoList extends Component {
  render() {
    const data = ["test", "test2", "test3"];
    return (
      <>
        <div>
          <Input
            placeholder="TodoList"
            style={{
              width: "300px",
              marginRight: "10px",
              marginLeft: "10px",
              marginTop: "10px",
            }}
          />
          <Button type="primary">提交</Button>
        </div>
        <List
          style={{ width: "300px", marginLeft: "10px" }}
          dataSource={data}
          renderItem={(item) => <List.Item>{item}</List.Item>}
        />
      </>
    );
  }
}
export default TodoList;
复制代码
  • 当然 工作中 一般不会直接将 css 写在 此处,会单独使用 css 文件写

4、 store 的创建

网络异常,图片无法展示
|

网络异常,图片无法展示
|

  • 组件内使用 数据

网络异常,图片无法展示
|

  • 我们只需 将这个拿到的数据给 state 就可使用了

网络异常,图片无法展示
|

  • 非常 开心的是可以看到数据 !

网络异常,图片无法展示
|

5、 action creator  

  • 先安装 redux 调试工具
1、安装 
2、配置一下  创建store时 第二个参数传递 这个东西 
复制代码

网络异常,图片无法展示
|

网络异常,图片无法展示
|

  • 将数据更新 整个流程走一遍 ?
  • 此处 组件数据 --> action --> store

网络异常,图片无法展示
|

网络异常,图片无法展示
|

  • 非常 开心的事情, 当 触发 dispatch(action) 时 store 会自动将 (prevState,action) 推给 Reducers

网络异常,图片无法展示
|

  • 此时Reducers 处理 数据 并且返回 newState

网络异常,图片无法展示
|

  • 但是页面数据还未更新,因为页面数据依赖的是 state 更改

网络异常,图片无法展示
|

网络异常,图片无法展示
|

  • 更改页面 state 就可更新页面

网络异常,图片无法展示
|

网络异常,图片无法展示
|

  • 非常开心的一件事情!

* 梅开二度, 我们再尝试更新 list 的内容

  • 点击按钮后将内容 放到下面

网络异常,图片无法展示
|

  • store 不知道怎么处理,会将 之前的 state和当前的 action 传递给 Reducers处理 并且 返回一个新的 state (prevState,action)

网络异常,图片无法展示
|

  • 因为组件内 有监听 store 变化 并且更新了 state 所以 组件重新渲染

网络异常,图片无法展示
|

  • 将 input 内容 提交到 list 中 非常nice的 实现了 !

网络异常,图片无法展示
|

6、 完成删除功能  

网络异常,图片无法展示
|

网络异常,图片无法展示
|

网络异常,图片无法展示
|

  • 页面效果 可以实现 点击删除 非常nice!

网络异常,图片无法展示
|

7、 action Type 拆分  

  • 拆分的目的是 为了在出现问题时,快速定位到问题

网络异常,图片无法展示
|

网络异常,图片无法展示
|

网络异常,图片无法展示
|

8、 使用 action Creator 统一创建 action (重要)  

网络异常,图片无法展示
|

网络异常,图片无法展示
|

网络异常,图片无法展示
|

  • 非常nice ~

9、 小结 + 补充  

  • 重要的小结
1、store 是唯一的 
  2、state 只有 store 能改变 reducer 不能改变 state, 只能拷贝一份 拿到store 给的 (prevState, action) ---> 得到一个新的 newState 给 store 
  3、 Reducer 必须是纯函数,给定 固定的输入,输出则是固定的,不能夹杂 = new Date() 这样的操作,并且不能直接修改 state, 比如 state.value = action.value 
  4、action 是个对象 type 和 payload 
复制代码
  • 重要的 API
1、createStore 创建一个 store 存储数据
 2、store.dispatch(action) 将 action行为 传递到 store 
 3、store.getState() 拿到 store 里的 state
 4、store.subscribe(this.handleXxx) 订阅 store 的变化, store 值更改 则会触发里面的回调函数
复制代码
  • 本节 完 !

撒花 🎉🎉🎉

更多项目请访问 github  github.com/huanhunmao

gitee 项目地址 gitee.com/huanhunmao/…



相关文章
|
2月前
|
前端开发 JavaScript API
React开发需要了解的10个库
本文首发于微信公众号“前端徐徐”,介绍了React及其常用库。React是由Meta开发的JavaScript库,用于构建动态用户界面,广泛应用于Facebook、Instagram等知名网站。文章详细讲解了Axios、Formik、React Helmet、React-Redux、React Router DOM、Dotenv、ESLint、Storybook、Framer Motion和React Bootstrap等库的使用方法和应用场景,帮助开发者提升开发效率和代码质量。
140 4
React开发需要了解的10个库
|
2月前
|
存储 JavaScript 前端开发
掌握现代Web开发的基石:深入理解React与Redux
【10月更文挑战第14天】掌握现代Web开发的基石:深入理解React与Redux
40 0
|
1月前
|
前端开发 JavaScript 定位技术
React 地图组件 Mapbox 入门指南
Mapbox 是一个强大的地图平台,提供丰富的地图数据和工具,支持多种开发语言和框架。本文介绍如何在 React 项目中使用 Mapbox,涵盖基础概念、安装配置、基本用法、常见问题及解决方法、高级用法等内容,并通过代码示例详细说明,帮助开发者提升地图应用的开发效率和用户体验。
97 2
|
1月前
|
前端开发 JavaScript 开发者
使用React和Redux构建高效的前端应用
使用React和Redux构建高效的前端应用
36 1
|
1月前
|
前端开发 API UED
React 图片轮播 Carousel:从入门到进阶
本文介绍了在 React 中实现图片轮播(Carousel)的方法,从基础安装和配置 `react-slick` 开始,逐步讲解了常见问题如图片路径、性能优化、自定义样式和交互处理,以及高级话题如动态数据加载和响应式设计。通过详细示例,帮助开发者避免易错点,提升轮播图的用户体验。
39 3
|
1月前
|
监控 前端开发 JavaScript
React 静态网站生成工具 Next.js 入门指南
【10月更文挑战第20天】Next.js 是一个基于 React 的服务器端渲染框架,由 Vercel 开发。本文从基础概念出发,逐步探讨 Next.js 的常见问题、易错点及解决方法,并通过具体代码示例进行说明,帮助开发者快速构建高性能的 Web 应用。
92 10
|
2月前
|
存储 JavaScript 前端开发
React中使用redux
【10月更文挑战第15天】
34 3
|
2月前
|
前端开发 JavaScript 开发者
探索现代Web前端技术:React框架入门
【10月更文挑战第9天】 探索现代Web前端技术:React框架入门
|
2月前
|
前端开发 JavaScript 开发者
React 组件化开发最佳实践
【10月更文挑战第4天】React 组件化开发最佳实践
72 4
|
2月前
|
存储 JavaScript 前端开发
如何使用React和Redux构建现代化Web应用程序
【10月更文挑战第4天】如何使用React和Redux构建现代化Web应用程序