父组件
<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的使用的更多相关文章

  1. 基于VUE,VUX组件开发的网易新闻页面搭建过程

    根据妙味课堂上的一个教程练习总结,供自己复习用 一.功能介绍 一个网易新闻客户端的浏览页面,通过网易新闻的api接口实时获取新闻数据,用vux搭建样式框架,以轮播图,文字滚动,图文列表等形式把内容展示 ...

  2. vue webuploader 组件开发

    最近项目中需要用到百度的webuploader大文件的分片上传,对接后端的fastdfs,于是着手写了这个文件上传的小插件,步骤很简单,但是其中猜到的坑也不少,详细如下: 一.封装组件 引入百度提供的 ...

  3. 一个简单的Vue.js组件开发示例

    //创建属于自己的vue组件库 (function(Vue, undefined) { Vue.component("my-component", { template: '< ...

  4. Vue (三) --- Vue 组件开发

    ------------------------------------------------------------------好心情,会让你峰回路转. 5. 组件化开发 5.1 组件[compo ...

  5. 【06】Vue 之 组件化开发

    组件其实就是一个拥有样式.动画.js逻辑.HTML结构的综合块.前端组件化确实让大的前端团队更高效的开发前端项目.而作为前端比较流行的框架之一,Vue的组件和也做的非常彻底,而且有自己的特色.尤其是她 ...

  6. vue.js组件化开发实践

    前言 公司目前制作一个H5活动,特别是有一定统一结构的活动,都要码一个重复的轮子.后来接到一个基于模板的活动设计系统的需求,便有了下面的内容.借油开车. 组件化 需求一到,接就是怎么实现,技术选型自然 ...

  7. 基于vue的新组件开发

    前天完成了一个新组件的开发,做的过程也是各种遇到问题,彻底弄懂了slot,巩固了一些flex布局和jquery的知识,比起自己第一次做组件开发,现在已经是能够下手做,遇到问题解决问题,还算有进步. 但 ...

  8. 聊聊vue组件开发的“边界把握”和“状态驱动”

    vue有着完整的组件化开发机制,但是官网只给了开发的方式,对于开发规范以及组件化开发的最佳实践,还需要我们来摸索.本文就平时开发中的经验来谈谈“把握边界”和“状态驱动”这两个话题. 边界把握 边界把握 ...

  9. 基于Vue全家桶开发的前端组件管理平台

    项目背景 项目背景是外包类建站公司里,设计环节沉淀了大量可复用组件,设计师往往只需要微调组件就拼凑出页面,交付给前端,理论上这些组件在前端也可以复用,但实际上前端每次都要重新实现整个页面,浪费很多人力 ...

随机推荐

  1. es中级部分知识点总结

    --------------------------------------------------------------- 搜索开始-------------------------------- ...

  2. Hive 严格模式与非严格模式

    1. hive严格模式 hive提供了一个严格模式,可以防止用户执行那些可能产生意想不到的不好的效果的查询.即某些查询在严格模式下无法执行.通过设置hive.mapred.mode的值为strict, ...

  3. mysql程序之mysqld_safe详解

    mysqld_safe命令 mysqld_safe是在Unix上启动mysqld服务器的推荐方法.mysqld_safe增加了一些安全特性,例如在发生错误时重新启动服务器,并将运行时信息记录到错误日志 ...

  4. Spark Hadoop Free 安装遇到的问题

    运行 ./sbin/start-master.sh : SparkCommand:/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java -cp /home/se ...

  5. Spark版本说明

    Source code: Spark 源码,需要编译才能使用,另外 Scala 2.11 需要使用源码编译才可使用   Pre-build with user-provided Hadoop: &qu ...

  6. 编译小米mini openwrt

    编译小米mini openwrt 1.下载openwrt源码包:进入要下载保存的文件目录,输入 git clone git://git.openwrt.org/15.05/openwrt.git 2. ...

  7. 开源截图工具cutycapt的安装及使用

    之前在安装过程中碰到很多问题,也找了不少资料.现总结了下,给有需要的朋友.centos下安装cutycapt比较麻烦,需要先安装qt47,再下载cutycapt源码编译;而在ubuntu下安装cuty ...

  8. VMware Workstation 安装 mac OS 时遇到 不可恢复错误: (vcpu-0)

    去客户机的安装目录,打开VMX文件, 比如你的客户机名字为OSX, 这个文件就是OSX.vmx,你将会看到有一个smc.present的参数:smc.present = "TRUE" ...

  9. libextobjc使用

    pod 'libextobjc' #import "extobjc.h" 使用@weakify(self); @strongify(self)

  10. <亲测>CentOS7中使用yum安装Nginx的方法

    CentOS7中使用yum安装Nginx的方法   最近无意间发现Nginx官方提供了Yum源.因此写个文章记录下. 1.添加源 默认情况Centos7中无Nginx的源,最近发现Nginx官网提供了 ...