在 Nuxt 專案中設定 PrimeVue。
PrimeVue 可在 npm 註冊表上下載,以及官方的 @primevue/nuxt-module。
# Using npm
npm install primevue @primevue/themes
npm install --save-dev @primevue/nuxt-module
# Using yarn
yarn add primevue @primevue/themes
yarn add --dev @primevue/nuxt-module
# Using pnpm
pnpm add primevue @primevue/themes
pnpm add -D @primevue/nuxt-module
在 nuxt.config 檔案中,將 @primevue/nuxt-module 新增至模組區段,並定義 primevue 物件以設定模組。
export default defineNuxtConfig({
modules: [
'@primevue/nuxt-module'
],
primevue: {
/* Configuration */
}
})
設定模組以使用像 Aura 這樣的主題。
import Aura from '@primevue/themes/aura';
export default defineNuxtConfig({
modules: [
'@primevue/nuxt-module'
],
primevue: {
options: {
theme: {
preset: Aura
}
}
}
})
nuxt-primevue 模組會自動註冊元件,並支援 Tree-shaking,因此您可以立即開始使用它們。
<Button label="Verify" />
模組預設會安裝 PrimeVue 外掛程式。如果您偏好手動設定 PrimeVue,例如使用 Nuxt 外掛程式,請停用此選項。
primevue: {
usePrimeVue: true | false
}
PrimeVue 的主要設定,詳細資訊請參閱設定文件。
import Aura from '@primevue/themes/aura';
export default defineNuxtConfig({
modules: [
'@primevue/nuxt-module'
],
primevue: {
options: {
ripple: true,
inputVariant: 'filled',
theme: {
preset: Aura,
options: {
prefix: 'p',
darkModeSelector: 'system',
cssLayer: false
}
}
}
}
})
自動匯入功能會自動註冊元件,並支援 Tree-shaking。預設為 true,停用時,請使用 components 和 directives 的 include/exclude 選項進行手動註冊。
primevue: {
autoImport: true|false
}
在 components 和 directives 中使用 prefix 來為註冊新增前綴。
primevue: {
autoImport: true|false,
components: {
prefix: 'org'
},
directives: {
prefix: 'org'
}
}
設定全域 pass through 匯入路徑。
primevue: {
importPT: { from: '@/passthrough/mycustompt.js' }
}
mycustompt.js 檔案定義設定並匯出它。
const MyCustomPT = {
...
button: {
root: 'my-button',
...
},
...
}
export default MyCustomPT;
設定樣式模式中主題自訂的 theme 設定路徑。
primevue: {
importTheme: { from: '@/themes/mytheme.js' },
}
mytheme.js 檔案包含主題設定。
import { definePreset } from '@primevue/themes';
import Aura from '@primevue/themes/aura';
const MyPreset = definePreset(Aura, {
semantic: {
primary: {
50: '{indigo.50}',
100: '{indigo.100}',
200: '{indigo.200}',
300: '{indigo.300}',
400: '{indigo.400}',
500: '{indigo.500}',
600: '{indigo.600}',
700: '{indigo.700}',
800: '{indigo.800}',
900: '{indigo.900}',
950: '{indigo.950}'
}
}
});
export default {
preset: MyPreset,
options: {
darkModeSelector: '.p-dark'
}
};
當 autoImport 停用時,請使用 include 和 exclude 進行手動註冊。
要匯入和註冊的元件會使用字串陣列的 include 選項定義。當值被忽略或使用 * 別名設定時,會註冊所有元件。
primevue: {
components: {
include: ['Button', 'DataTable']
}
}
如果匯入所有元件,仍然可以使用 exclude 選項排除特定元件。
primevue: {
components: {
include: '*',
exclude: ['Galleria', 'Carousel']
}
}
預設情況下,為了相容性原因,會排除 Chart 和 Editor 元件。若要包含它們,只需將 exclude 選項設定為空清單即可。
primevue: {
components: {
exclude: []
}
}
使用 prefix 選項為已註冊的元件名稱加上前綴。
primevue: {
components: {
prefix: 'Prime'
include: ['Button', 'DataTable'] /* Used as <PrimeButton /> and <PrimeDataTable /> */
}
}
元件註冊可以透過實作 name 函式進一步自訂,該函式會取得一個代表匯入中繼資料的物件。name 是元件的標籤,as 是預設的匯出名稱,而 from 是匯入路徑。
primevue: {
components: {
name: ({ name, as, from }) => {
return name === 'Button' ? `My${name}` : name;
},
include: ['Button', 'DataTable'] /* Used as <MyButton /> and <DataTable /> */
}
}
當 autoImport 停用時,請使用 include 和 exclude 進行手動註冊。
要匯入和註冊的指令名稱會使用 include 屬性提供。當值被忽略或使用 * 別名設定時,會註冊所有指令。
primevue: {
directives: {
include: ['Ripple', 'Tooltip']
}
}
與元件類似,可以排除某些指令,並且可以自訂名稱註冊。
primevue: {
directives: {
include: '*',
exclude: ['Ripple']
}
}
primevue: {
directives: {
prefix: 'p'
include: ['Ripple', 'Tooltip'] /* Used as v-pripple and v-ptooltip */
}
}
決定要使用的 composable,當預設值被忽略或設定為 * 時,會匯入所有 composable。
primevue: {
composables: {
include: ['useStyle']
}
}
在 PrimeVue 範例儲存庫中提供了具有不同選項的 基於 Nuxt 的範例。
歡迎來到 Prime UI 生態系統!一旦您啟動並執行 PrimeVue,我們建議您探索以下資源,以更深入了解該函式庫。