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 相关文章推荐
基于jQuery的表格操作插件
Apr 22 Javascript
原生js的弹出层且其内的窗口居中
May 14 Javascript
jquery获取checkbox的值并post提交
Jan 14 Javascript
javascript简单比较日期大小的方法
Jan 05 Javascript
深入理解vuex2.0 之 modules
Nov 20 Javascript
微信小程序使用slider设置数据值及switch开关组件功能【附源码下载】
Dec 09 Javascript
Vue页面骨架屏的实现方法
May 22 Javascript
JS实现的Object数组去重功能示例【数组成员为Object对象】
Feb 01 Javascript
了解JavaScript中的选择器
May 24 Javascript
JS 遍历 json 和 JQuery 遍历json操作完整示例
Nov 11 jQuery
javascript中contains是否包含功能实现代码(扩展字符、数组、dom)
Apr 07 Javascript
JavaScript中的函数式编程详解
Aug 22 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截取字符串之截取utf8或gbk编码的中英文字符串示例
2014/03/12 PHP
PHP获取短链接跳转后的真实地址和响应头信息的方法
2014/07/25 PHP
yii2.0之GridView自定义按钮和链接用法
2014/12/15 PHP
ThinkPHP 模板substr的截取字符串函数详解
2017/01/09 PHP
JS 实现Table相同行的单元格自动合并示例代码
2013/08/27 Javascript
jquery单选框radio绑定click事件实现方法
2015/01/14 Javascript
jquery事件的ready()方法使用详解
2015/11/11 Javascript
Bootstrap弹出带合法性检查的登录框实例代码【推荐】
2016/06/23 Javascript
bootstrap模态框跳转到当前模板页面 框消失了而背景存在问题的解决方法
2020/11/30 Javascript
Bootstrap Table使用整理(二)
2017/06/09 Javascript
基于Vue2.X的路由和钩子函数详解
2018/02/09 Javascript
详解微信小程序-canvas绘制文字实现自动换行
2019/04/26 Javascript
在vue中使用防抖函数组件操作
2020/07/26 Javascript
ant-design-vue中tree增删改的操作方法
2020/11/03 Javascript
python实现list元素按关键字相加减的方法示例
2017/06/09 Python
python3使用smtplib实现发送邮件功能
2018/05/22 Python
详解多线程Django程序耗尽数据库连接的问题
2018/10/08 Python
Python GUI编程 文本弹窗的实例
2019/06/11 Python
Python3之不使用第三方变量,实现交换两个变量的值
2019/06/26 Python
selenium 多窗口切换的实现(windows)
2020/01/18 Python
手把手教你将Flask应用封装成Docker服务的实现
2020/08/19 Python
基于Python正确读取资源文件
2020/09/14 Python
TensorFlow的环境配置与安装方法
2021/02/20 Python
python如何发送带有附件、正文为HTML的邮件
2021/02/27 Python
HTML5网页录音和上传到服务器支持PC、Android,支持IOS微信功能
2019/04/26 HTML / CSS
JAVA代码查错题
2014/10/10 面试题
Python如何实现单例模式
2016/06/03 面试题
教师队伍管理制度
2014/01/14 职场文书
农民致富事迹材料
2014/01/23 职场文书
团委书记的竞聘演讲稿
2014/04/24 职场文书
群众路线教育实践活动个人对照检查材料思想汇报(社区班子)
2014/10/06 职场文书
群众路线教育实践活动学习笔记
2014/11/05 职场文书
2014年高数考试作弊检讨书
2014/12/14 职场文书
2015年元旦主持词开场白
2014/12/14 职场文书
新闻稿件写作范文
2015/07/18 职场文书
Python实现日志实时监测的示例详解
2022/04/06 Python