recurve-ui v0.1.4-beta.0
🍎 推荐的 IDE 环境
VSCode + Volar (并禁用 Vetur) + TypeScript Vue 插件 (Volar).
⛅ 环境支持
由于 Vue 3 不再支持 IE11,RecurveUI 也不再支持 IE 浏览器
✨ 使用方法
📦 包管理器
👉 我们强烈建议您使用 pnpm 作为您项目的包管理器
🏆 目前我们的大部分基础组件都是基于 Element Plus,使用
recurve-ui前应先确保你的项目已经安装了element-plus
pnpm add element-plus
🎯 按需导入
一、首先你需要安装 recurve-ui
pnpm add recurve-ui @recurve-ui/icons
二、然后安装 Tailwind CSS
pnpm add -D tailwindcss postcss autoprefixer- 使用
npx tailwindcss init -p来生成tailwind.config.js、postcss.config.js文件 - 我们提供了一个符合品牌设计规范的默认文件
tailwind.presets.config.js - 你需要添加
@/styles/tailwind.css文件,然后在你的tailwind.config.js中使用presets: [require('recurve-ui/tailwind.presets.config.js')]来引入默认配置(注:请将content字段调整为你项目所需要的路径) - 在项目的
@/main.ts文件中使用import '@/styles/tailwind.css'来引入Tailwind CSS(建议放在引入其他样式之前)
三、组件样式
recurve-ui样式分为基础变量:_variable.scss和组件样式:element-plus两个部分- 首先在你项目的样式目录(如:
@/styles)下新建一个recurve-ui.scss文件 如果你不需要自定义主题,直接引入
recurve-ui样式文件// styles/recurve-ui.scss @import 'recurve-ui/styles/recurve-ui.scss';如果需要自定义主题,
- 你需要先在
recurve-ui.scss引入@import 'recurve-ui/styles/_variable.scss'; 自定义基础变量,新建一个样式文件(如
@/styles/_variable.scss),然后在recurve-ui.scss里引入你新建的文件// styles/_variable.scss :root { --color-brand-500: #02030A; };自定义组件样式,新建一个样式文件(如
@/styles/element-plus.scss),然后在recurve-ui.scss里引入你新建的文件// styles/element-plus.scss @forward 'recurve-ui/styles/element-plus.scss' with ( $--color-primary: #02030A, );最终你的
recurve-ui.scss文件可能是这样// styles/recurve-ui.scss @import 'recurve-ui/styles/_variable.scss'; // 仅自定义基础变量 @import 'variable'; @import 'recurve-ui/styles/element-plus.scss'; // 仅自定义组件样式 @import './element-plus';
- 你需要先在
四、在 Vite 的配置文件 vite.config.ts 中添加:
export default defineConfig({
// ...
css: {
preprocessorOptions: {
scss: {
additionalData: `@use "@/styles/recurve-ui.scss" as *;`,
},
},
},
})五、🚚 添加 @recurve-ui/plugins 以支持自动导入组件和组件样式文件
pnpm add -D vite-plugin-style-import unplugin-vue-components consola sasspnpm add -D @recurve-ui/pluginsimport Components from 'unplugin-vue-components/vite' import { createStyleImportPlugin } from 'vite-plugin-style-import' import { RecurveUIResolver, RecurveUIStyleResolver } from '@recurve-ui/plugins' export default defineConfig({ // ... plugins: [ // ... Components({ resolvers: [ RecurveUIResolver({ importStyle: 'sass', }), ], }), // 注意:`createStyleImportPlugin` 需要放在 `Components` 后 createStyleImportPlugin({ resolves: [ RecurveUIStyleResolver(), ], }), ], })
六、pnpm dev
📦 全量引入
// main.ts
import { createApp } from 'vue'
import RecurveUI from 'recurve-ui'
import 'recurve-ui/dist/index.css'
import App from './App.vue'
const app = createApp(App)
app.use(RecurveUI)
app.mount('#app')🍊 Volar 支持
破坏性改动
- 目前 types 需要 vue 为
v3.2.47("vue": "^3.2.47") 及以上
- 目前 types 需要 vue 为
如果您使用 Volar,请在
tsconfig.json中通过compilerOptions.types指定全局组件类型。
// tsconfig.json
{
"compilerOptions": {
// ...
"types": ["recurve-ui/global.d.ts"]
}
}- 如果你使用 Pnpm 作为项目的包管理工具,那么你需要在项目的
.npmrc文件中添加public-hoist-pattern[]=@vue/runtime-core来将@vue/runtime-core提升为顶级依赖,然后再重新安装依赖包(必要时可重启下编辑器),使用 pnpm 命令创建的 vite 项目无法在 VS Code 中获得组件类型提示 - 推荐使用:
"typescript": "^4.8.4"和"@vue/tsconfig": "^0.1.3",注意若使用"typescript": "^5.0.0"和"@vue/tsconfig": "^0.4.0"可能会存在组件属性值提示错误的问题。 - 从 TypeScript < 5.0 迁移过来
🔔 注意事项
🔑 提示
一、🎨 自定义命名空间,需要安装 Tailwind CSS,并参考 自定义命名空间来配置,并且需要引入 Element Plus 的样式变量。
- 使用方式:
// styles/element-plus.scss
@forward 'element-plus/theme-chalk/src/mixins/config.scss' with (
$namespace: 'rd'
);
@forward 'element-plus/theme-chalk/src/common/var.scss';<!-- App.vue -->
<template>
<el-config-provider namespace="rd">
<app />
</el-config-provider>
</template>
<script lang="ts" setup>
import { ElConfigProvider } from 'element-plus'
</script>// vite.config.ts
import { defineConfig } from 'vite'
export default defineConfig({
// ...
css: {
preprocessorOptions: {
scss: {
additionalData: `@use "~/styles/recurve-ui/index.scss" as *;`,
},
},
},
// ...
})二、🌍 国际化,需要安装 @recurve-ui/locale,详见:README
🔮 其他问题
Tailwind CSS默认样式冲突?
- 可在项目的
tailwind.config.js中禁用 Preflight,然后改用:Preflight - 可参考 tailwind.css
❓ 问题
如果你遇到任何问题,你可以在 issues 联系我们
📝 更新日志
每个版本的详细更改都记录在发布说明中
🎁 致谢
- Vue: 易学易用,性能出色,适用场景丰富的 Web 前端框架
- Element Plus: 基于 Vue 3,面向设计师和开发者的组件库
- PNPM: 快速的,节省磁盘空间的包管理工具
- Storybook: 一个用于独立构建 UI 组件和页面的前端工具
2 years ago