6.1 创建顶部菜单组件Header.vue

接下来,我们就要在示例项目的基础上,添加自己的页面。我们使用上部菜单,中间内容分栏,底部信息的布局,就如本网站的学习页面。
其中,顶部和底部是所有页面(如果有多个页面的话)所共享,所以做成组件是很自然的。
首先我们来创建顶部菜单组件。
1.创建Header.vue
在src/components文件夹下,创建新文件Header.vue。
这是一个空白的文件,首先输入template这对标签,这里是组件的html模板的位置。然后把下面的代码复制进去:
<template>
    <div class="header">
        <div class="menu col-sm-5">
            <ul>
                <li class="current_page_item"><router-link to="/">主页</router-link>
                </li>
                <li class="current_page_item"><router-link to="/about">About</router-link>
                </li>
                <li><router-link to="/study">学习</router-link>
                </li>
                <li class="dropdown"><router-link to="#" class="dropdown-toggle" id="dropdownMenul" data-toggle="dropdown">课程<span class="caret"></span>
                </router-link>
                <ul class="dropdown-menu" aria-labelledby="dropdownMenul">
                    <li><router-link to="1_010000.html">Java程序设计</router-link>
                    </li>
                </ul>
                </li>
                <li><router-link to="statistics.jsp">统计</router-link>
                </li>
            </ul>
        </div>
        <div class="nickname hidden-xs col-sm-2 text-center">
            <span class="text-info">你好,xxx,</span>
            <router-link to="logout.jsp">
            退出
            </router-link>
        </div>
        <div class="logo hidden-xs col-sm-5 text-right">
            <h1><router-link to="javascript:void(0)"><span class="java">JavaWeb</span>
            学习平台
            <img alt="\" height="40" src="images/codessp.png"/>
            </router-link>
            </h1>
        </div>
    </div>
</template>

这是本网站顶部菜单的简化版本。
2.修改App.vue
由于顶部菜单是本网站所有页面都有的,所以我们可以把刚刚创建的Header组件放在App.vue里。这是修改后的App.vue的template部分:
<template>
    <div id="app">
        <Header/>
        <img src="@/assets/logo.png"/>
        <router-view/>
    </div>
</template>
仅仅是再template部分插入了Header这个组件,这样还是无法显示,我们需要指定Header到底在哪里,这需要在script标签里面导入并且在components里面声明:
import Header from "@/components/Header.vue";
export default{
    name:"App",
    components:{
        Header,
    },
}
第一行代码是引用,相当于指定Header组件在哪里。@符号代表src文件夹。
然后添加的第4、5行代码,表示本页面使用的组件。如果没有这两行代码,会报出语法错误,提示声明了Header但并没有使用!
保存后,就可以看到菜单的内容了,但由于没有格式,所以看起来还是很混乱的。

3.加入css部分。
首先在Header加入css,加入style标签(scoped表示这部分是专属Header使用的css),类似这样
然后把下面所有css规则复制到style标签内。
h1{
     letter-spacing:-1px;
     font-size:2.2em;
     font-family:Verdana,Arial,Helvetica,sans-serif;
     margin-top:0;
}
h2{
     letter-spacing:-1px;
     font-size:2em;
}
h3{
     font-size:1em;
}
.dropdown-menu li{
     display:block;
     width:180px;
     border-radius:3px;
}
.dropdown-menu li a{
     text-align:left;
}
.dropdown-menu{
     background:#2e2b25;
}
div.header{
     height:53px;
     background:#000;
     line-height:38px;
}
div.logo h1 a,div.logo p{
     float:right;
     position:relative;
     right:30px;
     text-transform:lowercase;
     font-family:"微软雅黑";
     color:#fff;
     padding:5px;
     display:block;
     font-weight:bold;
}
div.logo p{
     margin:0;
     padding:14px 0 0 4px;
     line-height:normal;
     font-family:Verdana,Arial,Helvetica,sans-serif;
     font-size:14px;
}
.java{
     color:#95142a;
     font-family:couriernew;
}
div.logo a{
     text-decoration:none;
     color:#d0c7a6;
}
.menu,.logo,.nickname{
     padding-left:0;
     padding-right:0;
}
div.menu ul{
     margin:0;
     padding:0;
     list-style:none;
}
div.menu li{
     display:block;
     float:left;
     height:52px;
}
div.menu a{
     height:52px;
     display:block;
     padding:0 20px 0px 20px;
     text-decoration:none;
     text-align:center;
     text-transform:lowercase;
     font-family:Verdana,Arial,Helvetica,sans-serif;
     font-weight:bold;
     font-size:14px;
     color:#cec5a4;
     line-height:52px;
}
div.menu.last{
     margin-right:20px;
}
div.menua:hover{
     color:#000;
     background:#ccc;
}
div.menu.current_page_itemA{
     color:orange;
}
div.nickname{
     line-height:52px;
     height:52px;
}
#nav{
     padding:30px;
}
#nav a{
     font-weight:bold;
     color:#2c3e50;
}
#nava.router-link-exact-active{
     color:#42b983;
}

4.加入全局css框架
菜单的布局使用了bootstrap框架,这是一个css框架。
这个css文件的下载地址为:bootstrap
下载此文件,然后保存到文件夹public/css下。我们需要在主页index.html(位于项目根目录下,或者public文件夹内)的head标签里面加入此链接:
<link rel="stylesheet" href="css/bootstrap.min.css" />
类似这样:
保存后刷新网页,就可以看到新增加了菜单!