vue 的组件开发,以及swiper,axios的使用
父组件
<template>
<div>
<home-header :city="city"></home-header> //给子组件传递值
<home-swiper :list='swiperList'></home-swiper>
<home-icons :icons="iconList"></home-icons>
<home-recommend :list="recommendList"></home-recommend>
<home-weekend :list="weekendList"></home-weekend>
</div>
</template> <script>
import HomeHeader from './components/Header'
import HomeSwiper from './components/Swiper'
import HomeIcons from './components/Icons'
import HomeRecommend from './components/Recommend'
import HomeWeekend from './components/Weekend'
import axios from 'axios'
export default {
name: 'Home', components: {
HomeHeader,
HomeSwiper,
HomeIcons,
HomeRecommend,
HomeWeekend
},
data (){
return {
city:'',
swiperList:[],
iconList:[],
recommendList:[],
weekendList:[]
} },
methods:{
getHomeInfo(){
axios.get('/api/index.json')
.then(this.getHomeInfoSucc)
},
getHomeInfoSucc(res){
res=res.data;
if(res.res && res.data){
let data=res.data;
this.city =data.city;
this.swiperList = data.swiperList;
this.iconList = data.iconList;
this.recommendList = data.recommendList;
this.weekendList = data.weekendList;
}
}
},
mounted(){
this.getHomeInfo();
}
}
</script> <style> </style>
子组件
<template>
<div class="icons">
<swiper :options="swiperOption">//使用swiper插件
<swiper-slide v-for="(page,index) of pages" :key="index">
<div class="icon" v-for="item of page" :key="item.id">
<div class="iconImg" :key="item.id" >
<img :src="item.imgUrl" class="icon-img-content">
</div>
<p class="icon-desc">{{item.desc}}</p>
</div> </swiper-slide>
</swiper>
</div>
</template> <script>
export default {
name: 'HomeIcons',
props:{ //获取父组件传递的值
icons:Array
},
data (){
return {
swiperOption:{
autoplay:false
}
}
},
computed: {
pages () {
const pages = []
this.icons.forEach((item, index) => {
const page = Math.floor(index / 8)
if (!pages[page]) {
pages[page] = []
}
pages[page].push(item)
})
return pages
}
}
}
</script> <style lang="stylus" scoped>
@import '~styles/varibles.styl'
.icons{
height: 0;
padding-bottom: 50%;
overflow: hidden; }
.icon{
overflow: hidden;
height: 0;
width: 25%;
float: left;
padding-bottom: 25%;
position: relative;
}
.iconImg{
position: absolute;
top: 0;left: 0;right: 0;bottom: .44rem;
box-sizing: border-box;
padding:.05rem;
}
.icon-img-content{
display: block;
margin:0 auto;
height: 100%;
}
.icon-desc{
position: absolute;
left: 0;right: 0;bottom: 0;
height: .44rem;
line-height: .44rem;
color:$ftColor;
text-align: center;
}
</style>
vue 的组件开发,以及swiper,axios的使用的更多相关文章
- 基于VUE,VUX组件开发的网易新闻页面搭建过程
根据妙味课堂上的一个教程练习总结,供自己复习用 一.功能介绍 一个网易新闻客户端的浏览页面,通过网易新闻的api接口实时获取新闻数据,用vux搭建样式框架,以轮播图,文字滚动,图文列表等形式把内容展示 ...
- vue webuploader 组件开发
最近项目中需要用到百度的webuploader大文件的分片上传,对接后端的fastdfs,于是着手写了这个文件上传的小插件,步骤很简单,但是其中猜到的坑也不少,详细如下: 一.封装组件 引入百度提供的 ...
- 一个简单的Vue.js组件开发示例
//创建属于自己的vue组件库 (function(Vue, undefined) { Vue.component("my-component", { template: '< ...
- Vue (三) --- Vue 组件开发
------------------------------------------------------------------好心情,会让你峰回路转. 5. 组件化开发 5.1 组件[compo ...
- 【06】Vue 之 组件化开发
组件其实就是一个拥有样式.动画.js逻辑.HTML结构的综合块.前端组件化确实让大的前端团队更高效的开发前端项目.而作为前端比较流行的框架之一,Vue的组件和也做的非常彻底,而且有自己的特色.尤其是她 ...
- vue.js组件化开发实践
前言 公司目前制作一个H5活动,特别是有一定统一结构的活动,都要码一个重复的轮子.后来接到一个基于模板的活动设计系统的需求,便有了下面的内容.借油开车. 组件化 需求一到,接就是怎么实现,技术选型自然 ...
- 基于vue的新组件开发
前天完成了一个新组件的开发,做的过程也是各种遇到问题,彻底弄懂了slot,巩固了一些flex布局和jquery的知识,比起自己第一次做组件开发,现在已经是能够下手做,遇到问题解决问题,还算有进步. 但 ...
- 聊聊vue组件开发的“边界把握”和“状态驱动”
vue有着完整的组件化开发机制,但是官网只给了开发的方式,对于开发规范以及组件化开发的最佳实践,还需要我们来摸索.本文就平时开发中的经验来谈谈“把握边界”和“状态驱动”这两个话题. 边界把握 边界把握 ...
- 基于Vue全家桶开发的前端组件管理平台
项目背景 项目背景是外包类建站公司里,设计环节沉淀了大量可复用组件,设计师往往只需要微调组件就拼凑出页面,交付给前端,理论上这些组件在前端也可以复用,但实际上前端每次都要重新实现整个页面,浪费很多人力 ...
随机推荐
- elasticsearch 镜像使用
elasticsearch 镜像使用 下载镜像: docker pull elasticsearch:6.5.4 创建容器: docker run -it -p 9200:9200 -p 9300:9 ...
- webpack 4 升级点
webpack 4 升级点: 默认entry为./src,默认output为/dist sideEffects 在webapck2开始支持ESModule后,webpack提出了tree-shakin ...
- es query_string 和 match 的区别
默认使用 空格拆分成 多个 子项,并且 每个子项 都会去分词 查询.可以通过 default_operator 指定 子项之间的关系.默认是 或 . 然后 每个 子项前面可以使用 -+ 指定必须有 ...
- mysql查询相关问题
前言 本文实现的这个需求其实十分普遍,举例来说,我们存在一个用户来源表,用来标记用户从哪个渠道注册进来.表结构如下所示… 其中 origin 是用户来源,其中的值有 iPhone .Android . ...
- VMware Ubuntu如何连接互联网
Brigde——桥接 :默认使用VMnet0 1.原理: Bridge 桥”就是一个主机,这个机器拥有两块网卡,分别处于两个局域网中,同时在”桥”上,运行着程序,让局域网A中的所有数据包原封不动的 ...
- c# post文件
public class HttpUpload { private ArrayList bytesArray; private Encoding encoding = Encoding.UTF8; p ...
- Vivado约束文件(XDC)的探究(1)
Vivado约束文件(XDC)的探究(1) 工程建好之后会出现xdc文件: 注意:active 和 target 生成的约束文件如下:
- oracle--分组后获取每组数据第一条数据
SELECT * FROM (SELECT ROW_NUMBER() OVER(PARTITION BY cc.queuename ORDER BY cc.enroldate DESC) rn, cc ...
- QT中webkit去掉默认的右键菜单
在qt设计师中,选择webview,按下图选择那一行设置contextMenuPolicy属性:
- PHP 中如何创建和修改数组?
PHP中使用array来创建一个数组:array( key=>value , key=>value …… )用方括号的语法来修改数组:$arr[] = value 例如:$arr = ar ...