Skip to content

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为核心,基于vueprovide/inject机制实现全局上下文,提供组件库的全局配置,包含以下关键部分:

  • 自动引入:借助unplugin-vue-components插件,原生组件(如n-inputn-button等)可直接在template中使用,无需手动引入;
  • TS支持:使用组件时(如n-inputn-button),TypeScript可提供props自动提示(control+空格触发)。

2. 根节点结构与全局配置

  • 第一层UI Provider及下属的全局提示类provider(loading bar providerdialog providernotification providermessage provider等);
  • 第二层Theme Provider,通过n-element用于让Naive UI的CSS变量(如primary colorsecondary color)在全局生效,配合unocss可通过预设class使用主题样式;
  • 第三层Message provider,通过Naive UI的useLoadingBaruseMessage等hooks,将实例挂载到window,实现全局直接唤起。

基于 MIT 许可发布