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

企业网站功能描述企业形象设计学什么

企业网站功能描述,企业形象设计学什么,中国企业网网址,wordpress博客卡目录 前言 配置Axios实例 页面使用 总结 前言 Axios 是一个基于 Promise 的 HTTP 客户端#xff0c;用于浏览器和 Node.js 环境。它提供了一种简单、一致的 API 来处理HTTP请求#xff0c;支持请求和响应的拦截、转换、取消请求等功能。关于它的作用#xff1a; 发起 HTTP …目录 前言 配置Axios实例 页面使用 总结 前言 Axios 是一个基于 Promise 的 HTTP 客户端用于浏览器和 Node.js 环境。它提供了一种简单、一致的 API 来处理HTTP请求支持请求和响应的拦截、转换、取消请求等功能。关于它的作用 发起 HTTP 请求 Axios 提供了丰富的 API使得在浏览器和 Node.js 中发起 HTTP 请求变得非常容易。可以发送 GET、POST、PUT、DELETE 等不同类型的请求。 Promise 风格 Axios 使用 Promise 风格的 API使得在异步请求中更容易处理数据和错误。可以使用 .then() 处理成功的响应使用 .catch() 处理错误。 拦截请求和响应 可以在请求和响应被发送或接收之前进行拦截处理。这使得在请求发送前或响应返回后可以进行一些全局的处理比如添加请求头、处理错误等。 自动转换 JSON 数据 Axios 在接收到响应数据时会自动将 JSON 字符串转换为 JavaScript 对象。这样可以方便地处理和操作服务器返回的 JSON 数据。 取消请求 Axios 允许你创建一个取消请求的令牌以便在需要时取消尚未完成的请求。这在处理组件销毁或用户导航时非常有用可以避免不必要的请求。 全局配置 可以配置全局的默认值例如基础URL、超时时间等以便在整个应用程序中使用相同的设置。 处理请求和响应数据 可以在请求和响应时对数据进行转换和处理。这包括序列化请求数据、解析响应数据等。 上传和下载进度 Axios 提供了上传和下载进度的事件可以监视请求和响应的进度。这对于实时显示进度条等功能非常有用。 总体而言Axios是一个强大而灵活的工具可以简化和优化HTTP请求的处理是前端开发中常用的网络请求库之一并且当在Vue.js 3项目中使用Axios时可以通过全局设置来配置Axios实例以便在整个应用程序中共享相同的请求和响应逻辑比如500或者401时系统的一些操作。 配置Axios实例 前提需要先安装axiosnpm install axios 如下 开始配置先在项目的一个文件夹下某创建一个文件里面进行Axios 实例配置通常在src/utils下一般内容有 import axios from axios;// 创建 Axios 实例 const service axios.create({baseURL: process.env.VUE_APP_BASE_URL, // 使用环境变量配置 baseURLtimeout: 5000, // 设置请求超时时间 });// 请求拦截器 service.interceptors.request.use((config) {// 在请求发送前可以进行一些配置例如添加认证信息等config.headers[X-Auth-Token] your_token; // 示例添加认证信息return config;},(error) {return Promise.reject(error);} );// 响应拦截器 service.interceptors.response.use((response) {// 在响应返回后可以进行一些处理例如判断是否需要更新令牌等// ...return response;},(error) {// 处理响应错误// ...return Promise.reject(error);} );export default service;上面是比较基础的可以在此基础上进行自定义的操作比如我下面这种 axios-req.ts import axios from axios import { ElLoading, ElMessage, ElMessageBox } from element-plus import { useBasicStore } from /store/basic//使用axios.create()创建一个axios请求实例 const service axios.create() let loadingInstance: any null //loading实例 let tempReqUrlSave let authorTipDoor trueconst noAuthDill () {authorTipDoor falseElMessageBox.confirm(请重新登录, {confirmButtonText: 重新登录,closeOnClickModal: false,showCancelButton: false,showClose: false,type: warning}).then(() {useBasicStore().resetStateAndToLogin()authorTipDoor true}) }//请求前拦截 service.interceptors.request.use((req: any) {const { token, axiosPromiseArr }: any useBasicStore()//axiosPromiseArr收集请求地址,用于取消请求req.cancelToken new axios.CancelToken((cancel) {tempReqUrlSave req.urlaxiosPromiseArr.push({url: req.url,cancel})})//设置token到headerif (token) req.headers[X-Auth-Token] token//如果req.method给get 请求参数设置为 ?namexxxif (get.includes(req.method?.toLowerCase()) !req.params) req.params req.data//req loading// ts-ignoreif (req.reqLoading ?? true) {loadingInstance ElLoading.service({lock: true,fullscreen: true,// spinner: CircleCheck,text: 数据载入中...,background: rgba(0, 0, 0, 0.1)})}return req},(err) {//发送请求失败Promise.reject(err)} ) //请求后拦截 service.interceptors.response.use((res: any) {//取消请求useBasicStore().remotePromiseArrByReqUrl(tempReqUrlSave)if (loadingInstance) {loadingInstance loadingInstance.close()}//download fileif (res.data?.type?.includes(sheet)) {return res}const { code, msg } res.dataconst successCode [0,200,20000]const noAuthCode [401,403]if (successCode.includes(code)) {return res.data} else {//authorTipDoor 防止多个请求 多次alterif (authorTipDoor) {if (noAuthCode.includes(code)) {noAuthDill()} else {// ts-ignoreif (!res.config?.isNotTipErrorMsg) {ElMessage.error({message: msg,duration: 2 * 1000})} else {return res}return Promise.reject(msg)}}}},//响应报错(err) {//取消请求useBasicStore().remotePromiseArrByReqUrl(tempReqUrlSave)if (loadingInstance) {loadingInstance loadingInstance.close()}ElMessage.error({message: err,duration: 2 * 1000})return Promise.reject(err)} ) //导出service实例给页面调用 , config-页面的配置 export default function axiosReq(config) {return service({baseURL: import.meta.env.VITE_APP_BASE_URL,timeout: 8000,...config}) }之后我们可以在api文件夹下新建一个user.ts放一些API。就像这样 import axiosReq from /utils/axios-req//登录 export const loginReq (subForm) {return axiosReq({url: /login,method: post,data: subForm}) }//退出登录 export const loginOutReq () {return axiosReq({url: /loginOut,method: post}) }页面使用 这里以登录页为例 登录页面发送请求一般会发送用户账号密码然后获取到一个token所以我一般这样用 import { loginReq } from /api/userconst loginFunc () {loginReq({username: subForm.keyword,password: subForm.password}).then(({ data }) {elMessage(登录成功)basicStore.setToken(data?.token)router.push(/)}).catch((err) {tipMessage.value err?.msg}).finally(() {subLoading.value false}) } 总结 如果想在Vue全局使用的话可以用provide和inject来在整个应用程序中提供和注入Axios实例。 import { createApp } from vue; import App from ./App.vue; import request from /utils/request;const app createApp(App);// 提供Axios实例 app.provide(request, request);app.mount(#app); 页面使用 export default {inject: [request],methods: {fetchData() {this.request.get(/api/data).then(response {// 处理响应数据}).catch(error {// 处理请求错误});},}, }; 但是还是建议每个页面需要哪些API就引入哪些吧。 总结aixos的全局配置会方便API管理并且对于一些关于 token 处理和错误处理的逻辑以及状态码的反馈都是比较方便的根据项目需求来实现。
http://www.pierceye.com/news/130272/

