Javascript 在Angular中共享数据的技术有哪些及其优缺点

Javascript 在Angular中共享数据的技术有哪些及其优缺点,javascript,angular,angular-components,feedback,Javascript,Angular,Angular Components,Feedback,据我所知,在Angular中共享数据有四种方式(我们可以看到): 通过Input()decorator 通过ViewChild()decorator 通过Output()decorator和EventEmitter 使用服务 是否有其他方法在角度组件之间共享数据?它的优点和缺点是什么?第1-3项和第4项的主要区别在于“家庭” 只有当组件具有父子连接时,才能使用1-3 如果组件不是“亲戚”,则应使用servise显然,利弊取决于您试图解决的特定问题。我鼓励您通读和阅读许多可用的文章,找出每一篇文章

据我所知,在Angular中共享数据有四种方式(我们可以看到):

  • 通过
    Input()
    decorator
  • 通过
    ViewChild()
    decorator
  • 通过
    Output()
    decorator和
    EventEmitter
  • 使用服务

  • 是否有其他方法在角度组件之间共享数据?它的优点和缺点是什么?

    第1-3项和第4项的主要区别在于“家庭”

    只有当组件具有父子连接时,才能使用1-3


    如果组件不是“亲戚”,则应使用servise

    显然,利弊取决于您试图解决的特定问题。我鼓励您通读和阅读许多可用的文章,找出每一篇文章的优点和缺点。是的,这取决于特定的问题,但在同一个问题中,我们可以使用服务或输入。就我而言,我更喜欢服务,因为我熟悉它。使用服务的优点是双向数据流(父到子和子到父),缺点是我们必须创建另一个
    .ts
    文件。所以我想知道其他人的优缺点(如果存在的话),给我其他的观点来解决我的问题。在解释优缺点之前,你真的需要了解Angular是如何工作的。Input()和Output()的一个优点是它们允许轻松重用“哑”组件。服务的一个缺点是每个组件必须具有相同的服务实例。当您试图与在不同模块中声明的组件进行通信时,这可能很难维护。在我看来,如果您按照设计的方式使用angular,服务将很难用于组件到组件的通信。话虽如此,如果你发现它的局限性,那就用它吧。华莱士,谢谢你的评论。现在我看到了使用
    input()
    /
    output()
    的一些优点。我问这个问题是因为我总是使用服务,目前我想尝试其他方式。我喜欢您的“服务几乎不会用于组件到组件的通信”,从现在起,我将尽量减少使用服务。