首先需要知道:axios不是一种新的技术。
axios 是一个基于nodejs中的Promise 用于浏览器 的 HTTP 客户端的异步通信框架,本质上也是对原生XHR的封装实现ajax异步通信,只不过它是Promise的实现版本,符合最新的ES规范,有以下特点:
GitHub:https://github.com/axios/axios 中文文档:http:/www.axios-js.com/
为什么要使用Axios
由于vue.js是一个视图晨框架并且作者(尤雨溪)严格准守SoC(关注度分离原则),所以vue.js并不包含AJAX的通信功能,为了解决通信问题,作者单独开发了一个名为vue-resource的插件,不过在进入2.0版本以后停止了对该插件的维护并推荐了Axios框架。少用jQuery,因为它操作Dom太频繁!
{
"name":"zs",
"url": "http://baidu.com",
"address": {
"city":"北京"
},
"hower":[
{"option":"java"},
{"option":"python"},
{"option":"c++"},
{"option":"读书"}
]
}
说明:
1.在这里使用了 v-bind将a:href的属性值与Vue实例中的数据进行绑定
2.使用axios框架的get方法请求AJAX并自动将数据封装进了Vue实例的数据对象中
3.我们在data中的数据结构必须要和Ajax响应回来的数据格式匹配!
实例化Vue对象,没有真正渲染,加载时先出来模板,后渲染数据
编译模板把data对象里的数据和vue语法声明的模板编译成浏览器可读的HTML,data数据dom模板进行绑定
将编译好的HTML替换掉el属性所指向的dom,此时HTML替换实例中的el,数据渲染完毕
将编译完成的HTML挂载到对应虚拟dom时触发的钩子
编译好的HTML挂载到页面后,执行的事件钩此钩子函数中一般会做一些ajax请求获取数据进行数据初始化,(页面加载之前)
注意:mounted在整个实例中只执行一次
- 实时监控数据变化并随之更新DOM
- 拆除数据监听,子组件和事件监听