赞
踩
在上篇文章中介绍了如何从零开始,搭建一个vue2项目,感兴趣可移步:搭建一个vue2项目-CSDN博客
但大多数项目中都会涉及到接口请求,本次就以实际项目说明,如何在vue2项目中使用axios封装接口请求。
1、在项目中的src目录下新建一个utils文件夹,在该文件夹下新建request.js文件,在项目中端输入命令行安装axios依赖
npm install axios
或使用yarn安装
yarn add axios
2、request.js文件内容如下
- import axios from 'axios' //引入axios
-
- const baseURL = 'http://XXX.XXX.XXX' + '/api' //项目访问的地址和前缀
-
- //创建一个新的axios实例
- const service = axios.create({
- baseURL: baseURL,
- timeout: 20000 //设置超时时间,超过该时间就不会发起请求
- })
-
- // 请求拦截器,在发送请求前要做的事,例如设置请求头,统一的请求参数等
- service.interceptors.request.use(
- config => {
- config.headers = {
- }
- return config
- },
- error => {
- console.log(error)
- return Promise.reject(error)
- })
-
- // 响应拦截器,对请求后等到响应的数据进行处理
- service.interceptors.response.use(
- response => {
- // 请求成功处理
- },
- error => {
- // 请求失败处理
- }
- )
-
- // 对外暴露
- export default service
3、在src目录下创建api文件夹 ,用于存放各页面需要请求的接口,例如有一个数据展示页面名称为dataDisplay,那么我们如图所示添加文件
dataDisplay.js文件中的内容如下:
- // 引入封装的request.js文件
- import request from '@/utils/request'
-
- // 查询-get类型
- export function dataDisplayList(data) {
- return request({
- url: '/dataDisplay/list',
- method: 'get',
- params: data
- })
- }
-
- // 新增-post类型
- export function dataDisplayAdd(data) {
- return request({
- url: '/dataDisplay/add',
- method: 'post',
- data
- })
- }
-
- // 删除-delete类型
- export function dataDisplayDelete(id) {
- return request({
- url: `/dataDisplay/delete/${id}`,
- method: 'delete'
- })
- }
4、在页面中使用
- <template>
- <div class="dataDisplay">
- // 页面内容
- </div>
- </template>
-
- <script>
- // 引入接口,引入路径按项目实际情况而定
- import {
- dataDisplayList,
- dataDisplayAdd,
- dataDisplayDelete } from "@/api/dataDisplay/dataDisplay";
-
- export default {
- name:"dataDisplay",
- data() {
- return {
- tableData: [],
- }
- },
- created() {
- this.getDataDisplayList();
- },
- methods: {
- // 获取数据
- getDataDisplayList(){
- let params = { ... } //参数
- dataDisplayList(params).then(res => {
- if(res.code == 200){
- this.tableData = res.rows
- }
- })
- },
-
- // 新增
- handleAdd(){
- let data = { ... } //参数
- dataDisplayAdd(data).then(res => {
- if(res.code == 200){
- // 新增成功处理
- }else{
- // 新增失败处理
- }
- })
- },
-
- // 删除
- handleDelete(){
- let data = { ... } //参数
- dataDisplayDelete(data).then(res => {
- if(res.code == 200){
- // 删除成功处理
- }else{
- // 删除失败处理
- }
- })
- },
- }
- }
- </script>
到此封装完成,可以在项目中请求接口拿到数据。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。