课程导航条以及课程简介

01 导航条设置

实现的效果

实现了 多了一个页面组件,点击'课程'可以实现跳转到课程页面,课程页面有导航条和一堆课程简介小组件

思路

1 页面1 和 页面2 就不说了,首先得来一个页面级别的课程组件

2 课程组件中要有导航条,导航条下面有很多个相同的小组件。

3 分析这些小组件,里面分别有不同的颜色以及不同的文字,可以考虑从课程组件中通过传子来实现。

代码

一 实现页面级别的课程组件

views/Course.vue

<template>
    <div class="page-first">
<!--        导航条-->
        <Navg></Navg> 
        
        <h1><span>课程页面</span></h1>
<!--        <CourseCard></CourseCard>-->

<!--        被渲染的小组件们-->
<!--                 子组件通过cardcon属性接受传过来的值-->
        <CourseCard :cardcon="card" v-for="card in card_list" :key="card"></CourseCard>
    </div>
</template>

<script>
    import Navg from '@/components/Nav'
    import CourseCard from '@/components/CourseCard'
    export default {
        name: "Course",
          data(){
            return{
                //定义一个变量
                card_list:[]
            }
        },
        components:{
            Navg,
            CourseCard
        },
        // 假数据 用于给自己的小组件传值和渲染小组件个数
        created(){
            let cards = [{
                id:1,
                bgColor: 'red',
                title: 'python基础'
            },
            {
                id:2,
                bgColor: 'yellow',
                title: 'django入土'
            },
            {
                id:3,
                bgColor: 'green',
                title: 'mysql衫裤'
            },
            ];
            this.card_list=cards
        }
    }
</script>

<style scoped>
    h1 {
        text-align: center;
    }
</style>

二 实现课程简介小组件

components/CourseCard.vue

<template>
        <div class="course-card">
            <div class="left" :style="{background:cardcon.bgColor}">

            </div>
            <div class="right">
                {{ cardcon.title}}
                {{ cardcon.id}}
            </div>
        </div>
    
</template>

<script>
    export default {
        name: "coure-card",
        // 接收父组件传过来的数据
        props:['cardcon']
    }
</script>

<style scoped>
    .course-card{
        margin-bottom: 20px;
        /*overflow: hidden;  or 下面加上display:block*/
    }
    .course-card div{
        float:left;
    }
    .left{
        width:50%;
        height:120px;
        background-color:tan;
    }
    .right{
        width:50%;
        height: 120px;
        background-color: blue;
    }
    .course-card:after{
        content:'';
        display:block;
        clear: both;
    }



</style>

三 注册路由

routes: [
    ...
{
      path:'/course',
      component:Course
}
]

四 在全局设置一下被激活的标签

.router-link-exact-active.router-link-active{
    color:red;
    border-bottom: 1px solid red ;

}
posted @ 2019-11-01 16:32  张明岩  阅读(315)  评论(0编辑  收藏  举报