Polymer Dart 1.0.0 中@reflectable 的用途是什么?
What is the purpose of @reflectable in Polymer Dart 1.0.0?
我已经知道一些我必须像这样使用@reflectable的地方
@property String get name Band =>_nameBand;
@reflectable void set nameBand(val) {
_nameBand = val;
notifyPath('nameBand', _nameBand;
}
对于通过点击元素触发的事件。
<paper-button on-click="clicked"></paper-button>
在元素 class 定义中,您可以在其中定义要在单击事件上调用的事件处理程序方法。
...
@reflectable
void clicked([_, __]) {
...
}
如果没有@reflectable 注释,Polymer 将无法找到 setter 或您希望在单击纸张按钮时使用的方法。为什么需要@reflectable,它的目的是什么?
我意识到我似乎在回答我自己的问题,但我希望得到一些澄清。谢谢。
如果没有 @reflectable
注释,摇树器将丢弃聚合物所需的所有元数据。 Polymer 使用 https://pub.dartlang.org/packages/reflectable 允许它使用有限量的反射,而不会过多地膨胀代码大小。
除了@Anders 的回答...
您需要使用 @reflectable
注释每个方法,您希望将这些方法公开给 Polymer 以用作事件处理程序 (on-tap="clickHandler"
) 或用于与 attribute-name="{{computeValue(someName)}}"
等函数调用的绑定。
您还需要注释要绑定到的模型 class 中的每个字段
Person extends JsProxy {
@reflectable String firstName;
@reflectable String lastName;
}
我已经知道一些我必须像这样使用@reflectable的地方
@property String get name Band =>_nameBand;
@reflectable void set nameBand(val) {
_nameBand = val;
notifyPath('nameBand', _nameBand;
}
对于通过点击元素触发的事件。
<paper-button on-click="clicked"></paper-button>
在元素 class 定义中,您可以在其中定义要在单击事件上调用的事件处理程序方法。
...
@reflectable
void clicked([_, __]) {
...
}
如果没有@reflectable 注释,Polymer 将无法找到 setter 或您希望在单击纸张按钮时使用的方法。为什么需要@reflectable,它的目的是什么?
我意识到我似乎在回答我自己的问题,但我希望得到一些澄清。谢谢。
如果没有 @reflectable
注释,摇树器将丢弃聚合物所需的所有元数据。 Polymer 使用 https://pub.dartlang.org/packages/reflectable 允许它使用有限量的反射,而不会过多地膨胀代码大小。
除了@Anders 的回答...
您需要使用 @reflectable
注释每个方法,您希望将这些方法公开给 Polymer 以用作事件处理程序 (on-tap="clickHandler"
) 或用于与 attribute-name="{{computeValue(someName)}}"
等函数调用的绑定。
您还需要注释要绑定到的模型 class 中的每个字段
Person extends JsProxy {
@reflectable String firstName;
@reflectable String lastName;
}