npm init vite@latest
npm install element-plus --save
//按需引入
npm install -D unplugin-vue-components unplugin-auto-import
配置icon库
npm install @element-plus/icons-vue
//然后把下列代码插入到你的 Vite 的配置文件(vite.config.js)中
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { resolve } from 'path'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
// https://vitejs.dev/config/
//
export default defineConfig({
resolve: {
alias: {
"@": resolve(__dirname, './src')
}
},
css: {
preprocessorOptions: {
less: {
math: "always", // 括号内才使用数学计算
globalVars: {
// 全局变量
mainColor: "red",
},
},
},
},
plugins: [
vue(),
AutoImport({
resolvers: [ElementPlusResolver()],
}),
Components({
resolvers: [
ElementPlusResolver(),
],
}),
],
// 配置前端服务地址和端口
// server: {
// port: 8991,
// // 是否开启 https
// https: false,
// },
})
npm install less
npm install less-loader
在 vite.config.js中配置
css: {
preprocessorOptions: {
less: {
math: "always", // 括号内才使用数学计算
globalVars: {
// 全局变量
mainColor: "red",
},
},
},
},
npm install vue-router@4 --save
//安装最新的 npm i vue-router@next -S
安装完成后,在项目的入口文件中(通常是main.js)进行配置:
import { createApp } from 'vue'
import router from './router'
import App from './App.vue'
createApp(App).use(router).mount('#app')
router文件夹下创建index.js
import { createRouter,createWebHashHistory } from "vue-router";
import {customerRouters} from './customer'
import Home from '@/views/home/index.vue'
import HomeIndex from '@/views/home/home.vue'
//hash模式路由
const routes =[
{
path:'/',
name:'home',
component:Home,
meta: {
title: "首页"
},
redirect: "/home-index",
children:[
{
path: "home-index",
name: "home-index",
component: HomeIndex,
meta: {
title: "首页",
}
},
customerRouters,
]
},
{
path:'/login',
name:'login',
component:() => import('@/views/login/index.vue'),
meta: {
title: "登录"
},
}
]
const router = new createRouter({
history: createWebHashHistory(), //vue3是用history控制路由模式,vue2是mode
routes
});
export default router
npm install axios --save
npm install pinia
main.js中配置
import store from "./store";
createApp(App)
.use(router)
.mount('#app')
store文件夹下创建index.js
import { defineStore } from "pinia";
// useStore 可以是 useUser、useCart 之类的任何东西
// 第一个参数是应用程序中 store 的唯一 id
export const userStore = defineStore({
// 用来存储全局数据
id: "usestore",
state: () => ({
title: "hello world",
name: "安安",
age: 18,
school: {
name: "嗷嗷",
age: 15,
errs: "保安",
},
}),
// 用来监视或者说是计算状态的变化的,有缓存的功能。
getters: {},
// 对state里数据变化的业务逻辑,就是修改state全局状态数据的。
actions: {},
});
npm i -S pinia-plugin-persist
使用
1、在src下创建store文件夹,并在其内创建index.js文件,文件内容如下
import { createPinia } from "pinia"
import piniaPluginPersist from "pinia-plugin-persist"
const store = createPinia()
store.use(piniaPluginPersist)
export default store
在store目录下创建一个新的js文件,比如info.js,写入以下内容(建议通过 actions 去修改 state,action 里可以直接通过 this 访问)
import { defineStore } from "pinia"
export const userStore = defineStore({
id: "info", // id是唯一的,如果有多个文件,ID不能重复
state: () => {
return {
userinfo: null,
bank_type: 1,
}
},
actions: {
setInfo(data) {
this.userinfo = data
},
setBankType(data) {
this.bank_type = data
},
// 用户退出,清除本地数据
logout() {
this.userinfo = null
sessionStorage.clear()
localStorage.clear()
},
},
// 开启数据缓存,在 strategies 里自定义 key 值,并将存放位置由 sessionStorage 改为 localStorage
// 默认所有 state 都会进行缓存,你可以通过 paths 指定要持久化的字段,其他的则不会进行持久化,如:paths: ['userinfo'] 替换key的位置
persist: {
enabled: true,
strategies: [
{
key: "users",
storage: localStorage,
},
],
},
})
页面中使用