LoginSignup
0
0

More than 5 years have passed since last update.

Emberの1.13へのバージョンアップでViewがdeprecatedになった件(select)

Posted at

Ember.SelectView使えなくなっちゃったよ?

Emberの1.13でEmber.Viewがdeprecatedになっていますが、
一番困るのはやはりEmber.SelectViewが使えなくなることではないでしょうか。

公式のガイドには、次の3つのアップグレードパスが提示されています。

  • componentを作る
  • templateに直接selectタグを書く
  • add-onのx-selectを使う

アドオンでもうすでにあるやつを使ったほうが楽だし魅力的なだなーと思ったけど、GitHubを見に行ったら{{x-select}}{{x-option}}ってなってて、直接タグ書くこととの違いが見つけにくく、あと、将来Ember2.0になったら、いつか本体に載るかもね、という感じで書いてあって、だったらそん時にちゃんと対応したほうがよいのではと思い、大した量じゃないし、直接タグを書く方針で対応しました。

結局Component書く

と思って、コツコツ対応していましたが、似たようなコードを何度も書く羽目になって、やっぱりComponentを作ってしまいました。(ソースコードはこちら。)

公式のお手本を参考にしていますが、いままでのEmber.SelectViewに似せる形でvalueを直接指定できるのと、contentがオブジェクトの配列じゃなくてvalue(数値とか文字列とか)の配列でも動くようにしています。

これでselectのところ以外の実装は変えずにアップグレードできるはず。

とここまで書いておいてアドオンのほうをよくよく見たら、Ember.SelectViewと互換性があるBlockless Formでも書けるらしい。(ここ)

ということで、まとめ。

Emberの今後の方向性として、Reactっぽく、入れ子のComponentでViewを作る(将来的にはRouteの受け皿として直接Componentが使えるようになる?)感じでComponent重視です。
ですので、

  • ViewのSelectをあまり多用していない
    • 自分たちのプロジェクトの使い方にjustなComponentを作って将来に備えたほうがよさげ
  • たくさん使っている
    • 一先ずアドオンを導入してEmberのバージョンアップをやり過ごしつつ、
    • アドオンはまさにEmberのComponent重視の戦略に乗っかっていて、x-selectx-optionに分かれているので、徐々にそちらに移行するというのがよさそうかなと思います。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0