1.定义全局组件
因为头部和尾部每个页面都会用到,所以将这两个定义为Navigation和Footer两个全局组件,全局组件定义在components文件夹中
Navigation组件的代码如下:
<template>
<el-header>
<el-image
class="logo"
:src="require('@/assets/logo.png')"
fit="cover"></el-image>
<el-menu
:default-active="activeIndex"
class="el-menu-demo tright"
mode="horizontal"
@select="handleSelect"
>
<el-menu-item index="1">首页</el-menu-item>
<el-menu-item index="2">试卷中心</el-menu-item>
<el-menu-item index="3">视频课堂</el-menu-item>
<el-menu-item index="4">智能训练</el-menu-item>
<el-menu-item index="5">考试记录</el-menu-item>
<el-menu-item index="6">
<a target="_blank">错题本</a>
</el-menu-item>
<el-dropdown trigger="click">
<el-image
class="img"
:src="require('@/assets/login.jpg')"
fit="cover"></el-image>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item>黄金糕</el-dropdown-item>
<el-dropdown-item>狮子头</el-dropdown-item>
<el-dropdown-item>螺蛳粉</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</el-menu>
<div class="line"></div>
</el-header>
</template>
<script>
export default {
data() {
return {
activeIndex: "1"
};
},
methods: {
handleSelect(key, keyPath) {
console.log(key, keyPath);
}
}
};
</script>
<style scoped>
.tright {
float: right;
border-bottom:0px!important;
}
.logo{
height: 50px;
margin: 6px 0px 0px 15px;
}
.img{
width: 40px;
height: 40px;
border-radius:50%;
margin-right: 20px;
margin-top: 10px;
}
</style>
Footer组件的代码如下:
<template>
<el-footer class="footer">
<div class="footer-container">
<div class="footerList">
<div class="footerItem">
<h4>购物指南</h4>
<ul class="footerItemCon">
<li>购物流程</li>
<li>会员介绍</li>
<li>生活旅行/团购</li>
<li>常见问题</li>
<li>购物指南</li>
</ul>
</div>
<div class="footerItem">
<h4>配送方式</h4>
<ul class="footerItemCon">
<li>上门自提</li>
<li>211限时达</li>
<li>配送服务查询</li>
<li>配送费收取标准</li>
<li>海外配送</li>
</ul>
</div>
<div class="footerItem">
<h4>支付方式</h4>
<ul class="footerItemCon">
<li>货到付款</li>
<li>在线支付</li>
<li>分期付款</li>
<li>邮局汇款</li>
<li>公司转账</li>
</ul>
</div>
<div class="footerItem">
<h4>售后服务</h4>
<ul class="footerItemCon">
<li>售后政策</li>
<li>价格保护</li>
<li>退款说明</li>
<li>返修/退换货</li>
<li>取消订单</li>
</ul>
</div>
<div class="footerItem">
<h4>特色服务</h4>
<ul class="footerItemCon">
<li>夺宝岛</li>
<li>DIY装机</li>
<li>延保服务</li>
<li>尚品汇E卡</li>
<li>尚品汇通信</li>
</ul>
</div>
<div class="footerItem">
<h4>帮助中心</h4>
<img src="@/assets/10.jpg" />
</div>
</div>
<div class="copyright">
<ul class="helpLink">
<li>
关于我们
<span class="space"></span>
</li>
<li>
联系我们
<span class="space"></span>
</li>
<li>
关于我们
<span class="space"></span>
</li>
<li>
商家入驻
<span class="space"></span>
</li>
<li>
营销中心
<span class="space"></span>
</li>
<li>
友情链接
<span class="space"></span>
</li>
<li>
关于我们
<span class="space"></span>
</li>
<li>
营销中心
<span class="space"></span>
</li>
<li>
友情链接
<span class="space"></span>
</li>
<li>关于我们</li>
</ul>
<p>地址:北京市昌平区</p>
<p>京ICP备190000000号</p>
</div>
</div>
</el-footer>
</template>
<script>
export default {
}
</script>
<style scoped lang="less">
.footer {
background-color: #f7fbfd;
height: 100%!important;
.footer-container {
width: 1200px;
margin: 0 auto;
padding: 0 15px;
.footerList {
padding: 60px;
overflow: hidden;
padding-left: 80px;
.footerItem {
width: 16.6666667%;
float: left;
h4 {
font-size: 14px;
}
.footerItemCon {
li {
line-height: 18px;
}
}
&:last-child img {
width: 121px;
}
}
}
.copyright {
padding: 20px;
.helpLink {
text-align: center;
li {
display: inline;
.space {
border-left: 1px solid #666;
width: 1px;
height: 13px;
background: #666;
margin: 8px 10px;
}
}
}
p {
margin: 10px 0;
text-align: center;
}
}
}
}
</style>
因为这里用到了less,所以需要先安装less和less-loader
npm install less less-losder -S
最后在app.vue组件中引入
现在即可运行
全局组件写完,接下来就是home页面的内容组件了。
在此之前我们需要先配置router,在router文件中添加如下代码:
//配置路由的文件
import Vue from 'vue';
import VueRouter from 'vue-router';
//引入路由
Vue.use(VueRouter);
//引入路由组件
import Home from '@/pages/Home';
//配置跳转路由信息
export default new VueRouter({
routes: [{
name: 'home',
path: '/home',
component: Home,
meta: { show: true }
},
{
path: '/',
redirect: '/home'
}
]
})
并且需要在pages文件夹中添加home组件,最后需要给他指定显示的位置,用router-view来完成。这里是在app.vue中来显示的。
最后在home组件中完成局部组件的代码,这样一个简单的页面就完成了。