将另一个框架与 polymer dart 1.0 集成
Integrating another framework with polymer dart 1.0
抱歉,如果这有点模糊。
我有自己的基于 FRP 的库来构建我的应用程序模型。它有一个 components
的概念,它有 state
,它通过 Stream
s 改变。
这封装了 UI 减去实际视图的行为。我开始将它与 Polymer 1.0 集成,并希望获得一些指导作为最佳方法。
有些事情很容易(比如将我模型中字段的更改绑定到 notifyPath
)。
对于更新,我正在考虑使用带有 Observe
注释的单一方法,例如
@Observe('*')
void myHandler(Map changeRecord) => ... delegate to my adapters
像这样监听所有(*)事件会不会效率低下?是否有较低级别的方法来注册更具体的路径,从而避免需要 Observe
注释?
在这种情况下,使用 PolymerRegister
注释是注册组件的最佳方式吗?是否有较低级别 API 可以代替?
Is it likely to be inefficient to listen to all (*) events like this?
不幸的是,全局 * 事件实际上不受支持,路径必须以 属性 名称开头。您可以使用 properties
getter 在所有属性上设置手动侦听器。
Is there a lower level way to register more specific paths that avoids the need for the Observe annotation.
有listen(Node element, String eventName, String methodName)
方法。您可以只传递 this
作为节点并监听 {{property}}-changed
事件。您将需要确保您的所有属性都具有 notify: true
以便它们触发事件。这也会降低效率,因为它使用实际事件而不是观察者使用的魔术钩子。
可能还有一些其他技巧可以动态添加常规观察者,但我一时想不起来:)。
Is using the PolymerRegister annotation the best way to register the components in this case? Is there lower level API to do it instead?
这是目前唯一的方法,但如果您想控制注册发生的时间,您只需创建一个 const PolymerRegister(...)
对象并在您需要时对其调用 initialize
。如果您愿意,请为真正的命令 api 提交功能请求。
抱歉,如果这有点模糊。
我有自己的基于 FRP 的库来构建我的应用程序模型。它有一个 components
的概念,它有 state
,它通过 Stream
s 改变。
这封装了 UI 减去实际视图的行为。我开始将它与 Polymer 1.0 集成,并希望获得一些指导作为最佳方法。
有些事情很容易(比如将我模型中字段的更改绑定到 notifyPath
)。
对于更新,我正在考虑使用带有 Observe
注释的单一方法,例如
@Observe('*')
void myHandler(Map changeRecord) => ... delegate to my adapters
像这样监听所有(*)事件会不会效率低下?是否有较低级别的方法来注册更具体的路径,从而避免需要 Observe
注释?
在这种情况下,使用 PolymerRegister
注释是注册组件的最佳方式吗?是否有较低级别 API 可以代替?
Is it likely to be inefficient to listen to all (*) events like this?
不幸的是,全局 * 事件实际上不受支持,路径必须以 属性 名称开头。您可以使用 properties
getter 在所有属性上设置手动侦听器。
Is there a lower level way to register more specific paths that avoids the need for the Observe annotation.
有listen(Node element, String eventName, String methodName)
方法。您可以只传递 this
作为节点并监听 {{property}}-changed
事件。您将需要确保您的所有属性都具有 notify: true
以便它们触发事件。这也会降低效率,因为它使用实际事件而不是观察者使用的魔术钩子。
可能还有一些其他技巧可以动态添加常规观察者,但我一时想不起来:)。
Is using the PolymerRegister annotation the best way to register the components in this case? Is there lower level API to do it instead?
这是目前唯一的方法,但如果您想控制注册发生的时间,您只需创建一个 const PolymerRegister(...)
对象并在您需要时对其调用 initialize
。如果您愿意,请为真正的命令 api 提交功能请求。