共计 2003 个字符,预计需要花费 6 分钟才能阅读完成。
持续上期我的项目搭建,这期次要是配置环境变量、element-plus 援用、跨域设置,整体布局等
一、环境变量
在理论开发中,开发环境和测试环境、生产环境所应用的域名不同,每次批改 url 比拟麻烦,依据不同环境配置不同环境变量,能够无效解决此类问题。
1、在根目录创立.env.development 和.env.production 开发和生产环境,在文件中配置 url,如下
VITE_API_BASEURL = https://xxx.com/api/admin
2、TypeScript 的智能提醒:
在根目录下找到 env.d.ts 文件,有的装置的 vite 版本没有这个文件,则本人创立一个,文件中配置如下:
3、应用
在封装 axios 接口申请文件中,找到 axios.create 下 baseURL, 配置如下:
留神:如果我的项目中须要新增一个测试环境,则须要进行如下配置:
vite build --mode test
而后在根目录下新建.env.test 文件,在此文件中配置测试环境的域名就 OK 了。
二、跨域
1、配置
在 vite.config.ts 文件中配置跨域。
server: {
proxy: {
// 选项写法
'/admin': {
target: 'https://xxx.com/api', // 代理指标地址
changeOrigin: true, // 兼容基于名字的虚拟主机,true 代理服务会把 origin 批改未指标地址
rewrite: (path) => path.replace(/^\/api/, '') // 门路重写
}
}
}
留神:
比如说接口是:https://xxx.com/api/admin/user,https://xxx.com/api/admin/login 等的时候,咱们能够应用 /admin 去配置,将指标地址改成 https://xxx.com/api,这样接口申请的残缺地址就会变成 https://xxx.com/api/admin, 而后页面中的申请门路只有拼接上 /user 就 ok 了。
三、element-plus 应用
1、装置
npm install element-plus --save
2、援用
个别援用是间接在 main.ts 中引入就能够全局应用了,然而这里举荐大家应用插件的形式进行援用,具体操作如下:
在 src 新建 plugins/element-plus.ts 文件
而后在 main.ts 中引入即可
import elementPlus from './plugins/element-plus'
createApp(App).use(router).use(store).use(elementPlus).mount('#app')
四、布局
1、在 src 目录下创立 layout 文件,文件夹下新建 AppLayout.vue,内容如下。
<template>
<div class="common-layout">
<el-container>
<el-aside width="200px">
Aside
</el-aside>
<el-container>
<el-header>Header</el-header>
<el-main>
<router-view />
</el-main>
</el-container>
</el-container>
</div>
</template>
<script lang="ts" setup>
</script>
<style scoped lang="scss">
.el-header {
background: #b3c0d1;
color: #333;
}
.el-aside {
background: #d3dce6;
color: #333;
}
.el-main {
background: #e9eef3;
color: #333;
}
.el-container {height: 100vh;}
</style>
留神:页面布局高度要撑起来,之前的解决形式是给 html、body、#app 设置 height:100%, 在这块间接给 el-container 设置 height:100vh,能够达到同样的成果。
2、路由批改
layout 做为布局页面,所以在 router 中要批改页面
import AppLayout from '@/layout/AppLayout.vue'
const routes: RouteRecordRaw[] = [
{
path: '/',
component: AppLayout,
children: [
{
path: '',
name: 'home',
component: () => import('../views/home/index.vue')
}
]
},
{
path: '/login',
name: 'login',
component: () => import('../views/login/index.vue')
}
]
成果如下:
好了,下期咱们说下左侧导航栏布局以及路由配置、面包屑导航、全屏切换、页面布局、登录流程等。