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



相关文章
|
7天前
|
XML 移动开发 前端开发
使用duxapp开发 React Native App 事半功倍
对于Taro的壳子,或者原生React Native,都会存在 `android` `ios`这两个文件夹,而在duxapp中,这些文件夹的内容是自动生成的,那么对于需要在这些文件夹中修改的配置内容,例如包名、版本号、新架构开关等,都通过配置文件的方式配置了,而不需要需修改具体的文件
|
9天前
|
资源调度 JavaScript 前端开发
使用vite+react+ts+Ant Design开发后台管理项目(二)
使用vite+react+ts+Ant Design开发后台管理项目(二)
|
2月前
|
开发者 自然语言处理 存储
语言不再是壁垒:掌握 JSF 国际化技巧,轻松构建多语言支持的 Web 应用
【8月更文挑战第31天】JavaServer Faces (JSF) 框架提供了强大的国际化 (I18N) 和本地化 (L10N) 支持,使开发者能轻松添加多语言功能。本文通过具体案例展示如何在 JSF 应用中实现多语言支持,包括创建项目、配置语言资源文件 (`messages_xx.properties`)、设置 `web.xml`、编写 Managed Bean (`LanguageBean`) 处理语言选择,以及使用 Facelets 页面 (`index.xhtml`) 显示多语言消息。通过这些步骤,你将学会如何配置 JSF 环境、编写语言资源文件,并实现动态语言切换。
29 0
|
2月前
|
开发者 Java
JSF EL 表达式:乘技术潮流之风,筑简洁开发之梦,触动开发者心弦的强大语言
【8月更文挑战第31天】JavaServer Faces (JSF) 的表达式语言 (EL) 是一种强大的工具,允许开发者在 JSF 页面和后台 bean 间进行简洁高效的数据绑定。本文介绍了 JSF EL 的基本概念及使用技巧,包括访问 bean 属性和方法、数据绑定、内置对象使用、条件判断和循环等,并分享了最佳实践建议,帮助提升开发效率和代码质量。
28 0
|
2月前
|
前端开发 Java UED
瞬间变身高手!JSF 与 Ajax 强强联手,打造极致用户体验的富客户端应用,让你的应用焕然一新!
【8月更文挑战第31天】JavaServer Faces (JSF) 是 Java EE 标准的一部分,常用于构建企业级 Web 应用。传统 JSF 应用采用全页面刷新方式,可能影响用户体验。通过集成 Ajax 技术,可以显著提升应用的响应速度和交互性。本文详细介绍如何在 JSF 应用中使用 Ajax 构建富客户端应用,并通过具体示例展示 Ajax 在 JSF 中的应用。首先,确保安装 JDK 和支持 Java EE 的应用服务器(如 Apache Tomcat 或 WildFly)。
32 0
|
2月前
|
前端开发 JavaScript Android开发
React Native 快速入门简直太棒啦!构建跨平台移动应用的捷径,带你开启高效开发之旅!
【8月更文挑战第31天】React Native凭借其跨平台特性、丰富的生态系统及优异性能,成为移动应用开发的热门选择。它允许使用JavaScript和React语法编写一次代码即可在iOS和Android上运行,显著提升开发效率。此外,基于React框架的组件化开发模式使得代码更加易于维护与复用,加之活跃的社区支持与第三方库资源,加速了应用开发流程。尽管作为跨平台框架,React Native在性能上却不输原生应用,支持原生代码优化以实现高效渲染与功能定制。对于开发者而言,React Native简化了移动应用开发流程,是快速构建高质量应用的理想之选。
34 0
|
2月前
|
前端开发 API 开发者
【前端数据革命】React与GraphQL协同工作:从理论到实践全面解析现代前端数据获取的新范式,开启高效开发之旅!
【8月更文挑战第31天】本文通过具体代码示例,介绍了如何利用 GraphQL 和 React 搭建高效的前端数据获取系统。GraphQL 作为一种新型数据查询语言,能精准获取所需数据、提供强大的类型系统、统一的 API 入口及实时数据订阅功能,有效解决了 RESTful API 在复杂前端应用中遇到的问题。通过集成 Apollo Client,React 应用能轻松实现数据查询与实时更新,大幅提升性能与用户体验。文章详细讲解了从安装配置到查询订阅的全过程,并分享了实践心得,适合各层次前端开发者学习参考。
30 0
|
2月前
|
前端开发 JavaScript 数据管理
React Formik入门:简化表单处理的神器——全面掌握Formik在React表单开发中的高效应用与实战技巧
【8月更文挑战第31天】在React应用中,表单处理常常因繁琐而令人头疼。Formik作为一个开源库,专为简化React表单设计,减少冗余代码并提升处理效率。本文介绍Formik的使用方法及其优势,通过示例展示如何安装配置并创建基本表单,帮助开发者轻松应对各种表单需求。
27 0
|
2月前
|
前端开发 JavaScript UED
React 基础与实践 | 青训营笔记
React 基础与实践 | 青训营笔记
44 0
|
3月前
|
前端开发 JavaScript Java
React 速通笔记
【7月更文挑战第17天】
38 1
下一篇
无影云桌面