基于Vue3小兔鲜新版(公司营销版),根据实际情况修改~
创建项目并整理目录
1. 创建项目

2. 整理目录

jsconfig.json配置别名路径
配置别名路径可以在写代码时联想提示路径
| {"compilerOptions" : {
 "baseUrl" : "./",
 "paths" : {
 "@/*":["src/*"]
 }
 }
 }
 
 | 
elementPlus引入
1. 安装elementPlus和自动导入插件
| cnpm install element-plus --savecnpm install -D unplugin-vue-components unplugin-auto-import
 
 | 
2. 配置自动按需导入
修改vite.config.js
| 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()],
 }),
 ]
 })
 
 | 
3. 测试组件
| <template><el-button type="primary">i am button</el-button>
 </template>
 
 | 
定制elementPlus主题
1. 安装sass
基于vite的项目默认不支持css预处理器,需要开发者单独安装
2. 准备定制化的样式文件
新建styles/element/index.scss:
| @forward 'element-plus/theme-chalk/src/common/var.scss' with (
 $colors: (
 'primary': (
 
 'base': #27ba9b,
 ),
 'success': (
 
 'base': #1dc779,
 ),
 'warning': (
 
 'base': #ffb302,
 ),
 'danger': (
 
 'base': #e26237,
 ),
 'error': (
 
 'base': #cf4444,
 ),
 )
 );
 
 | 
3. 自动导入配置
这里自动导入需要深入到elementPlus的组件中,按照官方的配置文档来
- 自动导入定制化样式文件进行样式覆盖
- 按需定制主题配置 (需要安装 unplugin-element-plus)
| import { fileURLToPath, URL } from 'node:url'import { defineConfig } from 'vite'
 import vue from '@vitejs/plugin-vue'
 import AutoImport from 'unplugin-auto-import/vite'
 import Components from 'unplugin-vue-components/vite'
 import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
 
 import ElementPlus from 'unplugin-element-plus/vite'
 export default defineConfig({
 plugins: [
 vue(),
 AutoImport({
 resolvers: [ElementPlusResolver()],
 }),
 Components({
 resolvers: [ElementPlusResolver()],
 }),
 
 ElementPlus({
 useSource: true,
 }),
 ],
 resolve: {
 alias: {
 '@': fileURLToPath(new URL('./src', import.meta.url))
 }
 },
 css: {
 preprocessorOptions: {
 scss: {
 
 additionalData: `
 @use "@/styles/element/index.scss" as *;
 `,
 }
 }
 }
 })
 
 | 
axios安装并简单封装
1. 安装axios
2. 基础配置
官方文档地址:https://axios-http.com/zh/docs/intro
基础配置通常包括:
- 实例化 - baseURL + timeout
- 拦截器 - 携带token 401拦截等
新建utils/http.js:
| import axios from 'axios'
 
 const http = axios.create({
 baseURL: 'http://pcapi-xiaotuxian-front-devtest.itheima.net',
 timeout: 5000
 })
 
 
 http.interceptors.request.use(config => {
 return config
 }, e => Promise.reject(e))
 
 
 http.interceptors.response.use(res => res.data, e => {
 return Promise.reject(e)
 })
 
 
 export default http
 
 | 
3. 修改基地址
修改http.js:
| const http = axios.create({
 baseURL:'/api',
 timeout: 5000
 })
 
 | 
修改vite.config.js,在末尾添加:
| server: {proxy: {
 '/api': {
 target: 'http://127.0.0.1:8080',
 changeOrigin: true,
 rewrite: (path) => path.replace(/^\/api/, '')
 }
 }
 }
 
 | 
target为后端地址。注意后端的跨域配置代理(可能后面还会发一篇教程~)
4. 封装请求函数并测试
此处测试使用的是小兔鲜的基地址,根据自己后端修改即可。
| import http from '@/utils/http'
 export function getCategoryAPI () {
 return http({
 url: 'home/category/head'
 })
 }
 
 | 
路由整体设计
1. 删除自带页面
修改router/index.js:
| import { createRouter, createWebHistory } from 'vue-router'
 const router = createRouter({
 history: createWebHistory(import.meta.env.BASE_URL),
 routes: [
 
 ]
 })
 
 export default router
 
 | 
然后删除view目录下的文件
修改App.vue:
| <template><!--  一级路由出口组件  -->
 <RouterView />
 </template>
 
 | 
2. 路由设计
路由设计原则:找页面的切换方式,如果是整体切换,则为一级路由,如果是在一级路由的内部进行的内容切换,则为二级路由。
分别在views目录下新建Home、Layout、Login目录,然后分别新建index.vue
| <template>我是登录页
 </template>
 
 | 
| <template>我是首页
 <!--  二级路由出口  -->
 <RouterView />
 </template>
 
 | 
| <template>我是home
 </template>
 
 | 
| <template>我是分类
 </template>
 
 | 
| 
 
 import { createRouter, createWebHistory } from 'vue-router'
 import Login from '@/views/Login/index.vue'
 import Layout from '@/views/Layout/index.vue'
 import Home from '@/views/Home/index.vue'
 import Category from '@/views/Category/index.vue'
 
 const router = createRouter({
 history: createWebHistory(import.meta.env.BASE_URL),
 
 routes: [
 {
 path: '/',
 component: Layout,
 children: [
 {
 path: '',
 component: Home
 },
 {
 path: 'category',
 component: Category
 }
 ]
 },
 {
 path: '/login',
 component: Login
 }
 ]
 })
 
 export default router
 
 | 
3. 修改eslint配置
修改.eslintrc.cjs,添加:
| rules:{'vue/multi-word-component-names':0
 }
 
 | 
静态资源引入和Error Lens安装
1. 静态资源引入
- 图片资源 - assets 目录下新建 images 文件夹 
- 样式资源 - 把 common.scss 文件(小兔鲜配套素材)放到 styles 目录下 
- 修改- main.js,引入初始化样式文件,同时注掉自带的- main.css:
 
| import '@/styles/common.scss'
 
 | 
2. Error Lens插件安装

IDEA没有这个插件,跳过(
scss变量自动导入
新建styles/var.scss:
| $xtxColor: #27ba9b;$helpColor: #e26237;
 $sucColor: #1dc779;
 $warnColor: #ffb302;
 $priceColor: #cf4444;
 
 | 
修改vite.config.js:
| css: {preprocessorOptions: {
 scss: {
 
 additionalData: `
 @use "@/styles/element/index.scss" as *;
 @use "@/styles/var.scss" as *;
 `,
 }
 }
 }
 
 | 
参考链接
3. 项目起步 (yuque.com)

Rean's Blog
Enjoy technology and music