JS学习--React(三)

转载自:React.js 小书

http://huziketang.mangojuice.top/books/react/

redux学习资源推荐:https://cn.redux.js.org/docs/introduction/LearningResources.html

 

Context

http://huziketang.mangojuice.top/books/react/lesson29

一个组件可以通过 getChildContext 方法返回一个对象,这个对象就是子树的 context,提供 context 的组件必须提供 childContextTypes 作为 context 的声明和验证。(context像全局变量一样危险,React将他弄复杂一点以减少人们的使用)

如果一个组件设置了 context,那么它的子组件都可以直接访问到里面的内容,它就像这个组件为根的子树的全局变量。任意深度的子组件都可以通过 contextTypes 来声明你想要的 context 里面的哪些状态,然后可以通过 this.context 访问到那些状态。

Reducer

纯函数:一个函数的返回结果只依赖于传给它的参数,并且在执行过程里面没有副作用(不会改变外部变量的值,不会产生外部可观察的变化,甚至连console.log()也算副作用)

redux中的reducer是一个纯函数,仅仅进行初始化操作和计算新的state,接受两个参数,state和action。

Redux三大原则

  1. 单一数据源:整个应用的 state 被储存在一棵 object tree 中,并且这个 object tree 只存在于唯一一个 store 中。

  2. state只读:唯一改变 state 的方法就是触发 action,action 是一个用于描述已发生事件的普通对象。

  3. 使用纯函数来执行修改:为了描述 action 如何改变 state tree ,你需要编写 reducers

combineReducers()函数

帮助将子reducer合并为一个reducer,并把两个结果集合并成一个 state 树

React-move动画的实现

Animate

NodeGroup

https://github.com/react-tools/react-move#transitioning-state

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值