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

下面是详细讲解 "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日

相关文章

  • Vue中对拿到的数据进行A-Z排序的实例

    针对“Vue中对拿到的数据进行A-Z排序的实例”的问题,我将从以下几个方面给出详细的讲解: 数据的获取与处理 排序算法的实现 渲染结果 数据的获取与处理 首先,我们需要获取到需要排序的数据。在Vue中,可以通过data属性、props属性或从后端接口获取数据。这里以从后端接口获取数据为例,假设我们已经在Vue组件中成功获取到数据,并且存储在data属性中。 …

    Vue 2023年5月29日
    00
  • vue.js数据绑定操作详解

    Vue.js 数据绑定操作详解 Vue.js是一个流行的前端JavaScript框架,它最为突出的特性就是数据绑定。本文介绍Vue.js中的数据绑定操作,包括双向绑定、单向绑定、计算属性、侦听器等内容。同时在本文中,我们将以两条实例说明来进一步解析Vue.js的数据绑定操作。 双向绑定 Vue.js最为著名的特性就是双向绑定。即数据流可以自动的从视图更新到数…

    Vue 2023年5月27日
    00
  • JS实现的input选择图片本地预览功能示例

    下面我将为你详细讲解JS实现的input选择图片本地预览功能的攻略。 简介 JS实现的input选择图片本地预览功能,顾名思义,就是可以通过JS代码来实现input表单中选择图片后,在本地预览图片的功能。这类功能一般可以用在上传头像、上传图片等场景中。 过程 下面,我将带你一步步实现这个功能。 第一步:HTML结构 首先,我们需要编写HTML结构,代码如下:…

    Vue 2023年5月28日
    00
  • Vue通知提醒框(Notification)图文详解

    Vue通知提醒框(Notification)图文详解 一、概述 Vue通知提醒框(Notification)可以让你在后台处理各种异步任务时,及时通知前端用户,提高用户体验度。Vue全家桶中有很多Notification组件可用,例如ElementUI组件库中的Notification组件等。 一般来说,Vue通知提醒框需要满足以下要求: 有核心功能如:消息…

    Vue 2023年5月28日
    00
  • vue-test-utils初使用详解

    Vue Test Utils初使用详解 Vue Test Utils是Vue.js官方提供的用于单元测试Vue.js组件的工具库。它提供的API可以让我们在测试组件时模拟真实的DOM操作和用户交互,并且能够很好地集成到常见的JavaScript测试工具中。本文将详细讲解Vue Test Utils的初步使用,希望能够帮助你更好地编写Vue.js组件的单元测试…

    Vue 2023年5月28日
    00
  • 动态加载权限管理模块中的Vue组件

    动态加载权限管理模块中的Vue组件可以分为以下几个步骤: 1. 在项目中定义Vue组件 首先需要在项目中定义需要动态加载的Vue组件,这个组件可以定义在任何一个.vue文件中,比如我们定义了一个组件叫做PermissionSetting.vue。 <template> <div> <!– 组件代码 –> </di…

    Vue 2023年5月28日
    00
  • Vue中接收二进制文件流实现pdf预览的方法

    要在Vue中接收二进制文件流实现pdf预览,需要考虑以下几个步骤: 发送请求获取二进制文件流 首先,需要使用Vue的异步请求库,例如axios,发送获取二进制文件流的请求。请求返回的数据类型是一个arraybuffer,需要注意设置responseType为arraybuffer。 示例代码: axios.get(‘http://example.com/fi…

    Vue 2023年5月28日
    00
  • Vue.js每天必学之Class与样式绑定

    Vue.js是一款非常流行的JavaScript框架,其拥有简单易用的API和灵活的数据绑定机制。其中,Class与样式绑定也是Vue.js开发中不可或缺的一部分。下面,我将介绍Vue.js每天必学之Class与样式绑定的详细攻略。 Class绑定 Vue.js中Class绑定的主要作用是用于动态地改变元素的class属性。在HTML中,元素的class属性…

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