Vue2中使用axios的3种方法实例总结

目录
  • 第一种 原始方法 直接在项目中使用(不建议使用)
  • 第二种 将请求挂载到全局( 推荐使用 )
  • 第三种 将代码进行封装
  • 总结

第一种 原始方法 直接在项目中使用(不建议使用)

这种方法最简单粗暴

优点:不需要做封装,不需要做配置傻瓜式操作,不需要做异步处理

缺点:代码太繁琐,当遇到请求过多的时候,这样写不适合读写

注意:如果你封装的请求有问题解决不掉,可以用这种最原始的方式来解决

<template>
  <div>{{data}}</div>
</template>

<script>
/* 第一步下载 axios 命令:npm i axios 或者yarn add axios 或者pnpm i axios */
/* 第二步引入axios */
import axios from 'axios'
export default {
  data() {
    return {
        data:""
    };
  },
  methods: {
      /* 第三步 写一个name事件  */
    name() {
      axios({
        method: "get",
        url: "http://yufei.shop:3000/tabbar",
      }).then(res=>{
          this.data = res.data /* 将拿到的值,赋值给data */
      })
    },
  },
  /* 第四步 在create钩子函数中 将name事件在页面出现的时候执行 */
  created() {
    this.name();
  },
};
</script>
 

第二种 将请求挂载到全局( 推荐使用 )

优点:代码量减少,代码清晰,挂载到全局多处可以使用

缺点:vue3中不能这么使用,vue3换了一种方法来挂在全局

在main.js中

// 引入 axios
import axios from 'axios'

// 挂载一个自定义属性$http
Vue.prototype.$http = axios
// 全局配置axios请求根路径(axios.默认配置.请求根路径)
axios.defaults.baseURL = 'http://yufei.shop:3000'

在App.js中

<template>
  <div>{{ data }}</div>
</template>

<script>
export default {
  data() {
    return {
        data:""
    };
  },
  methods:{
     async name() {  //async  await  是解决异步的一种方案,必须要加,但是原生封装就不用
          const {data:res} = await this.$http.get('/tabbar')
          this.data = res
      }
  },
  created(){
      this.name()
  }
};
</script>

第三种 将代码进行封装

优点:代码量减少,代码清晰,挂载到全局多处可以使用,可以多层封装,vue3也可以这么使用

我们在src文件夹种创建一个文件叫APi ,然后在APi当前文件夹下创建一个request.js文件

目录结构如下

request.js代码如下

// 引入 axios
import axios from 'axios'
// 封装 baseURL
const request = axios.create({
    baseURL:"http://yufei.shop:3000"
})
// 向外暴露 request
export default request;

组件APP.vue代码如下

<template>
  <div>{{ data }}</div>
</template>

<script>
// 1. 导入request
import request from '@/APi/request.js'
export default {
  data() {
    return {
        data:""
    };
  },

  methods:{
    //    事件name
     async name() {
         const res = await request.get('/tabbar')
         this.data  = res.data
      }
  },
//   生命周期函数created中调用 事件name
  created(){
      this.name()
  }
};
</script>

总结

