リアクティビティー パート2

前章で refcomputed を使った基本的なデータバインディングを学びました。本章では、watch について学びましょう。この章で基本的なリアクティビティシステムをマスターできます!

watch() はリアクティブなデータの変化を監視し、変化があったときに特定の処理を実行することができます。
watchcomputed と同様にリアクティブ値の変化に応じて作用しますが、主に console.logfetch のような副作用をリアクティブに実行するときに使います。

const count = ref(0)

watch(count, (newValue, oldValue) => {
  console.log(`count changed from ${oldValue} to ${newValue}`)
})

プレイグラウンドでは、サーバーで管理している TODO アイテムを表示していますが、表示する ID が変化したときに新しいアイテムを取得するために watch による監視をしています。

watch に関する詳しい説明は ウォッチャーガイド を参照してください。

チャレンジ

今のプレイグラウンドは、TODO アイテムに関するデータを iddata の 2 つのリアクティブ値として管理しています。これらを 1 つの state という ref オブジェクトにまとめてみましょう。

  1. state という変数を作成し、iddataloadingstate にまとめましょう。
  2. エラー箇所にしたがって、id, loading, data と書いてある箇所はそれぞれ state.value.id, state.value.loading, state.value.data に書き換えましょう。
    • template 内では .value を書く必要はありません
  3. watch の第一引数をゲッター関数に変えましょう。
    • state.value.id のままだと数値を渡していることになるため、watch が変化を補足できません。

もし手詰まりになったら、解決策を確認するためのボタンをクリックして、ヒントを得ることができます。

ここまでで Vue のリアクティビティシステムの基礎について学びました。次のステップで、Vue の強力な機能の 1 つとなっている「Composition API」について学びましょう!

リアクティビティー パート1
Vue はデータの変更を監視して、変更された時に更新を自動的にトリガーする 優れたリアクティビティシステム を提供していて、常に最新のデータを UI に反映させることができます。Vue のリアクティビティは、ref、computed、watch があります。
コンポーザブルとは何か ?
コンポーザブル とは、Vue の Composition API を活用して再利用可能な状態やロジックを定義するための機能です。Options API で主流な mixins と類似したコンセプトですが、より柔軟で再利用性の高い機能を提供します。Composition API の詳しい説明は こちら をご参照ください。
Files
Editor
Initializing WebContainer
Mounting files
Installing dependencies
Starting Nuxt server
Waiting for Nuxt to ready
Terminal