为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

隔江千里 2018-07-22 08:32:26
angular6.x新手,最近在使用过程中碰到如下问题,有没有熟悉的大神来分享一下经验angular中如何多组件共享一个状态,在vue等中可以采用Flux 架构体系,官方也有提供对应的库如(VUEX),那么在angular中如何兄弟组件,或者父组件与孙组件间的数据共享(排除中间组件做转发的方法,感觉扩展性不好,不易维护。)在angular中service服务应该如何理解?个人目前的感觉很类似vue中的mixins,就是一段通用的方法,在组件内导入注册即可使用,并且不同组件倒入相同service不会共享数据。在中大型项目中angualr项目肯定会面临多组件共享状态,那么在中大型项目中应该如何处理?或者你们都是采用什么样的方案在路由中鉴权应该用什么办法去处理比较好?比如:未登录的话,不能进入某些页面,可以的话希望可以提供对应的demo
查看完整描述

2 回答

?
智慧大石

TA贡献1946条经验 获得超3个赞

具体的实现细节,因为时间关系提供不了,简单罗列几个解决方案的方向。

  1. 你说的多组件共享状态,看起来是 redux 的概念,angular 也有这些实现,如果你习惯 redux 的话可以看看 ngrx 这些库也许能给你答案。

  2. 事实上angular 2的代码中没有service的概念,只是因为习惯的原因很多命名会用 service 来命名,它们是一种可注入的对象或值,也可以是方法(Angular中的依赖注入),service 会有自己的作用域,在模块中注册的 service 会与模块中的所有成员共享 service 的实例,如果其中一个组件自己又注册了这个service,那么这个组件注入进来的 service 实例是一个新的实例,模块之间也类似,除此之外更多的资料可以参考前面的链接。

  3. 同1

  4. 鉴权用守护(Guard)来做,支持同步,异步(Promise, Observable)- 参考链接


查看完整回答
反对 回复 2018-07-23
  • 2 回答
  • 0 关注
  • 469 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信