相关文章:

  • 做资讯网站盈利措美网站建设
  • 山东建设工程执业证书查询网站建网是什么
  • 大型服装网站建设wordpress留言板模版
  • 延安做网站沈阳学网站制作学校
  • 网站添加新闻网站免费正能量软件不良
  • asp c 网站开发互动网门户网站建设
  • 图书馆网站结构怎么做国外超酷设计网站
  • 网站开发软件搭配学室内设计去哪好
  • 南通营销网站制作河南省大型项目建设办公室网站
  • 黄山网站建设怎么做seo快速优化技术
  • 百度有做企业网站吗ppt设计主题怎么设置
  • 网页设计与网站开发pdf网站个人建设
  • ip138禁止查询该域名商务网站建设组成包括网站优化
  • 百度做网站续费费用seo分析工具有哪些
  • 威胁网站检测平台建设郑州seo服务
  • 怎么设立网站赚广告费合肥新站区有做网站的吗
  • 管理系统 网站模板网站建立不安全
  • 模板网站的域名是什么意思百度教育智能小程序
  • 哪里有做配音的兼职网站wordpress菜单图标特效
  • 怎样自创广告网站海南网站建设推广公司哪家好
  • 网站开发团队人员网站建设开票属于什么服务
  • 学做网站初入门教程上海网站建设 觉策动力
  • 丰台建站公司做一个企业网站需要哪些技术
  • 黑色网站模板怎么写app程序
  • 常州建设局网站首页网站开发需求文档模板带er图
  • 网站名称是否已被注册简单的个人主页网站制作
  • 太仓网站开发wordpress留言板
  • 大型营销型网站制作装饰画
  • 移动网站和定制网站个体户 做网站
  • 网站建设的计划书网站源码下载 用户注册