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 相关文章推荐
JavaScript和JQuery实用代码片段(一)
Apr 07 Javascript
编写自己的jQuery提示框(Tip)插件
Feb 05 Javascript
javascript中setAttribute()函数使用方法及兼容性
Jul 19 Javascript
JavaScript常用基础知识强化学习
Dec 09 Javascript
AngularJS中如何使用$http对MongoLab数据表进行增删改查
Jan 23 Javascript
JavaScript html5 canvas画布中删除一个块区域的方法
Jan 26 Javascript
JavaScript中apply方法的应用技巧小结
Sep 29 Javascript
详解JavaScript模块化开发
Dec 04 Javascript
JavaScript 函数的定义-调用、注意事项
Apr 16 Javascript
Vue项目全局配置页面缓存之按需读取缓存的实现详解
Aug 01 Javascript
JavaScript遍历数组的三种方法map、forEach与filter实例详解
Feb 27 Javascript
基于JS判断对象是否是数组
Jan 10 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网站基础优化方法小结
2008/09/29 PHP
php类中的$this,static,final,const,self这几个关键字使用方法
2015/12/14 PHP
万能的php分页类
2017/07/06 PHP
yii2.0框架多模型操作示例【添加/修改/删除】
2020/04/13 PHP
Thinkphp 框架扩展之驱动扩展实例分析
2020/04/27 PHP
jquery自动完成插件(autocomplete)应用之PHP版
2009/12/15 Javascript
jQuery动态添加、删除元素的方法
2014/01/09 Javascript
jquery实现滑屏大图定时收缩为小banner图片的广告代码
2015/09/02 Javascript
详解javascript实现自定义事件
2016/01/19 Javascript
纯JS实现可拖拽表单的简单实例
2016/09/02 Javascript
浅析JavaScript中的平稳退化(graceful degradation)
2017/07/24 Javascript
JavaScript实现职责链模式概述
2018/01/25 Javascript
对angularjs框架下controller间的传值方法详解
2018/10/08 Javascript
Vue.Draggable拖拽功能的配置使用方法
2020/07/29 Javascript
vue v-for直接循环数字实例
2019/11/07 Javascript
jQuery操作选中select下拉框的值代码实例
2020/02/07 jQuery
Vue axios获取token临时令牌封装案例
2020/09/11 Javascript
Openlayers实现地图全屏显示
2020/09/28 Javascript
[09:43]DOTA2每周TOP10 精彩击杀集锦vol.5
2014/06/25 DOTA
[01:33]DOTA2上海特级锦标赛 LIQUID战队完整宣传片
2016/03/16 DOTA
[04:40]DOTA2-DPC中国联赛1月26日Recap集锦
2021/03/11 DOTA
Python通过poll实现异步IO的方法
2015/06/04 Python
浅析Python 3 字符串中的 STR 和 Bytes 有什么区别
2018/10/14 Python
Python Selenium 之关闭窗口close与quit的方法
2019/02/13 Python
IDLE下Python文件编辑和运行操作
2020/04/25 Python
Python-opencv实现红绿两色识别操作
2020/06/04 Python
VELTRA台湾:世界自由行专家
2017/08/15 全球购物
上海奥佳笔试题面试题
2016/11/16 面试题
介绍一下常见的木马种类
2014/11/15 面试题
思想汇报范文
2013/11/04 职场文书
《李广射虎》教学反思
2014/04/27 职场文书
教师个人自我剖析材料
2014/09/29 职场文书
学生检讨书范文
2014/10/30 职场文书
北京颐和园导游词
2015/01/30 职场文书
基于PyQT5制作一个桌面摸鱼工具
2022/02/15 Python
 python中的元类metaclass详情
2022/05/30 Python