上节课,我们介绍了一些es6的新语法:react+redux教程(三)reduce().filter().map().some().every()....展开属性 今天我们通过解读redux-undo的官方示例代码来学习,在redux中使用撤销功能.devtools功能.以及router. 例子 这个例子是个计数器程序,包含计数器.右边的redux开发工具.还有一个路由(不过只有“/”这一个地址). 源代码: https://github.com/lewis617/react-redux-tut…
今天,我们要讲解的是异步.单一state树结构.componentWillReceiveProps这三个知识点. 例子 这个例子是官方的例子,主要是从Reddit中请求新闻列表来显示,可以切换react和frontend关键词来切换新闻列表,可以刷新当前新闻列表. 源代码: https://github.com/lewis617/react-redux-tutorial/tree/master/redux-examples/async 异步 异步本身 这个概念,本文不详细叙述,但可以简单说一下,…
上篇react+redux教程,我们讲解了官方计数器的代码实现,react+redux教程(一).我们发现我们没有用到react组件本身的state,而是通过props来导入数据和操作的. 我们知道react本身是个状态机,也就是说组件是state的表现形式.那么redux提供了一个全局的唯一的状态树,是不是就不需要组件本身的state了呢? 当然不是! 有图为证,这是官方的todomvc的例子(https://github.com/lewis617/react-redux-tutorial/t…
reduce().filter().map().some().every()....展开属性   这些概念属于es5.es6中的语法,跟react+redux并没有什么联系,我们直接在https://developer.mozilla.org/en-US/ 这里可以搜索到相关api文档. 但是redux的官方示例中包含了这些语法的用法,我们正好可以在程序中学习这些语法.这里全部默认使用es6的写法. 例子 这是官方的todomvc的例子(https://github.com/lewis617/r…
今天,我们要讲解的是react+redux服务端渲染.个人认为,react击败angular的真正“杀手锏”就是服务端渲染.我们为什么要实现服务端渲染,主要是为了SEO. 例子 例子仍然是官方的计数器例子,不过我们实现了服务端渲染和state预加载. 源代码: https://github.com/lewis617/react-redux-tutorial/tree/master/redux-examples/universal 虚拟API 首先,我们要模拟一个api,用于异步请求数据.代码如下…
今天,我们通过解读官方示例代码(counter)的方式来学习react+redux. 例子 这个例子是官方的例子,计数器程序.前两个按钮是加减,第三个是如果当前数字是奇数则加一,第四个按钮是异步加一(延迟一秒). 源代码:https://github.com/lewis617/react-redux-tutorial/tree/master/redux-examples/counter 组件 components/Counter.js import React, { Component, Pro…
前面所有的教程都是解读官方的示例代码,是时候我们自己写个连接数据库的redux程序了! 例子 这个例子代码,是我自己写的程序,一个非常简单的todo,但是包含了redux插件的用法,中间件的用法,连接数据库的方法等多个知识点. 源代码: https://github.com/lewis617/react-redux-tutorial/tree/master/redux-wilddog-todos 运行方法: npm install npm run build 手动打开index.html wil…
今天,我们要讲解的是自定义redux中间件这个知识点.本节内容非常抽象,特别是中间件的定义原理,那多层的函数嵌套和串联,需要极强逻辑思维能力才能完全消化吸收.不过我会多罗嗦几句,所以不用担心. 例子 例子是官方的例子real-world,做的是一个获取github用户.仓库的程序.…
lambda函数 python 使用 lambda 来创建匿名函数,lambda返回值是一个函数的地址,也就是函数对象. 语法:lambda [arg1 [,arg2,.....argn]]:expression lambda只是一个表达式,函数体比def简单很多. lambda的主体是一个表达式,而不是一个代码块.仅仅能在lambda表达式中封装有限的逻辑进去. lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数. 虽然lambda函数看起来只能写一行,却不等…