加载中...

vue3 项目引入element plus 组件库 以及修改主题颜色

vue3 项目引入element plus 组件库 以及修改主题颜色

1. 下载依赖

npm install element-plus --save

2.  完整导入

如果你对打包后的文件大小不是很在乎,那么使用完整导入会更方便

main.ts

New Image

页面使用

New Image

3. 按需引入-自动导入 

  1. # 首先你需要安装 unplugin-vue-components 和 unplugin-auto-import这两款插件
  2. npm install -D unplugin-vue-components unplugin-auto-import
''
运行

修改vite.config.ts文件内容

New Image

修改后页面就能直接使用了

New Image

4. 完整导入  改变 element plus 主题颜色

4.1 首先下载sass依赖
npm install -D sass
''
运行
4.2 创建一个index.sass文件 在main.ts导入
  1. # index.sass 内容
  2. /* 只需要重写你需要的即可 */
  3. @forward "element-plus/theme-chalk/src/common/var.scss" with (
  4. $colors: (
  5. "primary": (
  6. "base": #41d36e,
  7. ),
  8. "success": (
  9. "base": #f14d0b,
  10. ),
  11. )
  12. );
  13. @use "element-plus/theme-chalk/src/index.scss" as *;
''
运行

# main.ts 导入Tips

New Image

需要注意自己重写的这个index.sass 必须放在element-plus前面 

element-plus 自己的样式文件不需要导入

# 页面展示

New Image

New Image

5.  按需引入-自动导入 改变 element plus 主题颜色

5.1 下载依赖
npm i unplugin-element-plus -D
''
运行
5.2 创建一个index.sass 在vite.config.ts里面导入 具体看下一步
  1. /* 只需要重写你需要的即可 */
  2. @forward "element-plus/theme-chalk/src/common/var.scss" with (
  3. $colors: (
  4. "primary": (
  5. "base": #41d36e,
  6. ),
  7. "success": (
  8. "base": #f14d0b,
  9. ),
  10. )
  11. );
''
运行
5.3 修改vite.config.ts 直接复制就行
  1. import { defineConfig } from "vite";
  2. import vue from "@vitejs/plugin-vue";
  3. import path from "path";
  4. // 饿了么ui 按需导入
  5. import AutoImport from "unplugin-auto-import/vite";
  6. import Components from "unplugin-vue-components/vite";
  7. import { ElementPlusResolver } from "unplugin-vue-components/resolvers";
  8. // 颜色主题修改
  9. import ElementPlus from "unplugin-element-plus/vite";
  10. // https://vitejs.dev/config/
  11. export default defineConfig({
  12. resolve: {
  13. extensions: [".vue", ".ts"],
  14. alias: {
  15. "@": path.resolve(__dirname, "src"),
  16. },
  17. },
  18. // 导入创建的scss
  19. css: {
  20. preprocessorOptions: {
  21. scss: {
  22. additionalData: `@use "@/assets/style/element/index.scss" as *;`,
  23. },
  24. },
  25. },
  26. plugins: [
  27. vue(),
  28. AutoImport({
  29. include: [
  30. /\.[tj]sx?$/, // .ts, .tsx, .js, .jsx
  31. /\.vue$/,
  32. /\.vue\?vue/, // .vue
  33. ],
  34. eslintrc: {
  35. enabled: true,
  36. },
  37. imports: ["vue", "vue-router"],
  38. resolvers: [ElementPlusResolver({ importStyle: "sass" })], //importStyle配置样式引入方式,自动引入修改主题色设置此属性
  39. }),
  40. Components({
  41. resolvers: [ElementPlusResolver({ importStyle: "sass" })], //importStyle配置样式引入方式,自动引入修改主题色设置此属性
  42. }),
  43. ElementPlus({
  44. useSource: true,
  45. }),
  46. ],
  47. });
''
运行