需求说明:
- 完成网易健康页面的基本布局。
- 在生命周期函数created()中使用Axios请求“网易健康”数据,数据为本地模拟的数据,详见health.json文件。
health.json文件:
链接: https://pan.baidu.com/s/1ofnvp0ncQikVloSmcgueOA?pwd=dhrg
提取码: dhrg
- 遍历渲染显示“网易健康”接口数据到页面中,页面效果如图。
实现过程:
在项目下安装axios:
npm i axios
- 将health.json文件放到static文件夹下。
- 在main.js中引入axios,并将axios挂载到vue原型。
import axios from 'axios'
// 只能把axios挂载到vue的原型上
Vue.prototype.$axios = axios;
在HelloWorld.vue中使用axios调用本地模拟的health.json数据。HelloWorld.vue代码如下:
<template>
<div class="hello">
<h1>{{ msg }}</h1>
<ul class="img">
<li v-for="(item,index) in newsList" :key="index"><img :src=item.image /></li>
<!-- <li><img src="@/assets/jk.jpg"/></li>
<li><img src="../assets/jk.jpg"/></li>
<li><img src="../assets/jk.jpg"/></li> -->
</ul>
<ul class="txt">
<li v-for="(item,index) in newsList" :key="index">{{item.title}}</li>
<!-- <li>夏季如何调养呼吸道疾病?</li>
<li>夏季如何调养呼吸道疾病?</li>
<li>夏季如何调养呼吸道疾病?</li> -->
</ul>
</div>
</template>
<script>
export default {
name: 'HelloWorld',
data () {
return {
msg: '网易健康',
newsList:[]
}
},
mounted() {
// 调用后台接口获得数据
this.$axios.get(
"../../static/health.json"
)
.then(res => {
// then()中如果只传入一个处理函数,那么默认是处理请求成功的情况
// 打印后台获得的结果
// console.log(res.data);
this.newsList = res.data.slice(0,4);//只获取json数组数据的前4条数据
})
.catch(err => {
// 未获得成功之后的报错信息
console.log(err);
});
}
}
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
*{
margin:0;
padding:0;
}
.hello{
width: 1000px;
}
h1{
font-weight: normal;
font-size: 18px;
width:980px;
padding-left: 15px;
height: 35px;
line-height: 35px;
background:#FFE4B5;
margin-bottom: 20px;
}
.img li{
float: left;
margin-right: 10px;
list-style: none;
}
.img img{
width: 240px;
}
.txt li{
float: left;
width: 240px;
margin-right: 10px;
font-size: 14px;
text-align: center;
list-style: none;
}
</style>
到此这篇关于vue结合Axios+v-for列表循环实现网易健康页面的文章就介绍到这了,更多相关vue网易健康页面内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!