provide 子孫へのデータ提供(Options API)

最終更新:2026-10-22

provide 子孫へのデータ提供(Options API)

provide オプションはデータを下方向へ提供します。静的な値にはオブジェクト、this から派生する値には関数を使います。

グループオプション: 合成とその他
種類オプション
スコープコンポーネント内
Vue バージョン3.0+
SSR 対応対応

📝 構文

export default {
  data() { return { theme: "dark" } },
  provide() {
    return { theme: this.theme }   // note: a snapshot
  }
}

⚙️ 引数

valueオブジェクト、またはオブジェクトを返す関数(関数形式では this を使えます)

戻り値:戻り値なし

▶ 例

以下のコードを編集して結果を確認しましょう:

出力:

The deep child shows 'Injected theme: dark'.

💡 ポイント

⚠️ 注意 素のオブジェクトリテラルはスナップショットです。リアクティブにするには ref を提供してください。
💡 ヒント Composition API と鍵名を揃えておくと移行が容易です。
ℹ️ 補足 オプション形式では素のオブジェクトの鍵を使います。
関連ケースは近日公開予定。

📚 関連チュートリアル

❓ よくある質問

Q 提供した data の値が更新されないのはなぜですか?
A 初期化時にスナップショットが取られるためです。代わりにリアクティブなオブジェクトを提供してください。
Q Composition API と混在できますか?
A できます。仕組みは共通で、鍵名によって対応付けられます。
Q 関数形式はいつ使いますか?
A 値が this から派生するときです。
Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%