plyrs/plyrs.github.io

immutable

Opened this issue · 0 comments

hiz8 commented

参考文献

なぜ昨今のJavaScriptではイミュータブルであるべきと言えるのか歴史的背景を踏まえて言語化する - Qiita

作成中のアプリケーションの Redux で管理するステートへ、イミュータブルを持ち込むか否かを検討している。
それにあたり、改めてその利点を再確認し整理した。

  • フロントエンドでは状態が時間やインタラクションで変化する

    • バックエンドと異なり状態がどこかに存在し、非同期に発生する条件に応じて変化する
    • この状態と描画の整合性を図るのが難しい
      • React のような宣言的な UI へ移行しつつある要因
  • JavaScript はオブジェクトの破壊的な変更による影響が予想しずらい

    • これが予期せぬ描画に繋がる
  • React がイミュータブルを要求してくる

    • 開発チームの指向からか、関数型の**が随所に垣間見れる
    • 状態に副作用を起こして再描画することができない (setState を必ず用いる)