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 相关文章推荐
你的编程语言可以这样做吗?
Sep 07 Javascript
jquery关于页面焦点的定位(文本框获取焦点时改变样式 )
Sep 10 Javascript
Jquery 返回json数据在IE浏览器中提示下载的问题
May 18 Javascript
javascript图片滑动效果实现
Jan 28 Javascript
jqueryMobile 动态添加元素,展示刷新视图的实现方法
May 28 Javascript
getElementById().innerHTML与getElementById().value的区别
Oct 27 Javascript
JavaScript获取短信验证码(周期性)
Dec 29 Javascript
js实现登录与注册界面
Nov 01 Javascript
vue项目打包后怎样优雅的解决跨域
May 26 Javascript
vue移动端使用appClound拉起支付宝支付的实现方法
Nov 21 Javascript
Vue +WebSocket + WaveSurferJS 实现H5聊天对话交互的实例
Nov 18 Vue.js
vue封装数字翻牌器
Apr 20 Vue.js
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目录导航文件代码
2006/10/09 PHP
对于ThinkPHP框架早期版本的一个SQL注入漏洞详细分析
2014/07/04 PHP
YII Framework框架教程之缓存用法详解
2016/03/14 PHP
PHP的静态方法与普通方法用法实例分析
2019/09/26 PHP
Laravel-admin之修改操作日志的方法
2019/09/30 PHP
取得传值的函数
2006/10/27 Javascript
JS日历 推荐
2006/12/03 Javascript
基于jquery的防止大图片撑破页面的实现代码(立即缩放)
2011/10/24 Javascript
说说JSON和JSONP 也许你会豁然开朗
2012/09/02 Javascript
jQuery中校验时间格式的正则表达式小结
2013/09/22 Javascript
异步JavaScript编程中的Promise使用方法
2015/07/28 Javascript
网站发布后Bootstrap框架引用woff字体无法正常显示的解决方法
2016/11/24 Javascript
JS 插件dropload下拉刷新、上拉加载使用小结
2017/04/13 Javascript
使用Object.defineProperty如何巧妙找到修改某个变量的准确代码位置
2018/11/02 Javascript
Openlayers绘制聚合标注
2020/09/28 Javascript
antd日期选择器禁止选择当天之前的时间操作
2020/10/29 Javascript
[03:26]回顾2015国际邀请赛中国区预选赛
2015/06/09 DOTA
python实现2048小游戏
2015/03/30 Python
Python3.x版本中新的字符串格式化方法
2015/04/24 Python
Python 两个列表的差集、并集和交集实现代码
2016/09/21 Python
fastcgi文件读取漏洞之python扫描脚本
2017/04/23 Python
Python之dict(或对象)与json之间的互相转化实例
2018/06/05 Python
Win8.1下安装Python3.6提示0x80240017错误的解决方法
2018/07/31 Python
Django 过滤器汇总及自定义过滤器使用详解
2019/07/19 Python
爬虫代理池Python3WebSpider源代码测试过程解析
2019/12/20 Python
pyecharts绘制中国2020肺炎疫情地图的实例代码
2020/02/12 Python
css3发光搜索表单分享
2014/04/11 HTML / CSS
系统管理员的职责包括那些?管理的对象是什么?
2016/09/20 面试题
学生安全责任书
2014/04/15 职场文书
民生工作实施方案
2014/05/31 职场文书
田径运动会通讯稿
2014/09/13 职场文书
关于成绩下滑的自我检讨书
2014/09/20 职场文书
群众路线调研报告范文
2014/11/03 职场文书
2015秋季开学演讲稿范文
2015/07/16 职场文书
Python编写可视化界面的全过程(Python+PyCharm+PyQt)
2021/05/17 Python
python垃圾回收机制原理分析
2022/04/13 Python