JavaScriptファイル間でプロパティの変化をウォッチする手段
たとえばデータバインディングが気軽に利用できない環境、Reduxなどの状態管理ライブラリの導入ができない環境で、プロパティの変化に応じたリアクティブな処理を行いたい時はObject.defineProperty
を使ってみるのも1つの手です。
例
以下にindex.ts
を用意しました。
ページ読み込み後、任意のタイミングでwindow
オブジェクトのisActive
の値を変更する処理を行います。
この時、./pages/watch.ts
内でwindow.isActive
の値の変化は以下でウォッチできます。
上記例を実行した結果が以下です。
変化したタイミングで任意の処理を行うことができるので、とくにネイティブなJavaScriptにおいてファイルを跨いだプロパティの変化に応じたリアクティブな処理を行いたい場合に活用できそうです。
参考:MDN - Object.defineProperty()
参考:https://qiita.com/yamamo_yamayama/items/0dac5b4a6e5fcc8a3207