vue3+ts+element 简单的登陆案例 (二)

上篇文章都下载好 ,下面进行具体操作

  1. 创建 登陆 注册界面以及路由之间的跳转在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2. 配置路由(主要解决跨域问题)
有了接口 首先要配置vue.config.js文件(没有则新建) 来解决跨域问题
vue.config.js 文件 点击进去复制
在这里插入图片描述
配置好然后进行路由设置

import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router'

const routes: Array<RouteRecordRaw> = [
  {
    path: '/',
    name: 'Home',
    component: () => import('../components/Home/home.vue')
  }, {
    path: '/user',
    name: 'Index',
    component: () => import('../views/Index.vue')
  }, {
    path: '/login',
    name: 'Login',
    component: () => import('../components/User/Login.vue')
  }, {
    path: '/regist',
    name: 'Regist',
    component: () => import('../components/User/Regist.vue')
  }, {
    path: "/forgotPassword",
    name: "forgotPassword",
    component: () => import("../components/User/forgotPassword.vue")
  }, {
    path: "/resetpassword/:id",
    name: "resetpassword",
    component: () => import("../components/User/resetPassword.vue")
  }, {
    path: '/:catchAll(.*)',
    name: '404',
    component: () => import('../views/404.vue')
  }
]

const router = createRouter({
  history: createWebHistory(process.env.BASE_URL),
  routes
})

export default router

  1. 配置axios
    配置全局 axios
import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
import ElementPlus from 'element-plus'
import 'element-plus/lib/theme-chalk/index.css';
import axios from './http'

const app = createApp(App);
// 全局挂载axios
app.config.globalProperties.$axios = axios;

app.use(ElementPlus).use(store).use(router).mount('#app')

用 https.ts 来对axios 扩充

import axios, { AxiosRequestConfig, AxiosResponse } from 'axios'
import { ElLoading } from 'element-plus';
// 加载动画的设置
let loading: any

const startLoading = () => {
  interface Opactions {
    lock: boolean;
    text: string;
    background: string
  }
  const opactons: Opactions = {
    lock: true,
    text: "正在加载...",
    background: 'rgba(0,0,0,0.7)'
  }
  loading = ElLoading.service(opactons)
}
const endLoading = () => {
  loading.close()
}

// 请求拦截
axios.interceptors.request.use((config: AxiosRequestConfig) => {
  // Do something before request is sent
  startLoading()
  return config;
}, error => {
  // Do something with request error
  endLoading()
  return Promise.reject(error);
});

// 相应拦截
axios.interceptors.response.use((response: AxiosResponse<any>) => {
  // Do something before response is sent
  endLoading()
  return response;
}, error => {
  // Do something with response error
  endLoading()
  return Promise.reject(error);
});

export default axios;

  1. 完成项目
    具体代码如下 vue3-elementplus
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嘴巴嘟嘟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值