Home模块开发

拆分子组件

  • Home

    • banner
    • videoList

指令属性里面取data里面的数据不用加{{}},html标签内容体中间则需要加双花括号

创建component文件夹

  在src/views/Home下创建component文件夹

在component目录下,分别创建Banner.vue、VideoList.vue

首页开发

Home.vue

<template>
<div>
<!--首页轮播图-->
<home-banner :banners="banners"></home-banner>
<home-video-list :videoList="videoList"></home-video-list>
<common-footer></common-footer>
</div>
</template>Í
<script>
import HomeBanner from "./component/Banner";
import HomeVideoList from "./component/VideoList";
import CommonFooter from "@/components/CommonFooter";
import { getBanner, getVideoList } from "@/api/getData.js";
export default {
//注册组件
components: {
HomeBanner,
HomeVideoList,
CommonFooter
},
//声明数据源
data() {
return {
banners: [],
videoList: []
};
},
//定义方法
methods: {
async getBannerData() {
try {
//获取轮播图数据
const result = await getBanner();
console.log(result)
console.log(result.code == 0)
if (result.data.code == 0) {
this.banners = result.data.data;
}
} catch (error) {
console.log(error);
}
},
async getVList() {
try {
//获取视频列表
const result = await getVideoList();
console.log(result)
if (result.data.code == 0) {
this.videoList = result.data.data;
}
} catch (error) {
console.log(error);
}
}
},
//页面渲染完成调用方法获取数据
mounted() {
this.getBannerData();
this.getVList();
}
};
</script>
<style lang="scss" scoped>
</style>

轮播图开发

cube-ui轮播图参考地址:https://didi.github.io/cube-ui/#/zh-CN/docs/slide

Banner.vue

<template>
<div>
<cube-slide :data="banners">
<cube-slide-item v-for="(item, index) in banners" :key="index">
<a :href="item.url">
<img :src="item.img" style="width:100%" />
</a>
</cube-slide-item>
</cube-slide>
</div>
</template>
<script>
export default {
//获取父组件传过来的值
props: {
banners: {
type: Array,
required: true
}
}
};
</script>
<style lang="scss" scoped>
</style>

视频列表开发

router-link

  • 用于路径跳转
  • 文档:https://router.vuejs.org/zh/api/#router-link

VideoList.vue

<template>
<div class="list-content">
<div class="list">
<router-link v-for="item in videoList" :key="item.id" :to="{path:'coursedetail',query:{video_id:item.id}}" class="course">
<div class="item_img">
<img :src="item.cover_img" />
</div>
<div class="video_info">
<div class="c_title">
{{item.title}}
</div>
<div class="price">
¥{{item.price/100}}
</div>
</div>
</router-link>
</div>
</div>
</template>Í
<script>
export default {
props: {
videoList: {
type: Array,
required: true
}
}
};
</script> <style lang="scss" scoped>
//列表包裹层边距
.list-content {
margin-top: 20px;
padding: 0 13px;
}
//视频包括层
.list {
display: flex; //设置flex布局
flex-wrap: wrap; //换⾏排列
justify-content: space-between; //两端对⻬
padding-bottom: 55px;
}
//视频个体层
.course {
width: 48%;
margin-bottom: 17px;
}
//视频图⽚
.item_img {
font-size: 0; //消除图⽚元素产⽣的间隙
box-shadow: 0 4px 11px 0 rgba(43, 51, 59, 0.6); //设置图⽚阴影,rgba前三个参数是颜⾊编码,最后⼀个是透明度
border-radius: 8px; //设置图⽚圆⻆
img {
width: 100%;
border-radius: 8px;
}
}
.c_title {
//设置超过两⾏隐藏 start
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
word-break: break-all;
//设置超过两⾏隐藏 end
font-size: 11px;
height: 26px;
line-height: 13px;
margin-top: 10px;
color: #2b333b;
}
//价格
.price {
margin-top: 8px;
font-size: 12px;
color: #d93f30;
}
</style>

