naive-ui
一、UI库的选择
项目早期使用Element Plus,后因vue 作者尤雨溪(Evan You)推荐,切换为naive-ui。选择原因是naive-ui的设计理念前卫,符合现代组件库设计,相比Element Plus更贴合项目需求。
一、UI库的选择
项目早期使用Element Plus,后因vue 作者尤雨溪(Evan You)推荐,切换为naive-ui。选择原因是naive-ui的设计理念前卫,符合现代组件库设计,相比Element Plus更贴合项目需求。
二、Naive UI的使用细节
项目根节点(src/App
下)以UI Provider
为核心,基于vue的provide/inject
机制实现全局上下文,提供组件库的全局配置,包含以下关键部分:
- 自动引入:借助unplugin-vue-components插件,原生组件(如
n-input
、n-button
等)可直接在template中使用,无需手动引入; - TS支持:使用组件时(如
n-input
、n-button
),TypeScript可提供props自动提示(control+空格触发)。
2. 根节点结构与全局配置
- 第一层:
UI Provider
及下属的全局提示类provider(loading bar provider
、dialog provider
、notification provider
、message provider
等); - 第二层:
Theme Provider
,通过n-element用于让Naive UI的CSS变量(如primary color
、secondary color
)在全局生效,配合unocss可通过预设class使用主题样式; - 第三层:
Message provider
,通过Naive UI的useLoadingBar
、useMessage
等hooks,将实例挂载到window,实现全局直接唤起。