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/…



相关文章
|
前端开发 JavaScript
深入理解并实践React Hooks —— useEffect与useState
深入理解并实践React Hooks —— useEffect与useState
527 1
|
11月前
|
前端开发 JavaScript 流计算
React 18 流式渲染:解锁极致性能优化实践
React 18 流式渲染:解锁极致性能优化实践
641 80
|
10月前
|
前端开发 JavaScript 编译器
React编程新手入门实践教程
本书深入解析React核心思想与设计哲学,涵盖组件化思维、虚拟DOM原理及JSX本质,探讨函数组件与类组件特性,详解状态管理、生命周期控制及事件处理机制,帮助开发者掌握高效构建用户界面的技巧。
283 1
|
人工智能 自然语言处理 前端开发
SpringBoot + 通义千问 + 自定义React组件:支持EventStream数据解析的技术实践
【10月更文挑战第7天】在现代Web开发中,集成多种技术栈以实现复杂的功能需求已成为常态。本文将详细介绍如何使用SpringBoot作为后端框架,结合阿里巴巴的通义千问(一个强大的自然语言处理服务),并通过自定义React组件来支持服务器发送事件(SSE, Server-Sent Events)的EventStream数据解析。这一组合不仅能够实现高效的实时通信,还能利用AI技术提升用户体验。
1379 2
|
JSON 前端开发 算法
掌握Multi-Agent实践(三):ReAct Agent集成Bing和Google搜索功能,采用推理与执行交替策略,增强处理复杂任务能力
掌握Multi-Agent实践(三):ReAct Agent集成Bing和Google搜索功能,采用推理与执行交替策略,增强处理复杂任务能力
1033 23
|
Web App开发 移动开发 前端开发
React音频播放器样式自定义全解析:从入门到避坑指南
在React中使用HTML5原生&lt;audio&gt;标签时,开发者常面临视觉一致性缺失、样式定制局限和交互体验割裂等问题。通过隐藏原生控件并构建自定义UI层,可以实现完全可控的播放器视觉风格,避免状态不同步等典型问题。结合事件监听、进度条拖拽、浏览器兼容性处理及性能优化技巧,可构建高性能、可维护的音频组件,满足跨平台需求。建议优先使用成熟音频库(如react-player),仅在深度定制需求时采用原生方案。
585 12
|
前端开发 JavaScript 定位技术
React 地图组件 Mapbox 入门指南
Mapbox 是一个强大的地图平台,提供丰富的地图数据和工具,支持多种开发语言和框架。本文介绍如何在 React 项目中使用 Mapbox,涵盖基础概念、安装配置、基本用法、常见问题及解决方法、高级用法等内容,并通过代码示例详细说明,帮助开发者提升地图应用的开发效率和用户体验。
857 2
|
前端开发 API UED
React 图片轮播 Carousel:从入门到进阶
本文介绍了在 React 中实现图片轮播(Carousel)的方法,从基础安装和配置 `react-slick` 开始,逐步讲解了常见问题如图片路径、性能优化、自定义样式和交互处理,以及高级话题如动态数据加载和响应式设计。通过详细示例,帮助开发者避免易错点,提升轮播图的用户体验。
449 3
|
监控 前端开发 JavaScript
React 静态网站生成工具 Next.js 入门指南
【10月更文挑战第20天】Next.js 是一个基于 React 的服务器端渲染框架,由 Vercel 开发。本文从基础概念出发,逐步探讨 Next.js 的常见问题、易错点及解决方法,并通过具体代码示例进行说明,帮助开发者快速构建高性能的 Web 应用。
1076 10
|
前端开发 JavaScript
手敲Webpack 5:React + TypeScript项目脚手架搭建实践
手敲Webpack 5:React + TypeScript项目脚手架搭建实践