一、预备知识

1. JS面向对象

  • 特点:ES5之前用构造函数方式,构造函数就是一个普通函数,它的函数名大写。
  • 构造函数的问题:方法不会提升至构造函数内,而是每创建一个对象,就要把那个方法保存在每个对象中。

① 不常用写法

  1. function Person(name, age){
  2. this.name = name;
  3. this.age = age; // self.age = age
  4. // 把这个方法保存在每个对象中
  5. this.sayHi = function(){
  6. console.log('hello world!');
  7. }
  8. }
  9. // 使用new关键字创建对象
  10. let men = new Person('alex', 18)
  11. men.sayHi() // hello world!

② 原型方式

  1. function Person(name, age){
  2. this.name = name;
  3. this.age = age; // self.age = age
  4. }
  5. // 给构造函数的原型绑定方法,所有对象都它
  6. Person.prototype,sayHi = function(){console.log('hello world!')}
  7. let men = new Person('alex', 18)
  8. // 对象找属性或方法(1)先找自己 (2)找不到就往上找它的原型

③ this参数问题

  1. // 谁调用的这个方法 this就指向谁 this->self
  2. Person.prototype,sayHi = function(){console.log(this.name,'hello world!')}

④ ES6中写法

  1. class Point{
  2. constructor(x, y){
  3. this.x = x;
  4. this.y = y;
  5. } // 不要加逗号
  6. toString(){
  7. return `(${this.x}, ${this.y})`;
  8. }
  9. }
  10. let p = new Point(10, 20);
  11. console.log(p.x)
  12. p.toString();

⑤ 补充知识:为js中String原型绑定一个sb方法;后续所有此类对象都拥有此方法

  1. String.prototype.sb = function(){console.log('hello')}
  2. 'alex'.sb() // hello

2. Promise对象

  • promise主要针对处理异步编程更方便处理,阅读。防止回调函数一直往右写
  • promise写法
    • promise对象多用于表示一个异步操作,① .then() 当异步操作成功之后会做的事 ②catch(error) 当异步操作出错的时候做的事
  1. $.ajax({
  2. url: '/books/',
  3. type: 'get',
  4. })
  5. .then(function(){
  6. })
  7. .catch(function(error){
  8. })

二、axios

1. axios定义

