Vue2.5 旅游项目实例6 首页-推荐区域组件
还是在远程创建分支 :index-recommend
拉到本地并切换分支:
git pull
git checkout index-recommend
在home\components目录下新建Icons.vue文件,
然后在Home.vue文件中引用:
<template> <div> <home-header></home-header> <home-swiper></home-swiper> <home-icons></home-icons> <home-recommend></home-recommend> </div> </template> <script> import HomeHeader from './components/Header' import HomeSwiper from './components/Swiper' import HomeIcons from './components/Icons' import HomeRecommend from './components/Recommend' export default { name: 'Home', components: { HomeHeader, HomeSwiper, HomeIcons, HomeRecommend }, data () { return { } } } </script>
在Icons.vue中添加样式:
.icons >>> .swiper-containter
width: 100%
height:0
padding-bottom: 50%
.icons
margin-top: .1rem
继续编辑Recommend.vue文件:
<template> <div> <div class="title">热销推荐</div> <ul> <li class="item border-bottom"> <img class="item-img" src="https://imgs.qunarzz.com/sight/p0/1708/2b/2b3b94de99c0a425a3.img.jpg_200x200_2458ffb2.jpg" alt="" /> <div class="item-info"> <p class="item-title">北京-东京 5天跟团游</p> <p class="item-desc">欢乐畅想 东京+横滨+富士山+镰仓+江之岛神社</p> <button class="item-button">查看详情</button> </div> </li> </ul> </div> </template> <script> export default { name: 'HomeRecommend', data () { return { } } } </script> <style lang="stylus" scoped> @import '~styles/mixins.styl' .title margin-top: .2rem line-height: .8rem background: #eee text-indent: .2rem .item display:flex height: 1.9rem overflow: hidden .item-img width :1.7rem height 1.7rem padding:.1rem .item-info flex: 1 padding:.1rem min-width: 0 // 子集的文字超出隐藏 .item-title line-height:.54rem font-size: .32rem ellipsis() .item-desc line-height:.4rem font-size: .28rem color:#ccc ellipsis() .item-button line-height: .44rem margin-top: .16rem background: #ff9300 color: #fff padding: 0 .2rem border-radius: .06rem </style>
此时可以显示一条推荐信息,下面开始定义循环:
<template> <div> <div class="title">热销推荐</div> <ul> <li class="item border-bottom" v-for="item in recommendList" :key="item.id"> <img class="item-img" :src="item.imgUrl" alt="" /> <div class="item-info"> <p class="item-title">{{item.title}}</p> <p class="item-desc">{{item.desc}}</p> <button class="item-button">查看详情</button> </div> </li> </ul> </div> </template> <script> export default { name: 'HomeRecommend', data () { return { recommendList: [ { id: '0001', imgUrl: 'https://imgs.qunarzz.com/sight/p0/1708/2b/2b3b94de99c0a425a3.img.jpg_200x200_2458ffb2.jpg', title: '北京-东京 5天跟团游', desc: '欢乐畅想 东京+横滨+富士山+镰仓+江之岛神社' }, { id: '0002', imgUrl: 'https://imgs.qunarzz.com/sight/p0/1708/2b/2b3b94de99c0a425a3.img.jpg_200x200_2458ffb2.jpg', title: '尼泊尔9晚10天', desc: '悬崖酒店+超视觉两大歌舞+京津冀免费联运+骑大象' }, { id: '0003', imgUrl: 'https://imgs.qunarzz.com/sight/p0/1708/2b/2b3b94de99c0a425a3.img.jpg_200x200_2458ffb2.jpg', title: '【家庭游】升级碧桂园', desc: '张家界国家森林公园天门山玻璃桥凤凰双飞6日丨赠魅力湘西' } ] } } } </script>
效果图: