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 ...
随机推荐
- Q查询条件
e. Q查询 ``` def search(self, query_list): query = self.request.GET.get('query', '') # 获取query的值 # Q(Q ...
- tomcat设置为开机自启动
第一步:设置环境变量(在java环境变量配置完成的情况下) 计算机右键——>属性——>高级系统设置——>环境变量——>在用户变量中心新建CATALINA_HOME变量 编辑pa ...
- 2018-2019-2 20165237《网络对抗技术》Exp2 后门原理与实践
2018-2019-2 20165237<网络对抗技术>Exp2 后门原理与实践 一.实践目标 使用netcat获取主机操作Shell,cron启动 使用socat获取主机操作Shell, ...
- spring boot 框架设计步骤
spring boot 框架设计步骤: 1.poem.xml配置 2.application.yml配置 3.entiry实体 4.realm.Myrealm extends AuthorizingR ...
- iframe父页面和子页面调用
我在页面中使用iframe标签,有的时候就需要两个页面交互 <iframe id="Iframe" src="{{url('field/user')}}" ...
- WPF 10天修炼 第五天- 内容控件
WPF内容控件 在WPF中,所有呈现在用户界面上的对象都称为用户界面元素.但是只有派生自System.Windows.Controls.Control类的对象才称为控件.内容控件通常是指具有Conte ...
- SQL08 清空日志文件语句
--1.先查询数据的日志文件的名称 USE lwlz_zhiluo GO SELECT name FROM SYS.database_files WHERE type_desc='LOG' --2.执 ...
- JS学习过程中碰到的小问题
使用循环语句查找通讯录 //Setup var contacts = [ { "firstName": "Akira", "lastName" ...
- bootstrap学习(二)页面
响应式图片: //当图片大的时候,逐渐缩小浏览器大小,图片会显示为自适应大小 ,img-responsive <div class="container"> <d ...
- 论文阅读笔记四十九:ScratchDet: Training Single-Shot Object Detectors from Scratch(CVPR2019)
论文原址:https://arxiv.org/abs/1810.08425 github:https://github.com/KimSoybean/ScratchDet 摘要 当前较为流行的检测算法 ...