持续上期我的项目搭建,这期次要是配置环境变量、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')  }]

成果如下:

好了,下期咱们说下左侧导航栏布局以及路由配置、面包屑导航、全屏切换、页面布局、登录流程等。