redux 与 react-redux
- Redux
一、Redux 三大原则:
1、一个应用永远只有一个数据源(整个应用状态都保存在一个对象中,Redux提供的工具函数combineReducers可以解决庞大的数据对象的问题)
2、状态是只读的,不能直接修改,而是派发action
3、状态修改均由reducer 这样的纯函数完成
二、在项目中使用
1、在项目入口文件中import
--------若没有则需要安装,ts语法下安装使用 npm install @types/redux的方式
import { createStore, applyMiddleware } from "redux";
2、创建store
// App 是使用combineReducers方法生成的容器组件,里面融合了多个reducer
export const store = createStore(App, applyMiddleware(thunk));
createStore方法创建的是一个对象,它本身又包含4个方法
getState():获取store中的数据 及 状态
dispatch(action):分发一个action ,并返回整个action,这是唯一能改变store中数据的方式
subscribe(listener):注册一个监听者,它在store发生变化时被调用
- React-Redux
1、与redux一样在项目入口文件中import并使用
2、在项目中使用时与redux则不同,react-redux提供了 connect()方法:export default connect(mapStateToProps, mapDispatchToProps)(Form.create()(ScheduleList));
来获取store数据的功能
// 从store 中取数据,此时的this.props包含的有(父组件传过来的数据)和(在这个方法中获取到的数据)
const mapStateToProps = (state) => {
return ({
count: state.counter.count
})
}
// 派发action改变store数据,这里边不能调用这个外边的类中的其他方法,可以在其它方法中以this.props.func()的方法调用这里边派发action的方法, 注:ownProps为别的组件传过来的属性或方法 const mapDispatchToProps=(dispatch,ownProps)=>{
return{
handleInputFocus(){
dispatch(actionCreaters.getList());
dispatch(actionCreaters.searchFocus());
},
handleInputBlur(){
dispatch(actionCreaters.searchBlur());
},
handleMouseEnter(){
dispatch(actionCreaters.mouseEnter());
},
handleMouseLeave(){
dispatch(actionCreaters.mouseLeave());
},
handleChangePage(page,totalPage){
if(page < totalPage){
dispatch(actionCreaters.changePage(page + 1));
}else{
dispatch(actionCreaters.changePage(1));
} }
}
}
redux 与 react-redux的更多相关文章
- webpack+react+redux+es6开发模式
一.预备知识 node, npm, react, redux, es6, webpack 二.学习资源 ECMAScript 6入门 React和Redux的连接react-redux Redux 入 ...
- react+redux教程(八)连接数据库的redux程序
前面所有的教程都是解读官方的示例代码,是时候我们自己写个连接数据库的redux程序了! 例子 这个例子代码,是我自己写的程序,一个非常简单的todo,但是包含了redux插件的用法,中间件的用法,连接 ...
- react+redux教程(六)redux服务端渲染流程
今天,我们要讲解的是react+redux服务端渲染.个人认为,react击败angular的真正“杀手锏”就是服务端渲染.我们为什么要实现服务端渲染,主要是为了SEO. 例子 例子仍然是官方的计数器 ...
- react+redux教程(五)异步、单一state树结构、componentWillReceiveProps
今天,我们要讲解的是异步.单一state树结构.componentWillReceiveProps这三个知识点. 例子 这个例子是官方的例子,主要是从Reddit中请求新闻列表来显示,可以切换reac ...
- react+redux官方实例TODO从最简单的入门(6)-- 完结
通过实现了增-->删-->改-->查,对react结合redux的机制差不多已经了解,那么把剩下的功能一起完成吧 全选 1.声明状态,这个是全选状态 2.action约定 3.red ...
- react+redux官方实例TODO从最简单的入门(1)-- 前言
刚进公司的时候,一点react不会,有一个需求要改,重构页面!!!完全懵逼,一点不知道怎么办!然后就去官方文档,花了一周时间,就纯react实现了页面重构,总体来说,react还是比较简单的,由于当初 ...
- 重写官方TodoList,对于初学react+redux的人来说,很有好处
虽然官网的TodoList的例子写的很详细,但是都是一步到位,就是给你一个action,好家伙,全部都写好了,给你一个reducer,所有功能也是都写好了,但是我们这些小白怎么可能一下就消化那么多,那 ...
- react+redux教程(四)undo、devtools、router
上节课,我们介绍了一些es6的新语法:react+redux教程(三)reduce().filter().map().some().every()....展开属性 今天我们通过解读redux-undo ...
- react+redux教程(三)reduce()、filter()、map()、some()、every()、...展开属性
reduce().filter().map().some().every()....展开属性 这些概念属于es5.es6中的语法,跟react+redux并没有什么联系,我们直接在https:// ...
- react+redux教程(二)redux的单一状态树完全替代了react的状态机?
上篇react+redux教程,我们讲解了官方计数器的代码实现,react+redux教程(一).我们发现我们没有用到react组件本身的state,而是通过props来导入数据和操作的. 我们知道r ...
随机推荐
- sql报错注入:extractvalue、updatexml报错原理
报错注入:extractvalue.updatexml报错原理 MySQL 5.1.5版本中添加了对XML文档进行查询和修改的两个函数:extractvalue.updatexml 名称 描述 Ext ...
- Arduino语言简介
参考链接:https://www.cnblogs.com/xczr/p/7831343.html
- Visual Studio - File Properties (Build Action, Copy to Output Directory)
Ref: MSDN (https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2010/0c6xyb ...
- day10 函数的定义及函数语法详解
""" 今日内容: (1)函数的定义及特点 (2)函数的语法及函数的四部分 (3)函数的分类 (4)函数的调用 (5)函数的return详解 一.函数的定义 1.什么是函 ...
- C语言中 if 和 else if 的区别
先看代码:我们本意是对i不同的值有不同的判断. #include<stdio.h> int main(void) { ; ) { i++; printf("%d\n", ...
- Spring Cloud 之 服务注册与发现
作为微服务框架,提供服务注册发现是最基本的功能.Spring Cloud 针对服务注册发现 提供了 Eureka版本的实现 .Zookeeper版本的实现.Consul版本的实现.由于历史原因 Eur ...
- mysql 从一个表查询数据插入另一个表或当前表
mysql insert into 表明(uid,lng,lat) SELECT uuid,lng,lat FROM 表明
- 修改Maven仓库路径
我自己新建的地址:D:\apache-maven-3.6.0\repository 找到:localRepository,修改为自定义的位置 在IDEA里面进行配置 这样项目的maven仓库地址就修改 ...
- MVC设计模式的简单理解
MVC介绍 众所周知MVC不是设计模式,是一个比设计模式更大一点的模式,称作设计模式不合理,应该说MVC它是一种软件开发架构模式,它包含了很多的设计模式,最为密切是以下三种:Observer (观察者 ...
- C++—模板(2)类模板与其特化
我们以顺序表为例来说明,普通顺序表的定义如下: typedef int DataType; //typedef char DataType; class SeqList { private : Dat ...