Vue + Axios 请求接口方法与传参方式详解

yizhihongxing

下面是详细讲解 "Vue + Axios 请求接口方法与传参方式详解" 的完整攻略。

简介

Vue 是一个渐进式框架,许多 web 应用程序使用它来构建 UI。Axios 是一个基于 promise 的 HTTP 库,可以用于进行数据请求。在 Vue 中,我们可以结合 Axios 在应用程序中轻松地发送数据请求。

本攻略将为您提供如何使用 Vue + Axios 请求数据及处理传参的流程。

安装

安装 Vue:

npm install vue --save 

安装 Axios:

npm install axios --save

配置 Axios 请求

在 Vue 中配置 Axios:

import axios from 'axios'  

const instance = axios.create({  
  baseURL: 'http://localhost:3000/api',   
  timeout: 1000  
}); 

export default {
  name: 'Axios',
  data() {
    return {}
  },
  methods: {
    apiGet(url, data) {
      return instance.get(url, {
        params: data
      })
    },
    apiPost(url, data) {
      return instance.post(url, data)
    },
    apiPut(url, data) {
      return instance.put(url, data)
    },
    apiDelete(url, data) {
      return instance.delete(url, data)
    }
  }
}

请求数据

GET 请求

在 Vuex 中获取数据:

import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    userList: []
  },
  mutations: {
    addUsers(state, payload) {
      state.userList = payload;
    }
  },
  actions: {
    getUsers({commit}) {
      return new Promise((resolve, reject) => {
        this.$api.apiGet('/users').then(res => {
            commit("addUsers", res.data);
            resolve(res);
        }).catch(err => {
            reject(err);
        });
      })
    }
  },
  getters: {
    userList: state => state.userList
  }
})

POST 请求

在组件中提交数据:

export default {
  name: "CreateUser",
  data() {
    return {
      username: "",
      email: "",
      password: "",
      confirm_password: "",
    };
  },
  methods: {
    createUser() {
      const data = {
        username: this.username,
        email: this.email,
        password: this.password,
        confirm_password: this.confirm_password,
      };
      this.$api
        .apiPost(`/user`, data)
        .then((res) => {
          if (res.status === 201) {
            // Redirect to user list page.
          }
        })
        .catch((err) => {
          console.log(err);
        });
    },
  },
};

传参

在 URL 传递参数

GET 请求可以将查询参数直接通过 URL 传递到后台,类似于 /users?id=1 的形式。这种方式非常方便,但是对于保护敏感数据,不太适合。

通过 params 参数传递参数

我们也可以通过 params 参数来传递参数,如:

axios.get('/user', {
  params: {
    id: 1,
    name: 'Tom'
  }
})

通过 data 参数传递参数

当使用 POST、PUT 和 DELETE 等方法时,我们使用 data 参数传递参数,如:

axios.post('/user', {
  id: 1,
  name: 'Tom'
})

示例

以下是一个示例,展示如何使用 Axios 和 Vue 发送数据请求:

<template>
  <div>
    <ul>
      <li v-for="user in userList" :key="user.id">{{ user.name }}</li>
    </ul>
    <div>
      <input type="text" v-model="name" />
      <button @click="createUser">Create User</button>
    </div>
  </div>
</template>

<script>
export default {
  name: 'UserList',
  data() {
    return {
      name: '',
    }
  },
  mounted() {
    this.getUsers()
  },
  methods: {
    getUsers() {
      this.$store.dispatch('getUsers')
    },
    createUser() {
      const data = {
        name: this.name,
      }
      this.$api
        .apiPost('/user', data)
        .then((res) => {
          if (res.status === 201) {
            this.getUsers()
          }
        })
        .catch((err) => {
          console.log(err)
        })
    },
  },
  computed: {
    userList() {
      return this.$store.getters.userList
    },
  },
}
</script>

