Redux基础

在开始学习Redux基础之前先给大家推荐一个vsCode插件Simple React Snippets,它可以快速生成React代码结构,效果如图:

Redux基础

常用代码片段请参考官方介绍:

https://marketplace.visualstudio.com/items?itemName=burkeholland.simple-react-snippets

接下来实操一个简单实例逐步了解Redux, 开始吧!


初始化项目及搭建UI


1. 安装官方脚手架

    npm install -g create-react-app

    创建项目

    create-react-app demo

    启动项目

    npm start 

参考:

https://ant.design/docs/react/use-with-create-react-app-cn

2. 只保留index.js, 删除其余文件,新建TodoList.js文件,先输入imrc,再输入ccc文件结构

3. 安装antDesign

    npm install antd –save  

    在TodoList.js文件引入样式文件

    Import ‘antd/dist/antd.css’ , 

    引入组件 

    Import {Button, Input, List} from ‘antd’ 

    快速搭建UI界面

Redux基础

Redux基础

 

Redux基础

创建Redux中的仓库store和reducer 


1. 安装redux 
    npm install –save redux
    之后在src下新建store文件夹, 
    在store文件夹下新建index.js,引入createStore方法
    import{createStore}from ‘redux’ 
    创建数据存储仓库 
    const store = createStore()
    暴露store出去 
    export default store 

2.  store文件夹下新建reducer.js

    const defaultState={}给个默认数据,导出一个方法函数, 

    把reducer引入到index.js,  在创建store的时候以参数的形式传给store

3. 在TodoList.js 文件中引入store, 删除之前的data数据,

    store.getState()直接复制给组件的state,  然后通过this.state调用

Redux基础

Redux基础

Redux基础

Redux基础

Redux实现数据交互


改变Redux里面State的值, 就要创建Action这个对象,它有两个属性,第一个是对Action的描述, 第二个是要改变的值, 创建好Action, 要通过dispatch()传递给Store这个仓库,因为它并没有管理能力, 所以会自动推送Action 给reducer,reducer就拿到了原来的数据state和传递过来的新数据action,但是reducer并不能改变state, 就要通过return一个新声明的的变量newState

1. 增加input响应事件

添加响应事件

Redux基础

创建Action

Redux基础

Reducer接收数据

Redux基础

更新组件

Redux基础

Redux基础

2. 增加button的添加响应事件 

添加响应事件

Redux基础

Redux基础

创建Action

Redux基础

Reducer接收数据

Redux基础

更新组件

store.subscribe(this.storeChange)订阅Redux的状态


到这里TodoList还差一个删除功能, 和添加类似,就留给阅读文章的小伙伴练手吧,做完这个demo,Redux就入门了。

当然这个demo还有很多需要完善的地方, 比如,写了很多Action, 产生了很多Action type, 是不是可以把这些Action统一放到一个文件进行管理呢?等等, 后面会继续跟大家分享…


总结

通过练习这个demo体验了Redux编写代码的整体流程, 最后贴一张Redux的官方图, 现在就更好理解了。

Redux基础


本篇文章来源于微信公众号: TripDesign

UI/UX

U享会|在知乎做产品设计--是一种什么样的体验

2019-8-2 9:30:00

UI/UX

CDC达人 | 关于探寻审美本质的小故事--周奕霖

2019-8-5 18:00:00

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索