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 第三章章节总结的例子
Mar 23 Javascript
JS实现表单中checkbox对勾选中增加边框显示效果
Aug 21 Javascript
Node.js 应用跑得更快 10 个技巧
Apr 03 Javascript
jquery 无限极下拉菜单的简单实例(精简浓缩版)
May 31 Javascript
微信小程序 教程之引用
Oct 18 Javascript
浅谈JS中String()与 .toString()的区别
Oct 20 Javascript
JavaScript实现鼠标点击导航栏变色特效
Feb 08 Javascript
浅谈vue中.vue文件解析流程
Apr 24 Javascript
Intellij IDEA搭建vue-cli项目的方法步骤
Oct 20 Javascript
vue实现将一个数组内的相同数据进行合并
Nov 07 Javascript
JavaScript console的使用方法实例分析
Apr 28 Javascript
vue+elementUI实现表格列的显示与隐藏
Apr 13 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获取网络文件的实现代码
2010/01/01 PHP
[原创]PHP获取数组表示的路径方法分析【数组转字符串】
2017/09/01 PHP
让你的网站可编辑的实现js代码
2009/10/19 Javascript
(function($){...})(jQuery)的意思
2010/07/22 Javascript
我的Node.js学习之路(三)--node.js作用、回调、同步和异步代码 以及事件循环
2014/07/06 Javascript
jQuery实现菜单式图片滑动切换
2015/03/14 Javascript
JS中生成随机数的用法及相关函数
2016/01/09 Javascript
JS遍历页面所有对象属性及实现方法
2016/08/01 Javascript
微信小程序开发探究
2016/12/27 Javascript
BootStrapTable 单选及取值的实现方法
2017/01/10 Javascript
slideToggle+slideup实现手机端折叠菜单效果
2017/05/25 Javascript
axios中cookie跨域及相关配置示例详解
2017/12/20 Javascript
浅谈redux以及react-redux简单实现
2018/08/28 Javascript
详解mpvue小程序中怎么引入iconfont字体图标
2018/10/01 Javascript
如何优雅地在vue中添加权限控制示例详解
2019/03/07 Javascript
微信小程序实现下拉框功能
2019/07/16 Javascript
vue3 源码解读之 time slicing的使用方法
2019/10/31 Javascript
简单了解vue 插值表达式Mustache
2020/07/22 Javascript
Python随机生成数据后插入到PostgreSQL
2016/07/28 Python
python在文本开头插入一行的实例
2018/05/02 Python
Python将list中的string批量转化成int/float的方法
2018/06/26 Python
tensorflow saver 保存和恢复指定 tensor的实例讲解
2018/07/26 Python
python开发之anaconda以及win7下安装gensim的方法
2019/07/05 Python
python中class的定义及使用教程
2019/09/18 Python
python 哈希表实现简单python字典代码实例
2019/09/27 Python
vim自动补全插件YouCompleteMe(YCM)安装过程解析
2019/10/21 Python
Python如何定义有可选参数的元类
2020/07/31 Python
Python调用飞书发送消息的示例
2020/11/10 Python
python的scipy.stats模块中正态分布常用函数总结
2021/02/19 Python
使用CSS3来实现滚动视差效果的教程
2015/08/24 HTML / CSS
英国著名的药妆网站:Escentual
2016/07/29 全球购物
在对linux系统分区进行格式化时需要对磁盘簇(或i节点密度)的大小进行选择,请说明选择的原则
2012/11/24 面试题
初三英语教学计划
2015/01/23 职场文书
餐厅开业活动方案
2019/07/08 职场文书
导游词之吉林吉塔
2019/11/11 职场文书
JavaScript+HTML实现学生信息管理系统
2021/04/20 Javascript