以上就是 "Vue + Axios 请求接口方法与传参方式详解" 的完整攻略,希望能帮助到您。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Vue + Axios 请求接口方法与传参方式详解 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • Vue2 的 diff 算法规则原理详解

    Vue2 的 diff 算法规则原理详解 什么是 diff 算法? 在前端框架中,常常需要比较新旧虚拟 DOM 树来确定需要更新的节点,以此进行更新操作。而这个过程就被称之为 diff(差异)算法。 diff 算法通过比较两棵 DOM 树的差异,把更新的内容应用到真实 DOM 上,最终展示出最新的页面。这个过程其实也是整个前端框架的核心思想,而 Vue2 中…

    Vue 2023年5月27日
    00
  • vue:内存泄露详解

    下面我将为您详细讲解 “vue:内存泄露详解” 的攻略。 1. 什么是内存泄漏? 内存泄漏指程序在申请内存后,由于某种原因,未能及时归还系统造成的系统内存浪费的现象。在一个程序正常的运行过程中,为了提高效率,程序会申请内存。但是程序员忘记了回收内存,或者程序代码中存在内存泄漏缺陷,导致程序在一段时间后出现卡顿或者崩溃的现象。 2. Vue中的内存泄漏 在Vu…

    Vue 2023年5月27日
    00
  • 使用Vue-axios进行数据交互的方法

    当我们需要在Vue.js前端应用中与服务器进行数据交互时,常常使用axios库。axios是一个基于Promise的HTTP库,在浏览器和node.js中都可以运行。这里我们需要集成Vue和axios,使用Vue-axios插件来处理这种需求。 安装Vue-axios 在使用Vue-axios之前,我们需要先进行安装。在终端窗口中运行以下命令: npm in…

    Vue 2023年5月28日
    00
  • 一篇文章看懂Vue组合式API

    一篇文章看懂Vue组合式API 什么是Vue组合式API Vue组合式API是Vue 3中新增的语法特性,它提供了一种新的组件编写方式,能够更加优化组件的可复用性、可维护性和可测试性。与Vue 2.x的Options API相比,Vue 3.x的组合式API更加灵活且容易理解使用。本文将介绍Vue组合式API的使用方法。 setup函数 在使用Vue组合式A…

    Vue 2023年5月28日
    00
  • vue.js实现数据库的JSON数据输出渲染到html页面功能示例

    接下来我将详细讲解如何使用vue.js实现将数据库中的JSON数据输出渲染到HTML页面的功能。本攻略将分三个部分来讲解:第一部分介绍如何连接数据库;第二部分介绍如何将JSON数据输出;第三部分介绍如何将JSON数据渲染到HTML页面上。 第一部分:连接数据库 在vue.js中连接数据库,我们可以使用Axios。Axios是一个基于Promise的HTTP客…

    Vue 2023年5月27日
    00
  • Vue.js自定义指令的基本使用详情

    Sure,下面是针对 “Vue.js自定义指令的基本使用详情”的完整攻略。 首先,我们需要理解自定义指令的概念和作用。在 Vue.js 中,自定义指令可用于对DOM进行操作,比如控制DOM元素的显示隐藏、添加样式、绑定事件等。自定义指令能够让我们以一种非常优雅的方式扩展 Vue.js 的功能。 一、自定义指令的基本定义 在 Vue.js 中,通过编写自定义指…

    Vue 2023年5月28日
    00
  • vue轻量级框架无法获取到vue对象解决方法

    下面是“vue轻量级框架无法获取到vue对象解决方法”的完整攻略。 问题描述 在使用轻量级vue框架时,有时会出现无法获取到vue对象的情况,这给我们的开发带来了不便。那么,我们该如何解决这个问题呢? 解决方法 方式一:通过vue.mixin实现 我们可以通过vue.mixin方法,将vue对象注入到全局中;当这个框架引用了该全局对象时,我们就可以轻松的获取…

    Vue 2023年5月28日
    00
  • 深入浅析Vue.js 中的 v-for 列表渲染指令

    当我们使用Vue.js来渲染列表时,v-for指令是最常用的一种方式。这个指令可以迭代遍历一个数组或对象,并根据不同的情况生成DOM元素。本篇文章详细讲解了Vue.js中的v-for指令,包括其语法、用法以及常用技巧,并附有两条实际示例说明。 什么是v-for指令? v-for是Vue.js中的循环迭代指令,用于循环遍历数组或对象的数据并生成DOM元素。 在…

    Vue 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部