brand logo

ドキュメント

updateAppConfig

実行時にアプリ設定を更新します。

app.config をディープアサインメントを使用して更新します。既存の(ネストされた)プロパティは保持されます。

使用方法

const appConfig = useAppConfig() // { foo: 'bar' }

const newAppConfig = { foo: 'baz' }

updateAppConfig(newAppConfig)

console.log(appConfig) // { foo: 'baz' }
こちらも参照 guide > directory-structure > app-config

tips

このセクションは公式ドキュメントの翻訳ではなく、本サイト独自の補足記事です。

updateAppConfig の補足解説

Nuxt でアプリケーションの設定を動的に変更したい場面は意外と多くあります。updateAppConfig は、実行時に app.config を安全に更新できる関数で、既存の設定を壊さずに新しい値を反映できるのが大きなメリットです。

本記事では、updateAppConfig の基本的な使い方だけでなく、どんな課題を解決できるのか、実務での具体的なユースケース、そして使う際の注意点まで丁寧に解説します。Nuxt を使った開発で設定の動的変更を検討している方はぜひ参考にしてください。


まず結論:updateAppConfig のポイント

  • 実行時に app.config の値をディープマージ(ディープアサイン)で更新できる
  • 既存のネストされた設定を壊さずに部分的な変更が可能
  • useAppConfig() で取得したリアクティブな設定オブジェクトは即座に更新内容を反映
  • 主に動的に変わる設定(テーマ切替、ユーザー設定、APIエンドポイントの切替など)に有効
  • SSR と CSR 両方の環境で動作するが、Hydration のタイミングに注意が必要

いつ使うべきか? 使わない方がよいケースは?

使うべきケース

  • ユーザー操作に応じて設定を切り替えたいとき
    例:ユーザーがテーマカラーや言語設定を変更した際に即座に反映したい場合。

  • APIのエンドポイントや認証トークンなど、実行時に変わる値を管理したいとき
    ビルド時に決まらない値を動的に差し替える用途。

  • プラグインやモジュールで設定を拡張・上書きしたいとき
    既存の設定を壊さずに追加・更新できるため安全。

使わない方がよいケース

  • ビルド時に確定する設定を動的に変更したい場合
    例えば、環境変数や静的な設定はビルド時に決めるべきで、実行時に変更すると不整合が起きる可能性があります。

  • 頻繁に大量の設定を更新し続けるケース
    パフォーマンスに影響が出ることがあるため、必要最低限の更新に留めるべきです。


実務でよくあるユースケースとサンプルコード

1. ユーザーのテーマ切替をリアルタイムに反映

const appConfig = useAppConfig()

function switchTheme(newTheme) {
  updateAppConfig({
    ui: {
      theme: newTheme
    }
  })
}

console.log(appConfig.ui.theme) // 'light' → 'dark' などに変わる

ユーザーがボタンを押すだけでテーマ設定を更新し、UIコンポーネントが即座に反応します。


2. APIエンドポイントの動的切替

const appConfig = useAppConfig()

function setApiBaseUrl(url) {
  updateAppConfig({
    api: {
      baseUrl: url
    }
  })
}

// 開発環境と本番環境で切り替えたい場合などに便利

環境やユーザーの状態に応じてAPIのベースURLを切り替えられます。


3. 多言語対応で言語設定を動的に変更

const appConfig = useAppConfig()

function changeLocale(locale) {
  updateAppConfig({
    i18n: {
      locale
    }
  })
}

console.log(appConfig.i18n.locale) // 'en' → 'ja' などに変わる

言語切替ボタンで即座に言語設定を更新し、画面表示を切り替えられます。


よくある落とし穴・注意点

SSR と Hydration のタイミング

updateAppConfig はクライアントサイドで実行されることが多いため、サーバーサイドレンダリング(SSR)時の初期値とクライアントでの更新値が異なると、Hydration エラーが発生する可能性があります。
対策としては、初期値をサーバー側で正しく設定し、クライアントでの更新はユーザー操作など明確なトリガーに限定することが望ましいです。

パフォーマンスへの影響

頻繁に大量の設定を更新すると、リアクティブな依存関係が多い場合に再レンダリングが多発しパフォーマンス低下を招きます。
更新は必要最小限に留め、可能なら部分的に更新するようにしましょう。

ネストされたオブジェクトのマージ挙動

updateAppConfig はディープアサインでマージしますが、配列のマージは上書きになるため注意が必要です。
配列を部分的に更新したい場合は、配列全体を新しいものに置き換える形で更新してください。


まとめ

updateAppConfig は Nuxt アプリケーションの設定を実行時に安全かつ柔軟に更新できる強力な機能です。
ユーザーの操作に応じたテーマ変更や言語切替、APIエンドポイントの動的切替など、実務での活用シーンは多岐にわたります。
ただし、SSRとの整合性やパフォーマンス面の注意も必要なので、適切なタイミングと範囲で使うことが重要です。

Nuxt のリアクティブな設定管理をより効果的に行うために、ぜひ updateAppConfig を理解し活用してください。