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 相关文章推荐
我也种棵OO树JXTree[js+css+xml]
Apr 02 Javascript
javascript使用location.search的示例
Nov 05 Javascript
在AngularJS中使用AJAX的方法
Jun 17 Javascript
js与jQuery实现checkbox复选框全选/全不选的方法
Jan 05 Javascript
javascript函数中的3个高级技巧
Sep 22 Javascript
Angular.js实现注册系统的实例详解
Dec 18 Javascript
写给vue新手们的vue渲染页面教程
Sep 01 Javascript
Bootstrap modal只加载一次数据的解决办法(推荐)
Nov 24 Javascript
Vue组件创建和传值的方法
Aug 17 Javascript
layui时间控件选择时间范围的实现方法
Sep 28 Javascript
使用 Github Actions 自动部署 Angular 应用到 Github Pages的方法
Jul 20 Javascript
解决vue elementUI 使用el-select 时 change事件的触发问题
Nov 17 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
PHP中使用unset销毁变量并内存释放问题
2012/07/05 PHP
PHP中nowdoc和heredoc使用需要注意的一点
2014/03/21 PHP
PHP利用imagick生成组合缩略图
2016/02/19 PHP
PHP下的浮点运算不准的解决方法
2016/10/27 PHP
php mysql获取表字段名称和字段信息的三种方法
2016/11/13 PHP
tp5.1 框架路由操作-URL生成实例分析
2020/05/26 PHP
常用简易JavaScript函数
2009/04/09 Javascript
JavaScript入门之事件、cookie、定时等
2011/10/21 Javascript
前台js改变Session的值(用ajax实现)
2012/12/28 Javascript
JS打开层/关闭层/移动层动画效果的实例代码
2013/05/11 Javascript
win7下安装配置node.js+express开发环境
2015/12/06 Javascript
JavaScript操作HTML DOM节点的基础教程
2016/03/11 Javascript
BootStrap CSS全局样式和表格样式源码解析
2017/01/20 Javascript
简单实现js倒计时功能
2017/02/13 Javascript
基于ExtJs在页面上window再调用Window的事件处理方法
2017/07/26 Javascript
JQuery通过后台获取数据遍历到前台的方法
2018/08/13 jQuery
vue中过滤器filter的讲解
2019/01/21 Javascript
layui 数据表格复选框实现单选功能的例子
2019/09/19 Javascript
JavaScript修改注册表实例代码
2020/01/05 Javascript
es6函数中的作用域实例分析
2020/04/18 Javascript
Python 深入理解yield
2008/09/06 Python
Python 字符串操作方法大全
2014/03/11 Python
python利用正则表达式提取字符串
2016/12/08 Python
Python 3.8正式发布,来尝鲜这些新特性吧
2019/10/15 Python
python实现大学人员管理系统
2019/10/25 Python
python 定义类时,实现内部方法的互相调用
2019/12/25 Python
python爬虫爬取监控教务系统的思路详解
2020/01/08 Python
基于tensorflow __init__、build 和call的使用小结
2021/02/26 Python
CAT鞋英国官网:坚固耐用的靴子和鞋
2016/10/21 全球购物
好的演讲稿开场白
2013/12/30 职场文书
工作时间上网检讨书
2014/02/03 职场文书
四群教育工作实施方案
2014/03/26 职场文书
导游词之安徽九华山
2019/09/18 职场文书
超级实用!五步法则,教你写好年终工作总结
2019/12/05 职场文书
Python 文字识别
2022/05/11 Python