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 相关文章推荐
摘自启点的main.js
Apr 20 Javascript
Jquery之美中不足小结
Feb 16 Javascript
JavaScript按位运算符的应用简析
Feb 04 Javascript
JavaScript onkeypress事件入门实例(按下或按住一个键盘按键)
Oct 17 Javascript
PHP中CURL的几个经典应用实例
Jan 23 Javascript
JavaScript实现点击文字切换登录窗口的方法
May 11 Javascript
【JS+CSS3】实现带预览图幻灯片效果的示例代码
Mar 17 Javascript
Bootstrap Img 图片样式(推荐)
Dec 13 Javascript
node.js 核心http模块,起一个服务器,返回一个页面的实例
Sep 11 Javascript
Vue 仿QQ左滑删除组件功能
Mar 12 Javascript
Js实现复选框的全选、全不选反选功能代码实例
Feb 28 Javascript
javascript实现图片轮换动作方法
Aug 07 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编程最快明白》第三讲:php数组
2010/11/01 PHP
php 判断数组是几维数组
2013/03/20 PHP
php使浏览器直接下载pdf文件的方法
2013/11/15 PHP
php缓冲 output_buffering和ob_start使用介绍
2014/01/30 PHP
php同时使用session和cookie来保存用户登录信息的实现代码
2016/05/13 PHP
PHP生成短网址方法汇总
2016/07/12 PHP
PHP 中 var_export、print_r、var_dump 调试中的区别
2018/06/19 PHP
为指定元素增加样式的js代码
2009/12/09 Javascript
Javascript技巧之不要用for in语句对数组进行遍历
2010/10/20 Javascript
二叉树先序遍历的非递归算法具体实现
2014/01/09 Javascript
Node.js实现简单聊天服务器
2014/06/20 Javascript
复制网页内容,粘贴之后自动加上网址的实现方法(脚本之家特别整理)
2014/10/16 Javascript
JavaScript插件化开发教程 (四)
2015/01/27 Javascript
js如何准确获取当前页面url网址信息
2020/09/13 Javascript
js仿拉勾网首页穿墙广告效果
2017/03/08 Javascript
微信公众号菜单配置微信小程序实例详解
2017/03/31 Javascript
Vue 组件传值几种常用方法【总结】
2018/05/28 Javascript
Vue实现表格中对数据进行转换、处理的方法
2018/09/06 Javascript
Vue+element+cookie记住密码功能的简单实现方法
2020/09/20 Javascript
[01:31](回顾)杀出重围,决战TI之巅
2014/07/01 DOTA
Python代码调试的几种方法总结
2015/04/15 Python
详解Python网络爬虫功能的基本写法
2016/01/28 Python
基于Python __dict__与dir()的区别详解
2017/10/30 Python
Python中property属性实例解析
2018/02/10 Python
python3.6 tkinter实现屏保小程序
2019/07/30 Python
Python+pyftpdlib实现局域网文件互传
2020/08/24 Python
Python使用xpath实现图片爬取
2020/09/16 Python
CSS3中的clip-path使用攻略
2015/08/03 HTML / CSS
详解canvas多边形(蜘蛛图)的画法示例
2018/01/29 HTML / CSS
质检部经理岗位职责
2014/02/19 职场文书
节约每一滴水演讲稿
2014/09/09 职场文书
2014年残疾人工作总结
2014/12/06 职场文书
优秀少先队员事迹材料
2014/12/24 职场文书
琅琊山导游词
2015/02/05 职场文书
酒店辞职书怎么写
2015/02/26 职场文书
python Tkinter的简单入门教程
2021/04/11 Python