加载中...

从零开始写一个Vue3+Element Plus的后台管理系统

写在开始之前

接触Vue3也有一年的时间了,除了刚开始用Vue3做了一个小小的项目,其后一直没有机会在项目中真正使用Vue3,反而一直维护Vue2的老项目。作为一个有追求(wuliao)的前端,那就自己开一个git仓库练手吧,想试验什么就随便试,既没有deadline的压力,也不用去考虑产品需求,UI还原度。

萌芽期的git仓库地址 github.com/lucidity99/…

主要使用的工具(排名不分先后):

  • Vue3
  • Vite
  • TypeScript
  • Element Plus
  • Pinia
  • SCSS
  • Tailwind CSS
  • VueRouter
  • eCharts
  • Eslint、Prettier

模拟接口数据本来打算用Mockjs,后来决定使用Apipost(最终改成了apiFox),感觉更贴近实际开发,接口管理也方便。

个人目前的难点是Typescript,还不能真正的把ts用好,代码动不动就爆红,所以练手的目的之一就是精进ts。

计划要做的内容比较多,除了基础的系统设置、功能模块,还有一些一直想尝试但是未曾在Vue项目中完整实现的功能。

  • 切片上传文件
  • 复杂的表格设置
  • 换肤功能(目前已实现暗黑模式,但是更复杂的换肤还没有开始做)
  • 多页签组件 juejin.cn/post/722990…
  • 各种主流富文本插件引入 juejin.cn/post/723441…
  • 尝试Vue3新加入的功能
  • 尝试Vue3 hook,vueuse
  • 路由的配置
  • 更多配置的axios拦截器 juejin.cn/post/723407…
  • ...

Tailwind CSS是我很感兴趣的原子类CSS库,在以往的使用中,感觉能够实实在在的提升开发体验,后期还打算尝试现在流行的unocss

开始项目

创建项目,并安装所需的依赖

创建Vite项目

bash
复制代码
npm create vite@latest

安装Element Plus

本项目选择自动导入的方式。

自动导入#

首先你需要安装unplugin-vue-components 和 unplugin-auto-import这两款插件

arduino
复制代码
npm install -D unplugin-vue-components unplugin-auto-import

然后把下列代码插入到你的 Vite 或 Webpack 的配置文件中

Vite 配置文件
javascript
复制代码
// vite.config.ts import { defineConfig } from ''vite'' import AutoImport from ''unplugin-auto-import/vite'' import Components from ''unplugin-vue-components/vite'' import { ElementPlusResolver } from ''unplugin-vue-components/resolvers'' export default defineConfig({ // ... plugins: [ // ... AutoImport({ resolvers: [ElementPlusResolver()], }), Components({ resolvers: [ElementPlusResolver()], }), ], })

这里埋了个坑,后面会提到。

安装SCSS

我喜欢SCSS更多一点,和Element Plus更配,如果你喜欢LESS也没问题(Vant、Ant都更适合LESS)。

bash
复制代码
npm install sass -D

不需要安装sass-loadernode-sass

安装tailwind css

bash
复制代码
npm install -D tailwindcss postcss autoprefixer npx tailwindcss init -p

配置tailwind.config

tailwind.config.js

css
复制代码
/** @type {import(''tailwindcss'').Config} */ export default { content: [ "./index.html", "./src/**/*.{js,ts,jsx,tsx,vue}", // 这里记得加上vue,官网直接拷贝过来是没有的 ], theme: { extend: {}, }, plugins: [], }

引入样式文件

src/assets/css/index.scss

css
复制代码
@tailwind base; @tailwind components; @tailwind utilities;

安装Pinia

js
复制代码
npm install pinia

安装vueRouter

css
复制代码
npm install vue-router@4

安装eslint

项目结构

按照目录结构,在项目中建立所需文件夹

js
复制代码
|- public |- src |- api |- assets |- components // 放在这里的自定义组件,会自动导入 |- layout |- router |- store |- types |- utils |- views App.vue env.d.ts main.ts vite-env.d.ts editorconfig .env.develpment .eslintrc.js .prettierrc. .auto-imports.d.ts .components.d.ts index.html package.json postcss.config.js tailwind.config.js tsconfig.json vite.config.ts

至此,准备工作已经完成,项目的架子搭起来了。接下来先从layout布局开始。