音声書き起こし
1. オープニング
Guest
こんにちは
Guest
こんにちは
Guest
今週もUIT INSIDEを始めたいと思います。UIT INSIDEは、ユーザーインターフェースと、テクノロジーを愛する開発者のためのポントキャストです。
Guest
最新のweb標準の動向や開発、フレームワークの変遷、またまたuriやuxに関することまで
Guest
毎週フロントエンドの情報を発信していくことを目的としております。ハッシュタグはUIT、え、アンダースコアインサイド。
Guest
ご意見やご感想はいつでもお待ちしております。
Guest
さて、今回はですねえ、私え、あなたにおホストにですね。ゲストに直樹さんを招待いたしまして、ビースリータリーのシリーズのえ、ディレクティブ編について、え、お話をお聞きしようかなと思います。
Guest
えなおきさんよろしくお願いいたします
Guest
はい、よろしくお願いしますと、私はUITのフロントエンド
2. ゲスト紹介
Guest
の5チームでロントエンド開発をしていまして、主にjavascriptと、
Guest
あと、プロジェクトによっては、シースまマーカップの両方担当しています。でも
Guest
なみのプロジェクトとしては、LINEウレットなどのま、フロントエンドの開発を担当していますよろしくお願いします。
Guest
はい、よろしくお願いいたします。
3. About Vue 3 Study
Guest
じゃあ、それではですね、ちょっとディレクティブの変更にえーついて移っていく前に、簡単にビーススタディについておさえします。ビルススタディはえ、uyt内で行われているきるビュー3に向けてですね。
Guest
新たな機能だとか、ブレーキング、チェンジスなどをえまとめて、え、お互いに学んでいくかとなります。
Guest
基本的に1人1テーマずつ持ち寄って、rfcの内容だとかえ、実装ベースへの変更おっていくかとなっております。
Guest
これまでにですね、外に出している分でも、6回えほどやっておりまして。まあ、社内ではもっと色々共有しているんですけど、
Guest
以前もアテンサイトで何度かご紹介させていただいておりますので。え、推し興味のある方は、
Guest
ショーノートにあるリンクから。過去のエピソードに飛んでいただければと思います。
Guest
今回はですね、その中で7回目として、リレクティブ編をえいなおきさんにえご紹介いただこうと思っております。
4. Directive の変更について
Guest
それではですね、早速えいのきさんに、ディレクティブの変更について紹介だいてもよろしいでしょうか。
Guest
はい、まディレクティブについて。そうですね、担当したんですけど、コピ2つ変更が
Guest
あります。はい
Guest
で1つ目がディレクティブ、オーギメンツの中で変数を使えるようになったっていうところと、あとも2つ目が。カスタムディレクティブAPIがリデザインされたというものです。
Guest
はいはい
Guest
で、まず1つ目のディレクティブオーグメンツの中で変数を使えるようにしたっていうま点なんですけど、はい、ざ
Guest
くり言います。と、はい、このvバインド。コロンって括弧フって書くと、フの部分が
Guest
hっていうへん。なんか、へんキーが入るようになったんですけど、そのキメに。変数を指定できるようになったっていうものです。はいはいはいで対応しているディレクティブが、vvインド
Guest
とvオンブスロット。ちょっと微妙に名前が変わったやつですねでも、変数を使えるようになります。
Guest
はいていうものですね、で、ショートハンドもま一旦整理すると、v。バインドはcronvoはアットマーク
Guest
ブスロットはで、シャープも使えるので。まあシャープか、大かこ
Guest
変数名、大角閉じて書くと、あの変数がショートハントでも使えるようになるようです。はい
Guest
ということは、これまでイベントとかのところがオンクリックみたいな形で書くしかなかったところがまそのものに応じた形に、常に変数の展開がに対応したっていう
Guest
感じ
Guest
ですかね。そうです、そうです、そうですね、ブイバインドとか結構便利
Guest
そうっすね、ブバインドが1番よく使いそうな感じはしますね
Guest
あとはあれですかねvオンとかで、クリックとあのタッチのスタートとかをま、デバイスによって切り替えたいとか。
Guest
確かに普通にありますね。
Guest
きそうかなとか思います。あれ、ちょっと便利にテンプレート、デブイーフで切り替えて、それぞれあの点数の中身に応じてとかしないといけなかったのか、
Guest
展開できるようになるってのは結構便利。そうっすね
Guest
ちなみにこれは以前でもそのvバインドとか、voでも
Guest
あれですね。オブジェクトを指定すると、確か動的に定義できたはずなんですよね。
Guest
あ、そうなんですね、
Guest
そうですで、これがその今回のモチベーションの部分なんですけど、はい、
Guest
ルイバインドイコール。まだ、ダブルコーテーションで、オブジェクト
Guest
で、オブジェクトの中に。キー名とバリューを書いてあげると、一応その
Guest
動的に金名を指定することが今までもできました。はい、で、ここで以前できたのと、新しいそのAPIの違い
Guest
ていうのは、ま、その見やすさみたいなところもあったりはするんですけど、も。はい、多分、大きなところだと、効率の悪いコードが生成されてしまっていたそうで。はい
Guest
はいなので、え、あのv3と同じようなことがしたいのであれば、まあ、パフォーマンスのことを考えたら、新しいAPIを使った方がいいのかなとは
Guest
おまえま。これまでも一応記述はできたけれども、もう少しシンプルにかけて、かつ効率のいいコードが生成できるようになるっていうのが、今回の特徴っていうところですかね。
Guest
はい、
Guest
私全然このvバインドだとか、voに直で指定すると定義できるのを知らなかったんで、これまでもできたんだっていうのがちょっと驚きかつ。
Guest
まあ、でも、今の方がこのビュー3でできるようになるものの方が素直で良さそうですね。
Guest
そうですね、なんか、前もできたっちゃできてたみたいなんですけど、なんか、ドキュメントにそれほどしっかり書いてなかったみたいで。なるほど、なるほど、なんかその辺りも結構こうトリッキーというか、知られてない手法って紹介されてました。
Guest
はい、
Guest
ああでもいいですね。こういう風にまより書きやすくなるってのは
Guest
良さそう。はい、ありがとうございます。はい、
Guest
これはまあほんとにディレクティブオギメンツに変数を使えるようになったみたいな話なんですけど、
Guest
まあ、もう1個目に関しては。カスタムディレクティブAPIが、リデザインされました。でま、リデザイン
Guest
て言ってるんですけど、主には
Guest
そのライフサイクルメソッドがまリネームされたり、ま削除されたり、なんかタイミングを変えたみたいな。はいはいはい、話でもうほんとに表を書いたぽんて終わっちゃうんですけど、
Guest
そもそもこれは。コンポーネントのとライフサイクルの名前とか。使用にすごい寄せたかったみたいで、
Guest
あ、はいはいはいはい
Guest
で既存のフックって呼ばれる。ライフサイクルメソッドをリネームしたり、タイムグ調でしたっていう話ですね。
Guest
で、例えば、バインドっていう名前のフェンス名だったんですけど、それが、ビフォアマウントっていう名前にデニムされたりです。とか、インサーペットっていう名前が、マウンテット
Guest
になったり。あと、アップデートっていうものがあったんですけど、ま、それが微妙に名前が変わって、アップデートみたいになったり、はい
Guest
ていうので、ちょっと新しいその修正されたバージョン見ると、結構こう馴染み深い。メソット名に
Guest
が多いのかなっていう感じになってお
Guest
そうっすね。結構アップデートとかって言われても、いつだよってなったりします。ビフォアマウンドとかになってくれると、結構コンポネントのこの段階で呼ばれるんだなってのが
Guest
イメージしやすそうで、結構わかりやすくなってる感はありますね。
Guest
はい、そうですね、
Guest
で、まあ、あと小話みたいなところなんですけど、これもともとその調査する時に、ビ3のrfcのドキュメントを見ながら
Guest
調べてたんですけど、そのさっき、ディレクティブオーゲメンツの中で、変数を使えるようにしたっていう話が
Guest
をしたじゃないですか。はい、でなので、このカスタムディレクティブAPIを使って、カスタムディレクティブを実装するときにも、その
Guest
デレクティビオビメンズが変数で来る。はいことが想定されるようになるので、まあ、ちょっとその辺も気を付けて、実装しろよみたいなことがちょ、
Guest
はい、今までは気にしなくてよかった。まあ、一応オブジェクトでやってくるので、まあ、ちょっとそのオブジェクトやってきた時に、ちょっとカスタムデレクティブ
Guest
がどう動くかみたいな。ちょっと実装したことないんで、わかんないんですけど、はい、まあ、そのあ、今までよりもそのそういうユースケースが増えるっていうところでま。ちょっと
Guest
ちょっとああ、そうかなと思いま
Guest
はい思いました。
Guest
いうような感じです。
Guest
確かにま、大体その動的というよりは、性的に普通に記述されてるものだと思い込んでるところがま、こんな形で気軽に使えるってのはあると思う。
Guest
使われるケースも増えそうですしま、結構ディレクティブとかって、1回実装して定義すると、影響範囲とか利用されるところも多いものな気はするんで、
Guest
結構気を付けないとけなさそうっすね。うん、うん、うん、あ、ありがとうございます。
Guest
あと、ルートコンポーネントが複数取れるようになって、ああ、フラグメントですね、
Guest
が、使えるようになったじゃないですか、なので、この辺もちょっとカスカム、ディレクティブ使う時に気を付けてください。みたいなのが、
Guest
なんか、ココンポーネントに
Guest
カスタムディレクティブを使う時に、ココンポーネントがマルチプルルートをなんか違う。なんて言うんですか。フラグメントを使った
Guest
ルートコンポーネトが2つあるコンポーネントだと、なんかどっちにバイントするんだみたいな。そういうのもなんか
Guest
はなんか普通にv。バインドドル、アトリビュートですね。それを使ってくださいっていう話もあったりしましたね、なので、ちょっとなんか、
Guest
その他のそのrfcでその増えた機能はいにちょっと影響受けてる部分とかも
Guest
あったりして、ちょこちょこあったりして、結構まあちょっと面白いなって思い。
Guest
結構デレクティブ自体はシンプルな変更では、ある一方で、フラグメントとかで、まあ、ここもポネて呼び出す時に、複数
Guest
ルートノードがある場合にま、これまでは1つ前提で行けたのがそうではなくなるとか。結構影響が他の
Guest
rfcの影響を受けているところがあるのは、面白いところですね。
Guest
この辺のそのなんか、抜け漏れ抜け漏れというんですかね。
Guest
なんか、新しいのが増えたから、別のrfcの機能でこういうとこ影響しそうみたいなカバーできる。その体制体制というか、コミュニティーの
Guest
改正なんでしょうかね。なんか、その辺りがすごくいいなってそうっすね、他のライブラリもそういうことか、多分されてるんだと思うんですけど、
Guest
結構親切というか。デレクティブ開発者は、デルクティブのドキュメントを見たら、何をアップデートしたらいいのかがわかるようにはいなってるっていうところはいいですね。
Guest
ただ、そういうのはほんとにビジコミュニティの良さが現れてる感じではありそうですね。
Guest
そんなとこですかね、
Guest
今ですねえ、言及されたえと、フラグメントによる影響などはですね。以前のitサイドでもえ、フラグメントという形でご紹介とかさせていただいてるので、え、もしよければ、
Guest
相互の関係とかね。アップデートするために、これを聞いてる方たよければえ。他のエピソードと合わせて、え、おき
Guest
聞いただければと思います。まあ、結構デレクティブは他との相互に影響を及ぼすような変更でもあるかなと思いますので、その辺を見てもしえ、現場で
Guest
デクティブをえ使っていることがあればね。注意いただけるといいんじゃないかなと思います。
5. 作る側からみる Directive
Guest
じゃ、ちょっと今ここでですね。結構
Guest
ディレクティブによる変更と結構、今回デレクティブ作る側っていうのがえ、使われるケースが綱領事項が増えて、多分アップデートしないといけないものとかが
Guest
出てきたかなと思うんですけど。実際、カスタムタムデクティブとかって、結構イナさんとかって、現場で使うこととかあったりしますかね。
Guest
ですね、はい、1としたのは1回だけあって、
Guest
で、いつも使ってるやつが。ライブありなんですけど、そういえばもう1個ありますね。定番のやつがで、
Guest
実装したやつより、ちょっと先にちょっと自分でいつも使ってるライブありなんですけど、あのオブサーバブルなAPI。インターセクションオブサーバー
Guest
で出現。
Guest
あした時に
Guest
に、いつもハッキングのイベントを送るってあるあるだとのややるじゃないですか。また、分やるあるあるだと、
Guest
それをはい、それをするためのデレクティブのライブラリがあるんですよ。理由だと、なんかビューザーはい、ブビジビリティ
Guest
はい
Guest
はい、そうです。そうです、
Guest
これをいつも使っていて、
Guest
これは今担当してるプロジェクトほぼ全てに入ってますね。そう表示されたら、ああ、イベントを送るって
Guest
いいですね。こういうのがこういうのは、ゲティブになってると、確かに結構便利そうな気がしますね。
Guest
で、あとはこれにちなんで、今はちょっと別のこ。普通にコンポーネントを実装してやっちゃったんで、使ってないんですけど、最初にちょっと
Guest
LINEクーポンを最初あ、画像表示に
Guest
普通に今あの入った時は普通にイメージタグで表示してたんですよね。で、LINEクーポンって、トップページ
Guest
をま見ていただくとわかるかなと思うんですけど、100件以上のクーポンがリストでざって出るんですよ。はい
Guest
で、そこを特になんかく。まあ、工夫をしてないというか、なんか
Guest
まい、一見。そのLINEクーポンのトップページをの画像を表示するのに、ただのイメージタグを使っていたんですけど、やっぱりちょっとパフォーマンスというか、1番上のファーストビーの画像を1番最初に出したかったので、
Guest
ターセクション、オブサーバーAPIを使って、まあ、普通に画面ファーストビルを優先的に画像を読み込むみたいな画像遅延、読み込みみたいな
Guest
処理を。はい、あ、作った時に、それをカスタムディレクティブで作ったんですよね。
Guest
既存のイメージタグに使うように、
Guest
そうそういうカスタムディレクティブを作りました。
Guest
うん、うん、うんうん、結構影響範囲も大きいし、簡単につけられる方がいいかな。
Guest
で、まあ、新しく自分で01でやるやつは、そのイメージ。普通にコンポーネントを作って、そこでま似たようなことをしてるんですけど、
Guest
それが初めてカスタムディレクティブを使った時じゃないかな。とい、
Guest
そういったドムイベントとか、結構ちょっと実装がめんどくさいけれども、1回実装したら、汎用的にコンポネート問わず、使えるようなものは
Guest
外に行って見せると、
Guest
あと、そのそのイメージコンポーネントがにしなかった理由のもう1つが、背景に画像を差し込んでたんですよね。
Guest
なので、はいはい、スタイルで指定してたんですけど、そこを
Guest
えはいとカスタムディレクティブにして、あ、表示領域に近づいてきたら、バックグラウンドの値を書き換えるみたいな。
Guest
はい、そういう処理をしたかったので、そのカビレクティブにしたんです。
Guest
はい、なるほど、なるほど、はいはい、
Guest
普通にsrcとかではなくて、あ、そうでグラウンドの。はい、
Guest
これはまあ便利便利でしたね
Guest
確かに結構便利そうな気がしますね。
Guest
なかなかデレクティブって、その作る時にま予想しない、使われ方とかするケースもやっぱり出てくるんで、
Guest
ま。デレクティブで解決するかどうかって悩むところかなと思うんですけど、確かにそういった結構かなり汎用性の高いものだと、
Guest
デレクティブ同してやると良さそうすね。など、ちょっとこれ、私がたん単純に気になってたみ。どうやってデレクティブつか
Guest
カスタムデクティブ使ってるんだろうって話だったんで、ちょっとただの興味本位の質問となってしまって、申し訳ないですけど、ありがとうございます。
Guest
ですね、ま、ただ、そういうのももしかしたらあれですね。ルートのノード複数持つ場合とかは、そういったケースだとで出てきそうですし、やっぱり
Guest
。その辺りの内容とかは今後
Guest
出てくるかもしれないですよね。ま、特にライブラリカ車者さんの方が普段多いのかなって印象はありますけど、そう思います。そうですよね、うん、うん、
Guest
もうどうするんでしょうね。そのインターセクションオブザーバー使って、検知した時とかに、もし1回だけ実行されてほしい。シチュエーションだと思うんですけど、その場合って、多分見えた時に、
Guest
なんかふふたつ以上ルートノードある時って、2回イベント発火してしまいそうで、かなり結構難しいところでは
Guest
ありそうっすよね。
Guest
なんか、元々その実装した時もまあった問題ではあったんですけど、結局そのspaなので。
Guest
最初はそのはい。アンディファインドで、画像がはい、画像のurlが入ってくるんですよね。
Guest
そのカスタムディレクティブのバリ。はいはいはい、でも、あの途中でそのAPI呼び出して、戻ってきた時に、アンディファインドだったurlが、htmlじゃなかったらすいません。urlに
Guest
なるので、なんかそこで変更検知してみたいなのは、
Guest
あ、はいはい、なんか
Guest
ややこしくなりそうな感じはしますけど、
Guest
やっていかないとなって、はい、やってみて
Guest
鍛えるなんか鍛えるか
Guest
って感じですかね。うん
Guest
はいはいはいのさんありがとうございました。
6. クロージング
Guest
というわけでえ、今回はですね。ビーススタディディレクティブをテーマにえなおきさんとともにえ、話していきました。
Guest
ラインのフロントエンド開発組織UITでは、このようなフロントエンドに関する議論や、キャッチアップを日々の行っております。
Guest
今回のビーススタディやえ、以前に開催したえ、ゴールデンウィークの自由研究企画など。
Guest
社内のですね。え、キャッチアップ企画から始まったコンテンツも用サイトには多くございます。
Guest
こういったものも、今後も発信していければと思っております。
Guest
またですねえ、このポッドキャストを通じてですね。ラインのフロントエンドエンジアや開発組織え、技術、キャッチアップの様子などに興味を持っていただいた方は、
Guest
えぜひぜひえ勝ちは面談を受け付けております。
Guest
もしですね、簡単に話してみたいとか、えとま、こういったいった技術のところ聞いてみたいとかあればですねえ、シート
Guest
家にですね。求人へのインクをえ、設定しておりますので。そこからですね。えごアクセスいただいて、お気軽にご連絡いただければと思います。
Guest
今とかだとですねえ、ズムとかで軽く話しましょうとかも全然受け付けておりますので、え、まずはお気軽にご連絡いただければと思います。
Guest
え、そんなところでえ、今回はですねビースディレクティブをテーマにですね。
Guest
いなおきさんとともに話していきました。えいなおきさんありがとうございました
Guest
はい、ありがとうございました。