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


Posted in Javascript onJune 30, 2017

目前主流的 Vue 项目,都选择 axios 来完成 ajax 请求,而大型项目都会使用 Vuex 来管理数据。

前言:

使用 cnpm 安装 axios

cnpm install axios -S

安装其他插件的时候,可以直接在 main.js 中引入并 Vue.use(),但是 axios 并不能 use,只能每个需要发送请求的组件中即时

引入

为了解决这个问题,是在引入 axios 之后,修改原型链具体的实施请往下看~

 改写原型链

首先在 main.js 中引入 axios

import axios from 'axios'

这时候如果在其它的组件中,是无法使用 axios 命令的。但如果将 axios 改写为 Vue 的原型属性,就能解决这个问题

Vue.prototype.$ajax = axios

在 main.js 中添加了这两行代码之后,就能直接在组件的 methods 中使用 $ajax 命令

methods: {
 but_ajax() {
  this.$ajax({
   method: 'post',
   url: 'http://192.168.0.113:8080/llhb/m/requirement/allCategor',
   params: {          //需要发送的数据
    name: 'zhangwenwu2',
    age: '15'
   }
  })
  //请求成功后执行then     如果直接在里面访问 this,无法访问到 Vue 实例,this指向发生了变化。建议使用箭头函数,下面有讲
  .then(function (response) {
    console.log(response);  //处理后台返回的数据
   }) 
  //请求失败后执行catch
  .catch(function(err){
    console.log(err)
   })
}

附录:配置 axios

上面封装的方法中,使用了 axios 的三个配置项,实际上只有 url 是必须的,完整的 api 可以参考使用说明

为了方便,axios 还为每种方法起了别名,比如上面的 saveForm 方法等价于:

axios.post('/user', context.state.test02)

完整的请求还应当包括 .then 和 .catch

.then(function(res){
 console.log(res)
})
.catch(function(err){
 console.log(err)
})

当请求成功时,会执行 .then,否则执行 .catch

这两个回调函数都有各自独立的作用域,如果直接在里面访问 this,无法访问到 Vue 实例,this指向发生了变化。

这时只要添加一个 .bind(this) 就能解决这个问题,或者使用箭头函数即可

.then(function(res){
 console.log(this.data)
}.bind(this))

 .then((res) => {
 console.log(this.data)
})

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js 未结束的字符串常量错误解决方法
Jun 13 Javascript
基于jQuery的的一个隔行变色,鼠标移动变色的小插件
Jul 06 Javascript
JavaScript 设计模式 安全沙箱模式
Sep 24 Javascript
ANGULARJS中用NG-BIND指令实现单向绑定的例子
Dec 08 Javascript
每天一篇javascript学习小结(Boolean对象)
Nov 12 Javascript
JavaScript在网页中画圆的函数arc使用方法
Nov 13 Javascript
ES6中非常实用的新特性介绍
Mar 10 Javascript
提升页面加载速度的插件InstantClick
Sep 12 Javascript
基于vue cli重构多页面脚手架过程详解
Jan 23 Javascript
详解swiper在vue中的应用(以3.0为例)
Sep 20 Javascript
Vue 实现监听窗口关闭事件,并在窗口关闭前发送请求
Sep 01 Javascript
微信小程序之高德地图多点路线规划过程示例详解
Jan 18 Javascript
JS 组件系列之Bootstrap Table的冻结列功能彻底解决高度问题
Jun 30 #Javascript
MUI实现上拉加载和下拉刷新效果
Jun 30 #Javascript
js实现京东轮播图效果
Jun 30 #Javascript
jquery实现一个全局计时器(商城可用)
Jun 30 #jQuery
Vue和Bootstrap的整合思路详解
Jun 30 #Javascript
JavaScript原型继承_动力节点Java学院整理
Jun 30 #Javascript
JavaScript之排序函数_动力节点Java学院整理
Jun 30 #Javascript
You might like
PHP输出数组中重名的元素的几种处理方法
2012/09/05 PHP
php 备份数据库代码(生成word,excel,json,xml,sql)
2013/06/23 PHP
ThinkPHP CURD方法之where方法详解
2014/06/18 PHP
PHP实现批量检测网站是否能够正常打开的方法
2016/08/23 PHP
浅谈PHP各环境下的伪静态配置
2019/03/13 PHP
js 获取Listbox选择的值的代码
2010/04/15 Javascript
将查询条件的input、select清空
2014/01/14 Javascript
JS获取当前网页大小以及屏幕分辨率等
2014/09/05 Javascript
javascript关于继承的用法汇总
2014/12/20 Javascript
IE中鼠标经过option触发mouseout的解决方法
2015/01/29 Javascript
jQuery移动页面开发中的触摸事件与虚拟鼠标事件简介
2015/12/03 Javascript
用NODE.JS中的流编写工具是要注意的事项
2016/03/01 Javascript
Angular2 组件间通过@Input @Output通讯示例
2017/08/24 Javascript
关于vue单文件中引用路径的处理方法
2018/01/08 Javascript
node中的密码安全(加密)
2018/09/17 Javascript
详解mpvue小程序中怎么引入iconfont字体图标
2018/10/01 Javascript
vue无限轮播插件代码实例
2019/05/10 Javascript
详解关于表格合并span-method方法的补充(表格数据由后台动态返回)
2019/05/21 Javascript
使用异步controller与jQuery实现卷帘式分页
2019/06/18 jQuery
多种类型jQuery网页验证码插件代码实例
2021/01/09 jQuery
[01:06:07]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS CIS
2014/05/22 DOTA
windows环境下tensorflow安装过程详解
2018/03/30 Python
PyQt5笔记之弹出窗口大全
2019/06/20 Python
Python逐行读取文件内容的方法总结
2020/02/14 Python
关于python scrapy中添加cookie踩坑记录
2020/11/17 Python
幼儿园保育员辞职信
2014/01/12 职场文书
党的群众路线教育实践活动宣传方案
2014/02/23 职场文书
小学数学国培感言
2014/03/10 职场文书
党的群众路线教育学习材料
2014/05/12 职场文书
水利水电建筑施工应届生求职信
2014/07/04 职场文书
2014迎接教师节演讲稿
2014/09/10 职场文书
第二批党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
医院病假条范文
2015/08/17 职场文书
学校中层领导培训心得体会
2016/01/11 职场文书
sqlserver连接错误之SQL评估期已过的问题解决
2022/03/23 SQL Server
js基于div丝滑实现贝塞尔曲线
2022/09/23 Javascript