到此这篇关于Vue2中使用axios的3种方法的文章就介绍到这了,更多相关Vue2使用axios内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 解决vue2中使用axios http请求出现的问题

    使用axios处理post请求时,出现的问题解决 默认情况下: axios.post(url, params).then(res => res.data); 当url是远程接口链接时,会报404的错误: Uncaught (in promise) Error: Request failed with status code 404 我们需要实例化一个新的axios,并且设置他的消息头为'content-type': 'application/x-www-form-urlencoded' 于是得出

  • vue2.0 axios前后端数据处理实例代码

    目前主流的 Vue 项目,都选择 axios 来完成 ajax 请求,而大型项目都会使用 Vuex 来管理数据. 前言: 使用 cnpm 安装 axios cnpm install axios -S 安装其他插件的时候,可以直接在 main.js 中引入并 Vue.use(),但是 axios 并不能 use,只能每个需要发送请求的组件中即时 引入 为了解决这个问题,是在引入 axios 之后,修改原型链具体的实施请往下看~ 改写原型链 首先在 main.js 中引入 axios import

  • Vue2.0 axios前后端登陆拦截器(实例讲解)

    vue更新到2.0之后,作者就宣告不再对vue-resource更新,而是推荐使用axios.前段时间第一次在项目里用到vue,关于登陆问题,这里写一下心得. 首先后端: import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; import com.lovnx.gateway.po.User; import javax.servlet.http.HttpServletRequest; import jav

  • vue2.0学习之axios的封装与vuex介绍

    一.前言 博主也是vue道路上的行者,道行不深,希望自己的东西能对大家有所帮助.这篇博客针对 了解过vue基础,但是没有做过vue项目的童鞋.如果想看基础指令,可以看我之前的一篇博客,请点击  跳转,  不过我还是建议看文档比较好.os: Vue文档是非常详细的 二.准备 做vue单页应用都需要会什么? 1.  vue的脚手架,直接帮你建好项目.再看看自己想要啥,补充啥!  os:  Git 上有很多成品项目,可以找一个好点的拉下来 注:路由按需加载.热加载 等这些都是基础功能,在这不多说.os

  • Vue2中使用axios的3种方法实例总结

    目录 第一种 原始方法 直接在项目中使用(不建议使用) 第二种 将请求挂载到全局( 推荐使用 ) 第三种 将代码进行封装 总结 第一种 原始方法 直接在项目中使用(不建议使用) 这种方法最简单粗暴 优点:不需要做封装,不需要做配置傻瓜式操作,不需要做异步处理 缺点:代码太繁琐,当遇到请求过多的时候,这样写不适合读写 注意:如果你封装的请求有问题解决不掉,可以用这种最原始的方式来解决 <template> <div>{{data}}</div> </template

  • jQuery中each遍历的三种方法实例分析

    本文实例讲述了jQuery中each遍历的三种方法.分享给大家供大家参考,具体如下: 1.选择器+遍历 $('div').each(function (i){ //i就是索引值 //this 表示获取遍历每一个dom对象 }); 2.选择器+遍历 $('div').each(function (index,domEle){ //index就是索引值 //domEle 表示获取遍历每一个dom对象 }); 3.更适用的遍历方法 1)先获取某个集合对象 2)遍历集合对象的每一个元素 var d=$(

  • Java中求最大值的4种方法实例代码

    前言 本文主要给大家分享了关于java求最大值的4中方法,文中给出了完整的示例代码,下面话不多少了,来一起看看吧 示例代码: /** *@author Prannt *求最大值(或最小值) *本例以int数据类型为例,可指定其他数据类型 */ //方法一:直接法,求最小值类似 public class Deno05ArrayMax { public static void main(String[] args) { //数据类型可指定 int [] array = {5,15,20,30,100

  • 在python中创建表格的两种方法实例

    目录 日常拉呱: 创建表格一般有两种方法: 一:通过导入xlwt创建 二:通过导入csv库来创建 1.写入数据 2.读取数据 总结 日常拉呱: 最近在学习爬虫模拟登陆各个软件,老师留有作业,模拟登录京东并爬取系列物品,可惜我还是个小白菜鸟,还是处于迷迷糊糊的状态,只能先了解一下边缘知识.爬取完数据,你是否在纠结这些数据放在哪呢?建一个表格或许会帮助到你! 创建表格一般有两种方法: 一:通过导入xlwt来创建,这种方法我比较喜欢,因为它够直观够容易理解,但是相对而言比较麻烦. 二:通过导入csv库

  • PHP从数组中删除元素的四种方法实例

    茴香豆的"茴"字有四种写法,PHP从数组中删除元素也有四种方法 ^_^. 删除一个元素,且保持原有索引不变 使用 unset 函数,示例如下: <?php $array = array(0 => "a", 1 => "b", 2 => "c"); unset($array[1]); //↑ 你想删除的key ?> 输出: Array (     [0] => a     [2] =>

  • Python中删除文件的几种方法实例

    前言 很多时候开发者需要删除文件.可能是他错误地创建了文件,或者不再需要该文件.无论出于何种原因,都有一些方法可以通过Python来删除文件,而无需手动查找文件并通过UI交互来进行删除操作. 使用Python删除文件有多种方法,但是最好的方法如下: os.remove()删除文件 os.unlink()删除文件.它是remove()方法的Unix名称. shutil.rmtree()删除目录及其下面所有内容. pathlib.Path.unlink()在Python 3.4及更高版本中用来删除单

  • PHP5中实现多态的两种方法实例分享

    在PHP5中,变量的类型是不确定的,一个变量可以指向任何类型的数值.字符串.对象.资源等.我们无法说PHP5中多态的是变量. 我们只能说在PHP5中,多态应用在方法参数的类型提示位置.一个类的任何子类对象都可以满足以当前类型作为类型提示的类型要求.所有实现这个接口的类,都可以满足以接口类型作为类型提示的方法参数要求.简单的说,一个类拥有其父类.和已实现接口的身份. 通过实现接口实现多态 复制代码 代码如下: <?phpinterface User{ // User接口    public fun

  • Java中分割字符串的两种方法实例详解

    前言 相信大家应该都知道在java编程中,有时候我们需要把一个字符串按照某个特定字符.字母等作为截点分割这个字符串,这样我们就可以使用这个字符串的一部分或者把所有截取的内容保存到数组里等操作.下面这篇文章就给大家分享了两种分割的方法,下面来一起看看吧. 一.java.lang.String 的 split() 方法, JDK 1.4 or later public String[] split(String regex,int limit) 示例代码 public class StringSpl

  • vue封装axios的几种方法

    基础版 第一步:配置axios 首先,创建一个Service.js,这里面存放的时axios的配置以及拦截器等,最后导出一个axios对象.我平常elementUI用的比较多,这里你也可以使用自己的UI库. import axios from 'axios' import { Message, Loading } from 'element-ui' const ConfigBaseURL = 'https://localhost:3000/' //默认路径,这里也可以使用env来判断环境 let

随机推荐