​ 基于 promise 用于浏览器和 node.js 的 http 客户端;(https://www.kancloud.cn/yunye/axios/234845

2. 特点

  • 支持浏览器和node.js
  • 支持promise
  • 能拦截请求和响应
  • 能转换请求和响应数据
  • 能取消请求
  • 自动转换json数据
  • 浏览器端支持防止CSRF(跨站请求伪造)

3. 安装

(1) npm安装
  1. $ npm install axios
(2) cdn引入
  1. <script src="https://unpkg.com/axios/dist/axios.min.js"></script>

4. 例子

(1) 发送Get请求
  1. axios.get('/user?ID=12345')
  2. .then(function (response) {
  3. console.log(response);
  4. })
  5. .catch(function (error) {
  6. console.log(error);
  7. });
  8. // Optionally the request above could also be done as
  9. axios.get('/user', {
  10. params: {
  11. ID: 12345
  12. }
  13. })
  14. .then(function (response) {
  15. console.log(response);
  16. })
  17. .catch(function (error) {
  18. console.log(error);
  19. });
(2) 发送Post请求
  1. axios.post('/user', {
  2. firstName: 'Fred',
  3. lastName: 'Flintstone'
  4. })
  5. .then(function (response) {
  6. console.log(response);
  7. })
  8. .catch(function (error) {
  9. console.log(error);
  10. });
(3) axios默认路由前缀
  1. Axios.defaults.baseURL = 'https://www.luffycity.com/api/v1';

10. Vue - axios的更多相关文章

  1. 10. vue axios 请求未完成时路由跳转报错问题

    axios 请求未完成时路由跳转报错问题 前两天项目基本功能算是完成了,在公司测试时遇到了遇到了一个问题,那就是在请求未完成时进行路由跳转时会报错,想了几种办法来解决,例如加loading,请求拦截, ...

  2. vue+axios+elementUI文件上传与下载

    vue+axios+elementUI文件上传与下载 Simple_Learn 关注  0.5 2018.05.30 10:20 字数 209 阅读 15111评论 4喜欢 6 1.文件上传 这里主要 ...

  3. vue axios 取消上次请求

    axios.defaults.timeout = 1000 * 5axios.defaults.baseURL = baseUrlvar CancelToken = axios.CancelToken ...

  4. vue axios拦截器 + 自编写插件 实现全局 loading 效果;

    项目需求:用自定义的 .gif 图标实现全局 loading 效果:为避免在每个页面手动添加,且简单高效的实现,经查阅资料,最终采用了 vue axios拦截器 + 自编写 loading 插件:下面 ...

  5. vue axios使用form-data的形式提交数据的问题

    vue axios使用form-data的形式提交数据vue axios request payload form data由于axios默认发送数据时,数据格式是Request Payload,而并 ...

  6. VUE AXIOS 跨域问题

    背景: 后台跨域使用通配符:context.Response.Headers.Add("Access-Control-Allow-Origin", "*"); ...

  7. vue axios 总结篇

    1.npm --save 和 --save-dev 有什么区别 发布到线上的叫生产环境~,在本地开发的时候叫开发环境,--save就是会打包到线上去并且在线上环境能用到的,比如你npm install ...

  8. 基于Vue + axios + WebApi + NPOI导出Excel文件

    一.前言 项目中前端采用的Element UI 框架, 远程数据请求,使用的是axios,后端接口框架采用的asp.net webapi,数据导出成Excel采用NPOI组件.其业务场景,主要是列表页 ...

  9. vue+axios新手实践实现登陆

    vue+axios新手实践实现登陆 https://segmentfault.com/a/1190000015201803 增加 利用HTML5的history.replacestate()修改当前页 ...

随机推荐

  1. Python必学之编译器用哪个好?你用错了吧!

    学python要知道怎么用好编译器.当我们编写Python代码时,我们得到的是一个包含Python代码的以.py为扩展名的文本文件.要运行代码,就需要Python解释器去执行.py文件由于整个Pyth ...

  2. Python3 网络编程基础1

    目录 开发架构 C/S架构 B/S架构 OSI模型 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 TCP协议 socket 开发架构 C/S架构 client 和 server, 既客户 ...

  3. 重新精读《Java 编程思想》系列之类的访问权限

    Java 中,我们用访问权限修饰词确定库中的哪些类对于使用者是可以使用的. 访问权限修饰词有 public,protected,private 和什么都不写. 那么对于类来说,我们只可以用 publi ...

  4. Linux服务器部署.Net Core笔记:六、安装MySQL

    接下来我们在 Centos7 系统下使用 yum 命令安装 MySQL,需要注意的是 CentOS 7 版本中 MySQL数据库已从默认的程序列表中移除,所以在安装前我们需要先去官网下载 Yum 资源 ...

  5. 安装Visual Studio Code并汉化

    安装很简单,直接点击安装文件,然后一直点击next就可以了.这款软件是免费的,不需要破解. 下载地址 这里需要使用快捷键[Ctrl+Shift+P],在弹出的搜索框中输入[configure lang ...

  6. 松软科技Web课堂:JavaScript While 循环

    只要条件为 true,循环能够一直执行代码块. While 循环 while 循环会一直循环代码块,只要指定的条件为 true. 语法 while (条件) { 要执行的代码块 } 实例 在下面的例子 ...

  7. Oracle trunc函数的使用

    1. 对日期的操作 2. 对数字的操作 1.对日期的操作 /**************日期********************/ SELECT TRUNC(SYSDATE) FROM DUAL; ...

  8. render加载vue文件 vue-loader配置

    默认webpack无法打包.vue文件,需要安装相关Loader安装 npm install vue-loader vue-template-compiler -D webpack.config.js ...

  9. React的setState学习及应用

    React的setState学习及应用 一:作用: setState() 将对组件 state 的更改排入队列,并通知 React 需要使用更新后的 state 重新渲染此组件及其子组件.这是用于更新 ...

  10. 【UR #6】懒癌

    Problem Description 你绞尽脑汁也没有解开智商锁给的迷题,只见哐地一下门就开了:"您与锁的主人智商一致." 于是你们窃取了大量内部资料,最后端掉了 \(IIIS\ ...