半月前あたりに Polymer.dart の 0.12.0 がリリースされ、@published
の推奨の書き方が変わった。チュートリアルとかに反映されてないっぽいのでまとめる。
0.12.0 以前では:
my_costom.dart
@CustomTag('my-custom')
class MyCustomElement extends PolymerElement {
@published String myAttr;
}
と書いていたものを:
my_costom.dart
@CustomTag('my-custom')
class MyCustomElement extends PolymerElement {
@published
String get myAttr => readValue(#myAttr);
set myAttr(String s) => writeValue(#myAttr, s);
}
と書くことを推奨するようになった。今までタイミングによっては古い値がとれてしまった MyCustomElement の myAttr
を、この書き方に変えることで、この常に最新のものが取得できると謳ってる。
古い方の書き方もまだ生きているが推奨されていない。
所感
あんまり古い値とれて困るってケースがなかったので、単に書き方が辛くなっただけ感。
たしかに、DOM 経由で操作した直後に myAttr 参照すると操作前の値とれるけど、そもそもそんな書き方するほうが間違ってるので。
あまりにも書くのが辛すぎるので、transformer がうまく展開してくれるようにて、もっとシンプルな書き方ができるようになりそうな予感がある。
追記: 冒頭でチュートリアルに反映されてないって書いたけど、そもそも @published
について書かれてなかった。