React Native Redux(三) Q&A

作者: Nickyzhang | 来源:发表于2017-08-09 19:35 被阅读137次
Q: 有多少个state,都是存放在哪?

A:

一个页面甚至一个功能都可以拥有一个state,只不过给这个state叫不同的名字。所有的state都以一个对象树的形式存储在唯一一个store中。

Q:Redux三大原则

A:

单一数据源:整个应用的state都存在一个object tree(store)

state是只读的:唯一可以改变state的是触发action

使用纯函数来执行修改: 你需要编写reducer来修改state,尽量保持reducer是纯函数

Q:dispatch()是怎么来的?connect是怎样连接组件和store的?

A:

connect([mapStateToProps], [mapDispatchToProps], [mergeProps],[options])

作用:连接 React 组件与 Redux store

connect()的第一个参数mapStateToProps(Function),该参数会监听store中state的变化。只要store中的state发生变化,该回调函数就是返回一个新对象,这个对象会与组件的props合并。如果没有的话就监听不到数据的变化那页面也不会有更新。

connect()的第二个参数mapDispatchToProps(Object or Function)。<font color=red size=2.5>如果mapDispatchToProps省略的话,dispatch()会注入到组件的props中(这就是dispatch()的由来).</font> 如果是一个对象,我们需要将action和dispatch绑定并合入到props中。如果是一个函数,该函数将接受一个dispatch(),并返回一个对象,并通过bindActionCreators()将dispatch()和action绑定。

connect()将会被调用两次。第一次是设置参数,第二次是组件与 store连接,mapStateToProps 函数接收整个 store 的 state 作为 props

Q: 触发action时,reducer是如何触发的?

A:
store会将action和当前的state传入到reducer

<font color=red size = 2.5>注意:</font>

不要在克隆state前修改它。

每个reducer只负责修改全局state中它所负责的一部分。

Q: reducer改变的state怎么反馈到store?

A :

let store = createStore(rootReducers, initialState);

Q:middleware是什么

A:

middleware是指可以被嵌入到框架接受请求到产生响应过程之中的代码。在redux中指的是action被发起之后到达reducer之前的拓展点。

相关文章

网友评论

    本文标题:React Native Redux(三) Q&A

    本文链接:https://www.haomeiwen.com/subject/fdiqrxtx.html