【问题标题】:Iron-signal alternate in Polymer 2?聚合物 2 中的铁信号替代?
【发布时间】:2019-07-17 18:33:43
【问题描述】:

我在我的应用程序中几乎所有地方都使用了铁信号。

现在我正在将聚合物 1 应用程序升级到聚合物 2,我发现 <iron-signals> 不再使用。

实现相同目标的替代路径是什么。我基本上想在我的网络应用程序的不同页面之间传递数据。

【问题讨论】:

    标签: polymer polymer-2.x


    【解决方案1】:

    您应该能够简单地从一个元素中分派window 上的事件并在其他元素中侦听它们。

    示例:

    // Element 1
    
    class FooElement extends Polymer.Element {
      connectedCallback() {
        super.connectedCallback()
      }
    
      ready() {
        super.ready()
        window.addEventListener('bar-was-called', e => {
          console.log(e.detail) // logs 'hello-bar'
        })
      }
    }
    
    // Element 2
    
    class BarElement extends Polymer.Element {
      connectedCallback() {
        super.connectedCallback()
      }
    
      ready() {
        super.ready()
      }
    
      doBar() {
        window.dispatchEvent(new CustomEvent('bar-was-called', { 
          detail: 'hello-bar' 
        }))
      }
    }
    

    旁注

    请记住,iron-signals 被删除是有原因的。 AFAIK 是因为它促进了难以调试的通信架构。

    来自<iron-signals> README

    注意:只要您可以使用控制器(父元素)来代替通信,请避免使用铁信号。

    【讨论】:

    • 我如何从另一端(需要数据的其他页面)获取数据?
    • @Saransh 这是一个不同的问题,不是吗?
    【解决方案2】:

    聚合物 1 中已弃用铁信号。

    用铁元代替铁信号的使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-21
      • 2015-12-11
      • 2015-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-04
      相关资源
      最近更新 更多