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中用星号表示预录入内容的实现代码
Jan 08 Javascript
5个最佳的Javascript日期处理类库分享
Apr 15 Javascript
createTextRange()的使用示例含文本框选中部分文字内容
Feb 24 Javascript
Vue响应式添加、修改数组和对象的值
Mar 20 Javascript
推荐三款日期选择插件(My97DatePicker、jquery.datepicker、Mobiscroll)
Apr 21 jQuery
React-router中结合webpack实现按需加载实例
May 25 Javascript
angular.extend方法的具体使用
Sep 14 Javascript
详解利用 Express 托管静态文件的方法
Sep 18 Javascript
原生JS上传大文件显示进度条 php上传文件代码
Mar 27 Javascript
Vue中使用Sortable的示例代码
Apr 07 Javascript
ES6知识点整理之Proxy的应用实例详解
Apr 16 Javascript
Javascript地址引用代码实例解析
Feb 25 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
ThinkPHP中pathinfo的访问模式、路径访问模式及URL重写总结
2014/08/23 PHP
thinkphp模板继承实例简述
2014/11/26 PHP
php随机获取金山词霸每日一句的方法
2015/07/09 PHP
php查询内存信息操作示例
2019/05/09 PHP
Laravel框架中缓存的使用方法分析
2019/09/06 PHP
HTML5如何适配 iPhone IOS 底部黑条
2021/03/09 HTML / CSS
js中的escape及unescape函数的php实现代码
2007/09/04 Javascript
javascript学习笔记(十三) js闭包介绍(转)
2012/06/20 Javascript
Js四则运算函数代码
2012/07/21 Javascript
JavaScript实现简单获取当前网页网址的方法
2015/11/09 Javascript
jQuery实现三级菜单的代码
2016/05/09 Javascript
聊一聊JS中this的指向问题
2016/06/17 Javascript
VUE axios上传图片到七牛的实例代码
2017/07/28 Javascript
nodejs操作mongodb的增删改查功能实例
2017/11/09 NodeJs
浅谈Vue-cli单文件组件引入less,sass,css样式的不同方法
2018/03/13 Javascript
VUE-Table上绑定Input通过render实现双向绑定数据的示例
2018/08/27 Javascript
vue中的计算属性实例详解
2018/09/19 Javascript
jQuery Ajax实现Select多级关联动态绑定数据的实例代码
2018/10/26 jQuery
vue中配置scss全局变量的步骤
2020/12/28 Vue.js
使用Python编写一个简单的tic-tac-toe游戏的教程
2015/04/16 Python
使用Python的Scrapy框架编写web爬虫的简单示例
2015/04/17 Python
用python制作游戏外挂
2018/01/04 Python
python RabbitMQ 使用详细介绍(小结)
2018/11/08 Python
Appium+Python自动化测试之运行App程序示例
2019/01/23 Python
python中bs4.BeautifulSoup的基本用法
2019/07/27 Python
更新pip3与pyttsx3文字语音转换的实现方法
2019/08/08 Python
浅析Python的命名空间与作用域
2020/11/25 Python
伦敦最有品味的百货:Liberty London
2016/11/12 全球购物
美国购买新书和二手书网站:Better World Books
2018/10/31 全球购物
澳大利亚厨房和家用电器购物网站:Bing Lee
2021/01/11 全球购物
3个CCIE对一个工程师的面试题
2012/05/06 面试题
2014年化验员工作总结
2014/11/18 职场文书
车间统计员岗位职责
2015/04/14 职场文书
在校证明模板
2015/06/17 职场文书
职工食堂管理制度
2015/08/06 职场文书
财务人员入职担保书
2015/09/22 职场文书