コンテンツへスキップ

コンフィグプロバイダー

グローバル設定を提供するためにアプリケーションをラップします。
  • すべてのプリミティブがグローバルな読み取り方向を継承できるようにします。
  • ボディロックを設定する際のスクロールボディの動作を変更できます。
  • レイアウトシフトを防ぐためのより多くの制御機能を提供します。

構成

コンポーネントをインポートします。

vue
<script setup lang="ts">
import { ConfigProvider } from 'radix-vue'
</script>

<template>
  <ConfigProvider>
    <slot />
  </ConfigProvider>
</template>

APIリファレンス

コンフィグプロバイダー

右から左への読み取り方向 (RTL) を必要とするローカライズされたアプリを作成する場合は、アプリケーションを`ConfigProvider`コンポーネントでラップして、すべてのプリミティブが`dir`プロップに基づいて動作を調整することを確認する必要があります。

`Alert`、`DropdownMenu`など、レイアウトに適合させるためにコンポーネントの`bodylock`のグローバルな動作を変更して、コンテンツシフトを防止することもできます。

プロップデフォルト
dir
'ltr'
'ltr' | 'rtl'

アプリケーションのグローバルな読み取り方向。これはすべてのプリミティブによって継承されます。

nonce
文字列

アプリケーションのグローバルな`nonce`値。これは関連するプリミティブによって継承されます。

scrollBody
true
boolean | ScrollBodyOption

アプリケーションのグローバルなスクロールボディの動作。これは関連するプリミティブによって継承されます。

useId
(() => string)

ハイドレーションの問題を防ぐための回避策としてグローバルな`useId`インジェクション。

コンフィグプロバイダーを使用します。

グローバル方向を`rtl`に、スクロールボディの動作を`false`に設定します(パディング/マージンは設定しません)。

vue
<script setup lang="ts">
import { ConfigProvider } from 'radix-vue'
</script>

<template>
  <ConfigProvider
    dir="rtl"
    :scroll-body="false"
  >
    <slot />
  </ConfigProvider>
</template>

ハイドレーションの問題 (Vue < 3.5)

Nuxt(バージョン>3.10)プロジェクトで現在のハイドレーションの問題を修正するために、Nuxtによって提供される`useId`を使用する一時的な回避策を提供します。

Headless UI にインスパイアされました

vue
<!-- in Nuxt's app.vue -->
<script setup lang="ts">
import { ConfigProvider } from 'radix-vue'

const useIdFunction = () => useId()
</script>

<template>
  <ConfigProvider :use-id="useIdFunction">

  </ConfigProvider>
</template>