业务需求:
- 初始化布局
- 页头页脚公共组件
- 首页轮播图
一 初始化默认全局布局
nuxtjs 提供了一个公共组件 layouts/default.vue,相当于以前的 app.vue 。该布局组件默认作用于所有的页面,所以我们可以再这里加上一些公共的样式
layouts/default.vue
代码如下:
<template>
<div>
<!-- 这里相当于我们以前的app.vue -->
<pageHeader></pageHeader>
<!-- <Nuxt /> 相当于 <router-view></router-view> -->
<Nuxt />
<pageFooter></pageFooter>
</div>
</template>
<script>
import pageHeader from "@/components/pageHeader.vue";
import pageFooter from "@/components/pageFooter.vue";
export default {
components: {
pageHeader,
pageFooter
}
};
</script>
<style>
html {
font-family: "Source Sans Pro", -apple-system, BlinkMacSystemFont, "Segoe UI",
Roboto, "Helvetica Neue", Arial, sans-serif;
font-size: 16px;
word-spacing: 1px;
-ms-text-size-adjust: 100%;
-webkit-text-size-adjust: 100%;
-moz-osx-font-smoothing: grayscale;
-webkit-font-smoothing: antialiased;
box-sizing: border-box;
}
*,
*::before,
*::after {
box-sizing: border-box;
margin: 0;
}
.button--green {
display: inline-block;
border-radius: 4px;
border: 1px solid #3b8070;
color: #3b8070;
text-decoration: none;
padding: 10px 30px;
}
.button--green:hover {
color: #fff;
background-color: #3b8070;
}
.button--grey {
display: inline-block;
border-radius: 4px;
border: 1px solid #35495e;
color: #35495e;
text-decoration: none;
padding: 10px 30px;
margin-left: 15px;
}
.button--grey:hover {
color: #fff;
background-color: #35495e;
}
</style>
二 新建公共组件
1.思路
1.在components 文件夹中新建所有页面统一的头部组件和页脚组件
2.在默认布局中 layouts/default.vue中 导入公共组件并使用
组件约定:公共组件不需要放到子文件夹中:如下图
头部下拉菜单组件文档:https://element.eleme.cn/#/zh-CN/component/dropdown#ji-chu-yong-fa