yb课堂 首页home开发 《三十七》的更多相关文章

  1. “全栈2019”Java多线程第三十七章:如何让等待的线程无法被中断

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...

  2. “全栈2019”Java第三十七章:类与字段

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  3. App开发三种模式

    APP开发三种模式 现在App开发的模式包含以下三种: Native App 原生开发AppWeb App 网页AppHybrid App 混合原生和Web技术开发的App 详细介绍: http:// ...

  4. iOS开发三步搞定百度推送

    iOS开发三步搞定百度推送   百度推送很简单,准备工作:在百度云推送平台注册应用,上传证书. 步骤一: 百度云推送平台 http://push.baidu.com/sdk/push_client_s ...

  5. 程序员编程艺术第三十六~三十七章、搜索智能提示suggestion,附近点搜索

    第三十六~三十七章.搜索智能提示suggestion,附近地点搜索 作者:July.致谢:caopengcs.胡果果.时间:二零一三年九月七日. 题记 写博的近三年,整理了太多太多的笔试面试题,如微软 ...

  6. 基于Spring MVC的Web应用开发(三) - Resources

    基于Spring MVC的Web应用开发(3) - Resources 上一篇介绍了在基于Spring MVC的Web项目中加入日志,本文介绍Spring MVC如何处理资源文件. 注意到本项目的we ...

  7. NeHe OpenGL教程 第三十七课:卡通映射

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  8. Java Web高性能开发(三)

    今日要闻: Clarifai:可识别视频中物体 最近几年,得益于深度学习技术的发展,谷歌和Facebook等企业的研究人员在图形识别软件领域取得了重大突破.现在,一家名为Clarifai的创业公司则提 ...

  9. C#的百度地图开发(三)依据坐标获取位置、商圈及周边信息

    原文:C#的百度地图开发(三)依据坐标获取位置.商圈及周边信息 我们得到了百度坐标,现在依据这一坐标来获取相应的信息.下面是相应的代码 public class BaiduMap { /// < ...

  10. Java进阶(三十七)java 自动装箱与拆箱

    Java进阶(三十七)java 自动装箱与拆箱 前言 这个是jdk1.5以后才引入的新的内容.java语言规范中说道:在许多情况下包装与解包装是由编译器自行完成的(在这种情况下包装称为装箱,解包装称为 ...

随机推荐

  1. C#.Net筑基-模式匹配汇总

    01.模式匹配概述 从C#7开始支持的 模式匹配 语法(糖,挺甜),可非常灵活的对数据进行条件匹配和提取,经过多个版本的完善,已经非常强大了. C# 支持多种模式,包括声明.类型.常量.关系.属性.列 ...

  2. c 语言不输出空数据 (全面覆盖)

    目录 去除空值的专栏 解决方案 一.通过数组的自身性质,让其值大于零 1. short 数组测试 2. int 数组测试 3. long 数组测试 4. float 数组测试 5. float 数组测 ...

  3. 4G EPS 的网络协议栈

    目录 文章目录 目录 前文列表 LTE/EPC 协议栈 E-UTRAN 空中接口协议栈 用户平面协议 PHY 层 MAC 层 RLC 层 PDCP 层 控制平面协议 RRC 层 NAS 层 EPC 核 ...

  4. 阿里云sdk调用

    slb调用 环境包安装 pip install alibabacloud_credentials  --trusted-host mirrors.aliyun.com  -i  http://mirr ...

  5. C++ Virtual Functions

    Virtual这个关键字在多态中扮演一个绝对重要的角色,只要member functions声明的前面加上virtual的关键字,他就会成为 Virtual member functions.任何一个 ...

  6. 启动Django项目的方式

    方式一: python manage.py runserver 方式二: # 加上监听地址和端口 python manage.py runserver 0.0.0.0:8080 方式三: 使用 Pyc ...

  7. 原生Django出现同源策略跨域的解决方式

    解决方式: 在返回数据的时候,添加响应头信息: 例如:

  8. 一个简单demo展示应用接口使用goroutine优雅退出

    package main import ( "context" "errors" "log" "net/http" &q ...

  9. 资源编排ROS之模块:实现模板代码复用(基础篇)

    背景 资源编排服务(Resource Orchestration Service, 简称ROS)是阿里云提供的一项简化云计算资源管理的服务.您可以遵循ROS定义的模板规范编写资源栈模板,在模板中定义所 ...

  10. 【Socket】解决TCP粘包问题

    一.介绍 TCP一种面向连接的.可靠的.基于字节流的传输层协议. 三次握手: 客户端发送服务端连接请求,等待服务端的回复. 服务端收到请求,服务端回复客户端,可以建立连接,并等待. 客户端收到回复并发 ...