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

【VUE】axios组件

1. 快速使用

  • npm install axios
  • LoginView.vue
    import axios from "axios"
    axios.get("...")
    axios.post("...")
    axios.axios({method: "get"
    })
    

2. 通用配置

  • npm install axios
  • plugins/axios.js
    import axios from "axios";let config = {baseURL: "xxx",timeout: 20 * 1000   // ms
    }const _axios = axios.create(config)
    // 拦截器
    _axios.interceptors.request.use(function (config){xxx;return config
    })export default _axios
    
  • LoginView.vue
    <script setup>
    import _axios from "@/plugins/axios.js";
    _axios.get("/api/v1/course/category/free/?courseType=free").then((res) => {console.log(res.data)
    })
    </script>
    

3. 示例

plugins/axios.js

import axios from "axios";let config = {baseURL: "https://api.luffycity.com/",timeout: 20 * 1000
}const _axios = axios.create(config)// 拦截器
_axios.interceptors.request.use(function (config){// console.log("请求前:", config)// 1. 去pinia中读取当前用户token// 2. 发送请求时携带tokenif(config.params){config.params["token"] = "djbfkjbdfkj"} else {config.params = {"token": "whejsabjdnfj"}}return config
})export default _axios

LoginView.vue

<template><div class="box"><p>用户名:<input type="text" placeholder="用户名" v-model="msg.username"></p><p>密码:<input type="text" placeholder="密码" v-model="msg.password"></p><p><button @click="doLogin">登录</button></p></div>
</template><script setup>
import {ref} from "vue";
import {useRouter} from "vue-router";
import {userInfoStore} from "@/stores/user.js";
import _axios from "@/plugins/axios.js";const msg = ref({username: "",password: ""
})
const router = useRouter()
const store = userInfoStore()const doLogin = function () {// 1、获取数据console.log(msg.value)// 2、发送网络请求_axios.get("/api/v1/course/category/free/?courseType=free").then((res) => {console.log(res.data)})// 3、本地存储用户信息(登录凭证)// localStorage.setItem("name", msg.value.username)let info = {id: 1, name: msg.value.username, token: "ddsafhsjdfkj"}store.doLogin(info)// 3、跳转到首页router.push({name: "mine"})
}</script><style scoped>
.box {width: 300px;margin: 100px auto;
}
</style>

http://www.mrgr.cn/news/37127.html

相关文章:

  • 绝了,自从用了它,我每天能多摸鱼2小时!
  • 滑动窗口 -- 限制窗口内某元素的数量/种类
  • 深度学习—神经网络基本概念
  • 数据结构——初始树和二叉树
  • Linux(含麒麟操作系统)如何实现多显示器屏幕采集录制
  • 黑马头条day4 自媒体文章自动审核
  • Java2 实用教程(第6版)习题2 第四题
  • C++类和对象第一关
  • jvm专题 之 垃圾回收故障处理工具
  • 详解前驱图与PV操作
  • 第14讲 SLAM:现在与未来
  • Python 入门教程(3)基础知识 | 3.7、pass 关键字
  • Spring项目中的统一结果返回
  • windows电脑git提交告警:LF will be replaced by CRLF the next time Git touches it
  • 软件测试框架实战:Python+Slenium搭建Web自动化测试框架全教程
  • 【移植】标准系统方案之瑞芯微RK3568移植案例(二)
  • 华为源NAT技术与目的NAT技术
  • 每日一练:二叉树的右视图
  • 【yolov8】模型导出----pytorch导出为onnx模型
  • Maya没有Arnold材质球