ngrx 初探
来源:互联网 发布:未来造价软件 编辑:程序博客网 时间:2024/06/06 16:49
背景
习惯了 react + redux + redux-observable + rxjs
的技术栈之后,最近开始尝试使用 ng4
。
但是单纯的使用 ng4
就跟单纯的使用 react
一样,状态由 组件
或者 service
来进行维护,在跨组件通信等场景下,虽然也有很多方法去实现,但是总感觉不便于维护,特别是如果队友比较菜的情况下,那就是填不尽的坑,整个项目代码会变得特别松散。
简介
ngrx
其实就相当于 ng
版本的 redux + redux-observable
,参见 github
:
https://github.com/ngrx/platform
从 readme
中的描述我们可以看到:
整个 ngrx
分为了四大块。
其中
@ngrx/store
为主要部分,可以看作是ng
版的redux
,action
、reducer
、store
等都靠这个来维护。@ngrx/effects
的作用类似于redux-observable
,用来处理项目中的一些异步action
之类的side-effect
。@ngrx/router-store
我感觉也是非常有用的一个模块。在
ng4
中对路由状态的处理比较复杂和麻烦,每次需要用的时候都需要在RouteState
中去取相应的部分,@ngrx/router-store
可以让你定义一个格式化的功能,将自己需要的部分映射到@ngrx/store
提供的store
上,并在路由跳转的时候,自动监听并更新相应的值,如下图:@ngrx/store-devtools
,就和字面意思一样,是调试使用的,结合chrome
扩展redux-devtools
一起使用,效果酷酷的:chrome扩展地址传送门
相关资料
官方提供的 example
项目有点晦涩难懂,不是非常明晰,这里推荐 Redux你的Angular 2应用–ngRx使用体验 这篇文章,文章中使用的是 ng2
,如果你的项目是使用的 ng4
,那么结合这篇文章一起就行了:Migration Guide
Tips
当使用 Map
、Set
类型的变量时,在 redux-devtools
中好像没法显示出具体的值来,这是个天坑。
这个时候就无比怀念 logger
中间件了,但是官网的介绍中找不到相关的资料,传送门:ngrx-store-logger
引入之后 console
中就出现了无比熟悉的画面:
Example
有空了可以写个小 demo 出来,不过我觉得都已经用 ng4
了,引引 ngrx
这种事应该也难不倒了。
如果需要的时候我还没贴 demo 链接,可以评论评论催催我~。
- ngrx 初探
- ngrx/store
- ngrx api
- ngrx实例
- Angular2 之 @ngrx/store
- angular4实战(4)ngrx
- Ngrx、RxJs、Redux的初步探究
- 使用Redux和ngrx构建更好的Angular2应用(一)
- 使用Redux和ngrx构建更好的Angular2应用(二)
- 使用Redux和ngrx构建更好的Angular2应用(三)
- 使用Redux和ngrx构建更好的Angular2应用(四)
- 【译】手把手教你用ngrx管理Angular状态
- 初探
- 翻译:使用 Redux 和 ngrx 创建更佳的 Angular 2
- 翻译:使用 Redux 和 ngrx 创建更佳的 Angular 2
- 初探PHP5
- jdbc初探......
- STL初探
- 第四周 项目3
- fakerbaidu
- angulas.js 增删改查
- [LeetCode]98. Validate Binary Search Tree
- . 报错 specified child already has a parent. You must call removeView() on the child's parent first
- ngrx 初探
- 单链表
- 爬虫学习笔记1——爬取糗百段子
- [Go]hello world
- 字符串输入、输出
- HDU
- 从豆瓣电影评分算法说起
- base64图片文件上传实例
- Qt之QLabel