15 min/d

ぼうずやのにっき

virtual-dom-ssr に cycle-dom の intent selector っぽいものをつくった

2016-02-07bouzuya/virtual-dom-ssr に event listener を追加したことを書く。

virtual-dom-ssrMatt-Esch/virtual-dom と EventEmitter で server-side rendering の検証をするための project 。これは先週に何度か書いている。

今回の目的は、この virtual-dom-ssr の client-side で click などの event を取れるようにすることだ。

実装は cyclejs/cycle-domintent selector に近い。VTree の render と event listener の設定を完全に分離している。例えるなら React にある <button onClick={...}/> のような形ではなく、jQuery$('button').on('click', ...) のような形だ。 event listener を root element に設定し、発生した event の target を Element.matchesSelector で検査することで実現している。

類似の実装は 2016-01-29bouzuya/my-cycle で既に試している。今回は cyclejs/cycle-dom を見ずに必要分だけを実装している。

一応のところは動くのだけど event listener が増えたときの速度やその他の未知の問題などを気にしている。