Redux以及在reactNative中的简单应用

【redux的安装】

安装redux, 主要包含; redux, react-redux, redux-thunk三个插件; npm依次安装即可

middleWare,redux源码,中间件用来支持异步操作;

----------------------------------------------------------------------------

【在项目中使用Redux】

参考 https://redux.js.org/basics/store 基本介绍

https://redux.js.org/api/createstore API的使用

1.项目入口 AppRegistry.registerComponent('BabyHealth', () => Root);

导入的root文件,需要与redux的store绑定

Root.js中:

该文件中,分别引入了store和app的界面组件;

app.js是一个页面组件,可以是一个路由导航;

store.js中则是对redux管理state状态的仓库 进行初始化和设置

Store.js中:

引入应用中的多个reducer组合及当前文件中引入的rootReducer,一般将不同模块的reducer组合到一个中,用于create的时候与store连接起来;

rootReducer.js

引入了其他多个reducer, 使用combineReducers来连接。(一个应用只有一个store,stroe中可以分多个层级,这个就是通过多个reducers来体现的);

接下来是app.js中的内容;

app.js中是主要的视图内容,通过render()函数中,return视图;

【Redux理解】

createStore中的三大核心

stroe 管理全局状态的一个对象 (getState 获取state树)

reducer纯函数用来修改对象 ,纯函数中参数, 有一个preState,和action。外部只需要dispatch一个action,告诉纯函数自己是要做什么事情,reducer中,能获取到之前的state并对其做修改。(dispatch action )

subscribe 修改state之后,通知界面重新渲染。(subscribe)

createStore做的事情主要是;

1. 私有化的管理应用状态;

2.外部可以通过提供的getState()方法来获取状态;

3.通过dispatch action分发状态;

4.针对状态修改之后,处理状态,自动完成对界面希望的更新;

状态控制之后,对状态渲染的控制,是通过对store中新老状态的比较来区分,对要渲染哪一部分视图进行细致化;

----------------------------------------------------------------------------

【Note】

reducer中,返回的对象一定要是全新的对象 使用

Object.assign({}, state, {isLoding: action.isLoading})

第一个参数一定要是空的对象

如果在使用过程中,会经常的对数组或对象做类似的操作,推荐使用 immutability-helper等能深度修改。以下摘自官网描述:

 

参考资料: 腾讯课堂-源码TV 单信 redux讲解;

                  https://redux.js.org/api/createstore redux官方文档

                 https://github.com/liuhongjun719/react-native-BabyHealth- reactNative项目 babyHealty 

 

 

 

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值