当前位置: 首页 > news >正文

米拓建站最新进展菏泽网站制作

米拓建站最新进展,菏泽网站制作,招远网站,网站建设 青海vue3 学习笔记04 – axios的使用及封装 安装 Axios 和 TypeScript 类型定义 npm install axios npm install -D types/axios创建一个 Axios 实例并封装成一个可复用的模块,这样可以在整个应用中轻松地进行 API 请求管理。 在 src 目录下创建一个 services 文件夹&…

vue3 学习笔记04 – axios的使用及封装

  • 安装 Axios 和 TypeScript 类型定义
npm install axios
npm install -D @types/axios

创建一个 Axios 实例并封装成一个可复用的模块,这样可以在整个应用中轻松地进行 API 请求管理。

  • 在 src 目录下创建一个 services 文件夹,并在其中创建 api.ts 文件:
  // src/services/api.tsimport axios, { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';// 创建一个 axios 实例
const api: AxiosInstance = axios.create({baseURL: import.meta.env.VITE_APP_BASE_API,timeout: 30000, // 请求超时时间headers: {'Content-Type': 'application/json'// 其他默认请求头可以在这里配置}
});// 请求拦截器
api.interceptors.request.use((config: AxiosRequestConfig) => {// 在请求发送之前做些什么,例如加入 token 等操作return config;},(error) => {// 处理请求错误return Promise.reject(error);}
);// 响应拦截器
api.interceptors.response.use((response: AxiosResponse) => {// 在响应数据返回之前做些什么,例如对响应数据进行处理return response.data;},(error) => {// 处理响应错误return Promise.reject(error);}
);export default api;
  • 项目根目录新建.env.dev – 开发环境变量
NODE_ENV = 'development'
VITE_APP_BASE_API = '/api'
VITE_APP_TARGET_URL = "https://api.example.com"
  • 项目根目录新建.env.pro – 生产环境变量
NODE_ENV = 'production'
VITE_APP_BASE_API = '/api'
VITE_APP_TARGET_URL = "https://api.example.com"
  • vite.config.ts中配置proxy
export default defineConfig({plugins: [vue()],server:{host: '0.0.0.0', // 允许IP访问proxy: {[env.VITE_APP_BASE_API]: {changeOrigin: true,target: env.VITE_APP_TARGET_URL,secure: false,rewrite: (path) => path.replace(new RegExp(`^${env.VITE_APP_BASE_API}`), '')},}}
})
  • 使用axios封装

    • 在src/api文件下新建login/login.ts文件
          import api from '@/services/api';import { AxiosPromise } from "axios";import { LoginData, LoginResult } from "./types";export function login(data:LoginData):AxiosPromise<LoginResult> {return api({url: '/mock/user/login',method: 'post',data})}
      
    • src/login/types.ts
          export interface LoginData {/*** 用户名*/username: string;/*** 密码*/password: string;}export interface userInfoVo {id: numbername: stringphone: number}/*** 登录响应*/export interface LoginResult {/*** token*/token?: string;/*** 过期时间(单位:毫秒)*/expireAt?: number;/*** 刷新token*/refreshToken?: string;/*** 用户信息*/userInfo?: userInfoVo[];}
      
  • vue文件中使用

<template>form表单.....
<el-button class="login-button" type="primary" @click="handleLogin" :loading="loading">登录</el-button>
</template> 
<script setup lang="ts">
import { login } from '@/api/login/login'
import { useRouter } from 'vue-router'
let loading = ref(false)
const router = useRouter()
const handleLogin = ()=>{let data = {username:'xxx',password:'xxx'}loading.value = truelogin(data).then((res)=>{loading.value = false// 一些存储token及其他信息的处理的处理....要干的事router.push('/')})
}
</script>  
http://www.yayakq.cn/news/143386/

相关文章:

  • 合肥网站设计服务电脑管理软件排行榜
  • 网站的风格有哪些网站商城微信支付接口
  • 有什么网站可以免费wordpress 更换主题
  • 网站制作对公司的作用太原网站建设价格
  • 家庭装修图片外贸网站优化怎么做
  • 网站空间可以转移吗wordpress 读取最新文章
  • 宿州做网站的有吗网站建设与网页设计百度文库
  • 如何建wap网站php做的网站怎么上传
  • 青岛建设银行股份有限公司网站首页淘宝网站的论坛做的怎么样
  • 购买网站做网页游戏网站主页设计素材
  • 什么做电子书下载网站好如何改更wordpress上下文章链接
  • 商务网站建设策划思路动漫做a视频网站
  • 如何做阿里巴巴免费网站如何创立自己的网站
  • 12306网站多钱做的做企业网站 空间怎么买
  • 外国设计网站推荐微信授权登录网站退出怎么做
  • 云南省住房与城乡建设厅网站石家庄住房和城乡建设部网站
  • 玉山县住房城乡建设局网站佛山大良营销网站建设
  • 安徽建设部网站表格制作excel
  • 网站开发实战第二章做网站常用代码向右浮动怎么写
  • 哪种公司一般会做网站深圳网站备案拍照
  • 网站建设捌金手指花总二五wordpress速度优化简书
  • 摄影网站建设文案如何自己开发软件挣钱
  • 个人音乐网站开发商城网站
  • 营销网站试用wordpress 云推荐
  • wordpress上传设置密码seo免费优化
  • 企业类网站模板免费下载个人网站带论坛 备案
  • 网站建设项目描述wordpress会员无法注册
  • 云端网络网站可以找网图的软件
  • 成都网站专业制作做物流的都是上什么网站
  • wordpress 发送邮件插件seo兼职工资一般多少