音声書き起こし
1. オープニング
Guest
こんにちはこんにちはえ。それでは、今週もUIT INSIDEをやっていきましょう。
Guest
UIT INSIDEは、ユーザーインターフェースと、テクノロジーを愛する開発者のためのポットキャストです。
Guest
最新のウェブ標準や開発、フレームワークの変遷、uyエックに関することまで、
Guest
様々なフロントイの情報をキャッチアップできるポップキャストをお送りしております。
Guest
twitterでのハッシュタグは、シャープuyt、アンダースコアインサイド、エピソードのご意見やご感想、リクエストなどなど
Guest
ぜひツイートしてください。え、それではえ、今回のパーソナリティはえたかだと、
Guest
UITのはたさんをお呼びして、え、今回はお送りしたいと思いますそれではよろしくお願いします
Guest
はい、よろしくお願いいたします
2. Fragment について
Guest
はいで、今回はえ、ビューススタディの第6回目で、ビュースのフラグメントについて、今回は
Guest
取り上げたいと思います。はい、で、デュースのフラグメントについてなんですけれども、ま、これは、あのリアクトにもリアクトフラグメントという
Guest
ものがあるんですけど、もまそれに同等なんですかね。ど、
Guest
そうですね、うん、うん、うん、ちょっと簡単にじゃあ、早速説明さしてもらいますか。
Guest
今回ですねビーススタディのシリーズとして、ちょっと。今日はフラグメントを取り上げようかなと思ってるんですけど、これはビュー3で
Guest
え導入される。え、実際にドム状には病が知らないけれども、ドム要素として存在するようなとものとなります。
Guest
多分、これまでもほぼ同じような機能として、
Guest
ビューテンプレートの中でテンプレートタグっていうのをたまにかましたりすることがあったかなと思うんですけど、あれえみたいなものだと思ってくれたらいいかなと思います。
Guest
そもそもですね、ウェブの標準自体にまリアクトもそうなんですけど、ウェブの標準自体にドキュメント、フラグメントっていう概念があってですね。
Guest
ちょっと小事に言われるも貼っておこうかなと思うんですけど、イメージとしては、ドキュメントオブジェクトっていうのが、まあ、ウインドウには入っていると思うんですけど、あれはあれ自体にはそれが1つのドム要素っていうわけではなくて、その中にして、メル要素があって、みたいな形の
Guest
ただの箱だと思うんですけど、あれを自分で提起できるような。機能となっておりますと
Guest
リアクトの方にですね。すでに。それと、同等の機能として、リアクトとフラグメント、あるいは、タグ名がカっぽのタグですね。
Guest
を、使うことによってですね、実現できるような形で、リアクトの機能として、すでにあってですね。それと、ほぼほぼ同じような機能が。bjsに貼ってくれたっていうような
Guest
イメージでいいかなと思います。
Guest
はい、ありがとうございます。そうですね、デュースのあの、そのテンプレートって、まあ普通要素1つ
Guest
だけだったと思うんですけども。そのや、ドキュメントフラグメントのように、その複数の要素をまあルートに持たせるみたいなイメージ。
Guest
そうですね、うん、そうですね、実際、えま、どういったことができるようになってるかって話で言うとですね。
Guest
そのこれまでと、ビージスのえービーテンプレートにおける、テンプレートタグっていうのがとあると思うんです。
Guest
ですけど、はい、テンプレートタグっていうのが、まあ、1番ルートに書くのはと、みんなよく書くかなと思うんですけど。実はこれはその子供にも書くことができて、もも
Guest
なんでしょう。複数のドムをまとめて、vイしたい時とかに、テンプレートはいはいておくと、実際に描画されないとドム装みたいなのが生まれるっていうのが結構
Guest
書き心地に影響するような形で使えるっていうので、まあ使ってるケースもあったりしたかなと思うんですけど、え、直下に各タグってのは1つしか
Guest
書けなかったし、実際書く時もうまくと複数を置いている。操作してくれなくて、
Guest
で、例えば、なんか、親にヘッディングとコンテンツがあるようなコンポレントを作るのであれば、親をセクションタグで囲むとか。ほんとにただの愛のためのものだったら、1個。親にディブを挟んでから、
Guest
雇用素を2つ置くみたいなことをやっていたかなと思うんですけど、
Guest
それがですね。今回解消されて、コンポーネントのルートであっても、複数の要素を書くことができるようになったっていうところですね。ここえービー3では、フラグメントっていう風にえ、保証しているようです。
Guest
うん、あの、そうテンプレートっていうのが、すでにあったっていうところは、ちょっとあれですね。リュースじゃない人からすると、ちょっと混乱ポイントか。
Guest
ああ、確かに確かにちょっとこれはあれですけど、ちょうど前回のビー3勉強会のやつで、
Guest
テレポートの話だと思うんですけど、実際はポータルトテレポートやっているのがえやっている子とは一緒っていうのと同じでですね。まあ、名前が違うだけで、実質的にリアクトでいうフラグメントっていうもの
Guest
が、bjsのテンプレートタグとして、これまで使えていたんで、ま、その表現の幅がルートでも使えるようになったコンポーネントのえ、ルートでも使えるようになったっていうだけの変更かなと思います。
Guest
はいはい、そうですね、そうですね、うん、
Guest
多分1番嬉しいのは、そのあのルートショックのそのテンプレートには複数要素、そのなんか
Guest
今までだと結構そのて適当にそのディブを1つ用意して、その下に複数用意するっていうこととかはなくなるってのは、単純にその構造が単純化して
Guest
嬉しいそうですね結構行が単純化したりだとか、あと、今とかだと今の仕様だと許可されてますけど、え、dldtddとか、
Guest
あのタグとか使う時っていえ、はい、dはtとdddって、今だと間にディブかましてもいいように、仕様が変わったりしてますけど、元々は並列じゃないといけなかったとか、
Guest
まあ、あいった並列であることを前提としているようなえ、要素ってたまにあるかなと思うんですけど、はいはいはい、例えば、そのddddをまとめた
Guest
質問のアコーディオンみたいなのがあったとして、dtにタイトルがあって、ddにコンテンツ出すみたいなものを作るってなると、これまで結構コンポーネントとして、切り出す時に上に1個自分を置いてみたいなことになりがちだったんですけど、まあ、そういったコンポーネントを作りたいときに、
Guest
結構便利になるかなと思いますね。
Guest
そうなんか、上に置く置くタグに適切なものがない時っていうのは、たまにあるかなと思いますので、そういう時にデブを入れなくてもいいみたいなのがいいところかなと
Guest
もいうん、
Guest
まさにdtddタグはそれにぴったりの
Guest
そうっすね。1番イメージつきやすいのはそこかなと思いますね。
3. Fragment 利用時の注意点
Guest
じゃあ、あの、逆にそのフラグメントが来ることによって、なんか懸念すべき点みたいなのってあったりし。
Guest
ああ、そうですね、それで言うとですね、基本的にフラグメントは複数書いた時に自動的に解釈して
Guest
描画してくれるんで、それ自体は問題ないんですけど。え、ビーチスの場合、結構。親の方から子供のコンポーネントに、例えば、見た目用のクラスとかを
Guest
親のビューテンプレートの中で、子供のコンプラネントを呼び出す時に、クラスに。例えば、なんかイズアクティブみたいなものをつけるみたいな形で、クラスとか。ベット属性を付与することってのが結構あったかなと思うんで、
Guest
1つ目か2つ目どっちがその属性にえ、該当するのか。もちろんわからなくえ、なるので、自動的に付与されないっていうことは、念頭に置くべきかなと
Guest
思います。つまりはですね、親からクラス云々みたいなのを付与している前提でいる場合もあったかなと思うんですけど、フラグメントとして利用する場合ですね。どっちにそれを
Guest
つけてやるのかみたいなのは、vvインドでやってやる必要があるっていうのは、え、気を付けておくべきポイントかなと思います。
Guest
はい、はい、あいかそうですか、スタコンポーネントのなんか名前そうな特に今までときっと気にせず、そのクラスとかつけられたと思うんですけども。まあ、
Guest
そうですね、どっちつけた
Guest
そうですか、わからないんですよ、うん、どっちにつけるみたいなのを判断はできない。もちろんできないというか、場合によって変わるかなと思いますので、そこは明示的に
Guest
バインドしてやるっていう必要が。はいはい、出てくるっていうのが留意点かなと思います。
Guest
あ、あ、なるほど、ありがとうございます。じゃあ、そのビューフラグメントについてま、結構その逆トの
4. 実装された経緯について
Guest
フラグメントっていうのは、結構前に追加されたと思うんですけど、なぜ、この美術のタイミングで、
Guest
やっと一そうになったかっていうところは、まあちょっと気になるところですので、ここはちょっとお伺いしたいなと
Guest
思います。そうですね、じゃあ、ちょっとえーしよ、介しようかなと思います。これまでも、テンプレートっていうところで、そのルート以外であれば、テンプレートタグとして
Guest
使うことによって、え、複数のえーマウント自体ができたはずなのに、なんで今になってると、えーだけこういう風になったんだっていうところはちょっときなえ、気になって
Guest
調べていたんですけど、ビューのですね。三毛の頃はですね。コンポーネント自体のマウンドスロジックっていうのが、
Guest
エレメントに入っているアウターhmlを完全に書き換えるみたいな実装をしていたらしいです。と、
Guest
ちょっとソースコードまで追ってるんではなくて、アップデートするrfcから読んで
Guest
知ったところなんですけど、アウトhmlっていうところで、完全にそのコンポーネントは、マウントする先のドム要素っていうところのを、自体を置き換えるっていう挙動を行っていたみたいです。と
Guest
えということは、その決まっているマウント先の唯一のドム1つのドムに対して、中身をまって置き換えるって形になるので、複数
Guest
書いた場合、もちろんえ、あれの一応染しかえ。書き換えることはできないっていうことえっていう問題があって、えと完全にぜ実装動みたいなところで、これまで複数書けなかった
Guest
ということらしいです。とで、ただですね。ビュー3に入って、ちょっとこっちはコード見つつ
Guest
え見てたんですけど、ロジックが改善されてですね。インラーhmlの依存となっています。なんで、マウントのマウント先の要素の
Guest
雇用素として、全部の結果を連打していくみたいな形になっているみたいでして。これによってですね。そのルート要素でも、フラグメント。実現したえ
Guest
実現ができえ、可能となったえみたいですとでえ、実際行動ってみてもですね。その対象となるところに、チルドレンをひたすら連打してるみたいな
Guest
あのコードになっているんで、まあ、2個雇用が3個雇用がチュードレンをまるっとレンダーしてるっていう
Guest
ところで、これまでのアウターaclでの丸と機械のとは違って、必要な要素をえ、雇用素として設定してるっていうので、
Guest
特に問題なく動作するようになったっていう経緯があるみたいです。
Guest
あ、ありがとうございます。なるほど、そうですね、まあ、確かに結構実装に深く
Guest
入り込んでそうだなっていう予感はしたんですけど、まあ、アウターcmとイタテムの違いっていうのは、まあ、確かに
Guest
すいません。僕もか、あの完全なロジックを理解してるわけではないですけど、まあ、説明を聞いてる感じだとまあ、
Guest
なるほどなというすごい納得感のあるというか、まあ、メジャーバージョンアップでもないと、なかなか手をつけられなさそうなところだよなっていう感じはしますよね。
Guest
そうですよね、うん、まあまあせっかくジュースを使うのであれば、ぜひぜひこう
Guest
複数のコンポイントをいっぱい入れていきたい
Guest
とこですよね。そうですね、まあ、ちょっとまあ、そのフレーマークの制約で無理やりちょっとディブを足してるみたいなのも、やっぱりこれまでも一定以上あったかなと思うので、
Guest
ま。できるだけそんなポンポをデブだらけにしたくないっていうのは、やっぱりみんなあると思うんで、そういうのはうまく対処できていくといいのかなと思いますね。
Guest
じゃあ、
Guest
あ、じゃあ最後にちょっと1ついいはいすか。
5. 今使うときの留意事項
Guest
はい
Guest
はい、じゃあ、ちょっと私の方からちょっと。フラグメントの紹介しといて、そこれ言っておかないとなと思ったのがあるので、ちょっと言いようかなと思
Guest
います。1点注意点がありました。ちょっとこれ1を探してみた感じもそうだったんですけど、bjsで
Guest
今アプリケーション書く場合、みんなあのオフィシャルのイエリントプラグインビルっていうので、ビルテンプレートの例えば、
Guest
vfを書いた時のキー忘れとかも結構色々指摘してくれる
Guest
ルールが入った。あれ、あの、公式のリントルは入れてるかなと思うんですけど、そこにですね。そのビースラッシュ、バリッドテンプレートルートっていうルールがありまして、
Guest
これはその名の通り、その今までのビュー2の使用所をえ、複数のルートビューテンプレートの
Guest
ルートチョッパに置くことができなかったんで、置いてしまってる場合は、これ間違えてますよ。っていう風な警告出してくれるルールとなっています。で、ただですね、ちょっとこれ
Guest
ちがまだビュー3の対応が完了しているわけではないみたいでして。ビュー3のプロジェクトであっても、これが表示されてしまうと言いますか。
Guest
まだビュー3がベータの状態、今、収録時点でベタの状態なんで、ベータ用のルールみたいなのが、
Guest
パブリッシュされてない状態みたいで、ビーツの色によって、バリドテンプレートルートのエラーが出てしまうっていう状態となります。と、
Guest
なんで、もし手元のプロジェクトで、
Guest
ま、これからrcとか出てきたら、だんだんびsのrcを入れてみてもいいんじゃないか。みたいな。プロジェクトも出てくると思うんですけど。もしかしたら、
Guest
そのエラーが引き続き出てるかもしれないので。手元のエリンとrcjsのえ方を編集して、こっちはオフにしてやるっていうのが必要になるかも
Guest
しれません。ま、これ自体は多分今後ビュー3になっていくと、
Guest
リント書を禁止するルールでもないとは思うので、まあ、どこかしらのアップデートで削除されるのか何なされるかなと思うんで。ひまずは
Guest
手でオフにしましてしまっていいかなと思います。まあ、結構えとvsコードのエーションとか入れてたら、普通に。ビュー3の環境で書いてても怒られてしまうんで、
Guest
まあ、その辺はえ、一応オフにするっていうのがえ、はい、今時点だと必要かなと思います。
Guest
ああ、なるほど、そうですね、イスリントの対応がまあ、もうちょっとかかりそ
Guest
そうっすね、まあ、ちょっとオフィシャルのエコシステムの方も、もう完全に追いついてるわけじゃないみたいなんで
Guest
ま。多分ほぼ全員が入れてるであろう。一応イエスリントの方はえ、注意してい
Guest
た方がいいよってのはま、これなんで、普通に不具合とかではなくて、まあ、単純にまだ追いついてないだけっていう風に。
Guest
はい、じゃああれですね。イエスリントのルールを見直して、
Guest
最初に使う時は、不害ではない人だけ把握はいといいかなと思います。
Guest
ありがとうございます
6. クロージング
Guest
というわけでえ、今回はユーススタディのフラグメントについてえ、お送りしました。
Guest
私達UITのメンバーが所属するLINE株式会社では、このようなフロントエンドに関する議論を日々行っております。
Guest
今回のユーススタディのフラグメントの内容についても、毎週行われている社内勉強会で発表される成果でもあります。
Guest
ここのえUIT INSIDEでは、社内社、外問わず、どんどん情報を発信していきたいと思っております。え、また、
Guest
ポットキャストを通じて、第に興味を持っていただけた方は、え、カジュアル面談をえ、現在実施しておりますので、ぜひえページカのリンクよりご連絡ください。
Guest
それでは、また次回のエピソードでお会いしましょう。あなたさん、ありがとうございました、
Guest
ありがとうございました。