Axios 是 一个 开源的可以用在浏览器端和 NodeJS 的异步通信框架,它的主要作用就是实现AJAX异步通信,其功能特点如下:
XMLHttpRequests想使用 Axios 必须 先 调节 对 ES6 的 支持。




从上述图不难看出,数据的双向绑定,其实 跟 Mounted 脱不开关系,要是没有人家。是无法实现的。当然 没有 虚拟dom 也不行。
mounted() 是在 Mounted 之前执行的,并且它 只能执行一次,那么我们就可以 在 这里 发送异步请求,初始化一些 我们需要的数据。我们可以 选择 Axios。
为什么要使用 Axios由于 Vue.js 是 一个 视图层框架并且作者 (尤雨溪)严格准守 SoC (关注度分离原则),所以 Vue.js 并不包含 AJAX 的通信功能,为了解决通信问题,作者单独开发了一个名为 vue-resource 的插件,不过 进入 2.0 版本后,就停止了对 该从插件的维护,并且 还 推荐 使用 Axios 框架。。少用 jQuery。因为 jQuery 操作DOM 太频繁。
{
"name":"mqy",
"url": "http://ckacm.muquanyu.top/",
"page": "1",
"isNonProfit":"true",
"address": {
"street": "平东街道",
"city":"吉林四平",
"country": "中国"
},
"links": [
{
"name": "B站",
"url": "https://www.bilibili.com/"
},
{
"name": "4399",
"url": "https://www.4399.com/"
},
{
"name": "百度",
"url": "https://www.baidu.com/"
}
]
}

axios.get(请求的url).then(Response => {Response.data})
当然可以 直接 请求一个 资源,比如说 json 文件。也是可以的。返回的 这个 data,如果是 JSON 的话,它会 自动解析为 js 对象。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
/*解决 加载过慢 {{msg}} 的问题,它会在没加载出来之前 什么都不显示*/
[v-cloak] {
display: none;
}
</style>
</head>
<body>
<div id="vue" v-cloak>
{{info.name}}
<a v-bind:href="info.url">点我</a>
</div>
<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.13/vue.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/axios/0.27.2/axios.min.js"></script>
<script>
let vm = new Vue({
el: "#vue",
data(){
return {
info: {}
}
},
// data: {
// info:{}
// },
mounted(){ // 钩子函数 链式编程
axios.get('data.json').then(Response => {this.info = Response.data})
}
});
</script>
</body>
</html>

DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Titletitle>
<style>
/*解决 加载过慢 {{msg}} 的问题,它会在没加载出来之前 什么都不显示*/
[v-cloak] {
display: none;
}
style>
head>
<body>
<div id="vue" v-cloak>
{{info.name}}
<a v-bind:href="info.url">点我a>
div>
<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.13/vue.js">script>
<script src="https://cdn.bootcdn.net/ajax/libs/axios/0.27.2/axios.min.js">script>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js">script>
<script>
let vm = new Vue({
el: "#vue",
data(){
return {
info: {}
}
},
// data: {
// info:{}
// },
mounted(){ // 钩子函数 链式编程
$.get({
url: "data.json",
success: (res) => {
this.info = res;
}
})
}
});
script>
body>
html>