マトリョーシカ的日常

ワクワクばらまく明日のブログ。

世界を描画するタイミングとReact

 突然あられのようなものが降ってきて、私は次男をおぶって公園から退散した。彼はほおを赤くしながらもゲラゲラ笑っていた。幸い雨にはならなかったため、外に干していたカーペットは無傷で回収できた。あられなんて何年ぶりだろう。昔の記憶にはなにも残っていない。

 昨日は結婚記念日だった。ケーキを食べるということになっている。クリスマスや誕生日と離れており、つまりは生クリームを食べる口実のため発生したイベントである。長男とちかくの店にいった。最近はどれも値段が高い、が記念日なので問題はない。四つ買って帰り、皆で食べた。

 結婚したのはたしか十二年前だった。遠いところまで来たものだ。当時はなにも考えないまま結婚してしまった気もするが、それでよかった気もする。すべてのことが楽しい、毎日が常に幸せ、というわけではない。悪いことも苦しいことも悲しいこともあった。ただ、細かいことはあまり覚えておらず、全体的に幸せではある。それでいいと思う。

 フィヨルドブートキャンプは引き続きチーム開発をしている。Vueで実装していた機能をReactに変更するというIssueに取り組む。異なる言語でまったく同じ所作というのは少ないのかもしれないが、それでも近しいことはできる。

 ページのブックマーク機能をVueからReactにする。ユーザーは日報やドキュメントページをひとつのボタンを使ってブックマークの付与/解除ができる。ページを描画の前にブックマークの有無を確認するAPIを叩き、それに応じて「ブックマークしてるかどうか」という情報を得る。ONならブックマーク済である。

 「ブックマークしてるかどうか」という所作はReactではstateという概念を使う。可動部分のような、トグルスイッチのようなものだ。しかしstateを変更すると、そのタイミングでまたページが描画されてしまう。APIを叩く→state変更→ページ再描画→APIを叩く... と無限ループしてしまう。

 それを防ぐためにuseEffectというものを使う。

 そうしてうまくいった。

 まだまだチーム開発は長引きそうだ。自作サービスを並行してやっていきたい。

UnsplashMarek Piwnicki