网络模块封装-axio

本文介绍了在网络开发中,从传统的Ajax到Vue中选择axios的原因,包括axios的优点,如支持Promise API,拦截请求和响应等功能。同时,文章还探讨了JSONP的工作原理,并展示了axios的基本使用、配置以及实例封装。此外,还提到了axios拦截器的使用场景,如统一处理请求前后的逻辑。
摘要由CSDN通过智能技术生成

网络模块封装-axios

  1. 网络请求模块的选择

    —传统的Ajax是基于XML Http Request(XHR),缺点:配置和调用方式等非常混乱;真实开发中很少直接使用,而是使用jQuery-Ajax;

    —Vue开发中不需要使用jQuery,完全没必要为了网络请求而引用这个重量级的框架;

    —Vue1.x版本中,官方推出了Vue-resource,相对于jQuery体积要小,但是不支持Vue新版本,也不会继续更新和维护,对以后的项目开发和维护存在很大的隐患;

    —axios有很多优点,在浏览器中发送XHR请求;在node.js中发送http请求;支持Promise API;拦截请求和响应;转换请求和响应数据;

    —JSONP的核心在于通过<script>标签的src来帮助我们请求数据;原因是我们的项目部署在domain1.com服务器上时,是不能直接访问domain2.com服务器上的资料;我们可以利用<script>标签的src帮助我们服务器请求到数据,将数据当作一个javascript的函数来执行,并且执行过程传入我们需要的json;封装jsonp的核心就在于我们监听window上的jsonp进行回调时的名称;

  2. axios基本框架

    —安装axios框架:npm install axios --save

    —简单使用:

    import axios from 'axios'
    axios({
          
     url:'http://123.207.32.32:8000/home/multidata',
     //专门对get请求的参数拼接
     params:{
          
         type:'pop',
         page:1
     }
    }).then(res => {
          
     console.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当你在Vue 3中使用Axios时,可以通过二次封装来简化其使用。下面是一个示例: 先,安装Axios: ``` npm install axios ``` 然后,在你的项目中创建一个名为`api.js`的文件,用于封装Axios: ```javascript import axios from 'axios'; const instance = axios.create({ baseURL: 'https://api.example.com', // 设置你的API地址 timeout: 5000, // 设置请求超时时间 }); // 请求拦截器 instance.interceptors.request.use( (config) => { // 在发送请求之前做一些处理,例如添加token等 return config; }, (error) => { // 处理请求错误 return Promise.reject(error); } ); // 响应拦截器 instance.interceptors.response.use( (response) => { // 对响应数据进行处理,例如解析数据等 return response.data; }, (error) => { // 处理响应错误 return Promise.reject(error); } ); export default instance; ``` 现在,你可以在需要使用Axios的组件中引入`api.js`并发送请求了。例如,你可以在一个名为`UserList.vue`的组件中使用: ```vue <template> <div> <ul> <li v-for="user in userList" :key="user.id">{{ user.name }}</li> </ul> </div> </template> <script> import api from './api.js'; export default { data() { return { userList: [], }; }, mounted() { this.fetchUserList(); }, methods: { fetchUserList() { api.get('/users') .then((response) => { this.userList = response; }) .catch((error) => { console.error(error); }); }, }, }; </script> ``` 在上面的示例中,我们通过引入`api.js`来发送GET请求获取用户列表,并将结果保存在`userList`数据中。 这就是一个简单的Axios二次封装的示例,你可以根据自己的需求进行扩展和修改。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值