6.6 添加左边栏组件Sidebar.vue

本节需要做手动写更多的代码,要求完成左侧菜单,但不要求点击更新右侧内容,只展示就可以。
html部分:
<template>
    <div id="sidebar" class="hidden-xs col-xs-12 col-sm-3">
        <ul class="linkedList">
            <block v-for="(chapter, i) in chapters" v-bind:key="chapter.id">
                <li v-bind:id="'li_' + chapter.code" class="first"><a href="javascript:void(0)" v-bind:data-code="chapter.code" @click="chapterClick"><span class="chapterSerial">第{{i+1}}章</span>
                <span class="chapterName">{{" "+chapter.name}}</span>
                </a>
                <ul v-if="chapter.subChapters">
                    <block v-for="sub in chapter.subChapters" v-bind:key="sub.id">
                        <li v-bind:id="'li_' + sub.code" class="first"><a href="javascript:void(0)" v-bind:data-code="sub.code" @click="chapterClick"><span class="chapterName">{{sub.chapterTitle}}</span>
                        </a>
                        </li>
                    </block>
                </ul>
                </li>
            </block>
        </ul>
    </div>
</template>
js部分:
import axios from "axios";
export default{
    name:"Sidebar",
    components:{
    },
    data(){
        return{
            chapters:[],
        }
        ;
    },
    created:function(){
    },
    mounted:function(){
        this.getChapters();
    },
    methods:{
        getChapters:function(){
            这里是你要完成的部分
        },
    },
}

getChapters获取章节数据,然后赋值给chapters变量。
getChapters需要用到的请求地址:

style部分:
#sidebar{
    float: left;
    padding: 40px;
    color: #000;
    font-weight: bold;
    background: #dfdee5;
    border-right: 5px solid #95142a;
    margin-right: -5px;
}
#sidebar,#sidebar a {
    color: #000;
    font-weight: bold;
    text-decoration: none;
}
#sidebar h2,#sidebar h3,#sidebar h4 {
    color: #fff;
}
#sidebar ul {
    list-style: none;
    padding-left: 0;
}
#sidebar ul li {
    border-top: dotted 1px #70665f;
    padding-bottom: 0;
    padding-top: 15px;
    padding-left: 15px;
    margin-bottom: 15px;
}
#sidebar ul li:first {
    padding-top: 0;
    border-top: none;
}
#sidebar ul li ul {
    list-style: none;
    margin: 20px;
    display: block;
}
#sidebar ul li ul li {
    border: none;
}
.selected {
    font-weight: bold;
    background: #cc6633;
}
#sidebar,#sidebar a {
    color: #000;
    font-weight: bold;
}
#sidebar a:hover {
    color: orange;
}
progress::-moz-progress-bar {
    background: #55a0ff;
    color: #fff;
}