angular 6.x关于多个组件共享状态

angular6.x新手,最近在使用过程中碰到如下问题,有没有熟悉的大神来分享一下经验

  1. angular中如何多组件共享一个状态,在vue等中可以采用Flux 架构体系,官方也有提供对应的库如(VUEX),那么在angular中如何兄弟组件,或者父组件与孙组件间的数据共享(排除中间组件做转发的方法,感觉扩展性不好,不易维护。)

  2. 在angular中service服务应该如何理解?个人目前的感觉很类似vue中的mixins,就是一段通用的方法,在组件内导入注册即可使用,并且不同组件倒入相同service不会共享数据。

  3. 在中大型项目中angualr项目肯定会面临多组件共享状态,那么在中大型项目中应该如何处理?或者你们都是采用什么样的方案

  4. 在路由中鉴权应该用什么办法去处理比较好?比如:未登录的话,不能进入某些页面,可以的话希望可以提供对应的demo


隔江千里
浏览 473回答 2
2回答

智慧大石

具体的实现细节,因为时间关系提供不了,简单罗列几个解决方案的方向。你说的多组件共享状态,看起来是 redux 的概念,angular 也有这些实现,如果你习惯 redux 的话可以看看 ngrx 这些库也许能给你答案。事实上angular 2的代码中没有service的概念,只是因为习惯的原因很多命名会用 service 来命名,它们是一种可注入的对象或值,也可以是方法(Angular中的依赖注入),service 会有自己的作用域,在模块中注册的 service 会与模块中的所有成员共享 service 的实例,如果其中一个组件自己又注册了这个service,那么这个组件注入进来的 service 实例是一个新的实例,模块之间也类似,除此之外更多的资料可以参考前面的链接。同1鉴权用守护(Guard)来做,支持同步,异步(Promise, Observable)- 参考链接。
打开App,查看更多内容
随时随地看视频慕课网APP