一.vue基本路由配置
1.刪除原來的配置
2.新建頁面

2. views頁面,首頁的代碼
<template>
<div class="box">
<header class="header">首頁</header>
<div class="content">首頁</div>
</div>
</template>
<script>
export default {
}
</script>
<style lang="scss">
</style>
3. app.頁面
<template>
<div class="container">
<router-view></router-view> //頁面容器
<router-view name="footer"></router-view>//底部容器,可以用命名路由叫底部顯示或者不顯示
</div>
</template>
<script>
export default {
}
</script>
<style lang="scss">
// 導入重置樣式庫的scss文件,其內部導入了別的scss文件
@import '@/lib/reset.scss';
// 如果企業有自己的scss庫,使用企業自己的,沒有可以選用這個
// 查看lib/classes.scss文件,內含各個函數的使用
// 1rem 100px
html, body, .container {
@include rect(100%, 100%); // width: 100%; height: 100%;
}
.container {
@include flexbox(); // display: flex;的兼容寫法
@include flex-direction(column); // flex-direction: column;的兼容寫法
.box {
@include flex(); // flex: 1;的兼容寫法
@include rect(100%, auto);
@include flexbox();
@include flex-direction(column);
.header {
@include rect(100%, 0.44rem);
@include background-color(#f66);
}
.content {
@include flex();
@include rect(100%, auto);
}
}
.footer {
@include rect(100%, 0.5rem);
@include background-color(#efefef);
ul {
@include rect(100%, 100%);
@include flexbox();
li {
@include flex();
// 內部元素水平垂直居中
@include flexbox();
@include flex-direction(column);
@include justify-content();
@include align-items();
span {
@include font-size(0.24rem);
}
p {
// @include color(#333);
@include font-size(0.12rem);
@include margin(-3px 0 0 0);
}
}
}
}
}
</style>
4. components里面的 footer.vue自定義組件
<template>
<footer class="footer">
<ul>
<!-- router-link默認被渲染為a標簽,使用tag標簽生成需要的標簽 -->
<router-link to="/home" tag="li">
<!-- <span class="iconfont icon-fonts-shouye"></span> -->
<p>首頁</p>
</router-link>
<router-link to="/classify" tag="li">
<!-- <span class="iconfont icon-icon"></span> -->
<p>分類</p>
</router-link>
<router-link to="/shop" tag="li">
<!-- <span class="iconfont icon-gouwuche"></span> -->
<p>購物車</p>
</router-link>
<router-link to="/my" tag="li">
<!-- <span class="iconfont icon-wode"></span> -->
<p>我的</p>
</router-link>
</ul>
</footer>
</template>
<style lang="scss">
@import '@/lib/reset.scss';
.footer {
ul {
li {
&.router-link-exact-active.router-link-active {
@include text-color(#f66);
}
}
}
}
</style>
5.router配置路由
footer: Footer 頁面需要底部切換就寫,不需要就不寫
import Vue from 'vue'
import VueRouter from 'vue-router'
import Footer from '@/components/Footer'
Vue.use(VueRouter)
// 路由的懶加載
const routes = [
{ // 重定向
path: '/',
redirect: '/home'
},
{
path: '/home',
name: 'home', // 命名路由,可以用於聲明式導航傳參
components: {
default: () => import('@/views/home/index.vue'),
footer: Footer
}
},
{
path: '/classify',
name: 'classify', // 命名路由,可以用於聲明式導航傳參
components: {
default: () => import('@/views/classify/index.vue'),
footer: Footer
}
},
{
path: '/shop',
name: 'shop', // 命名路由,可以用於聲明式導航傳參
components: {
default: () => import('@/views/shop/index.vue'),
footer: Footer
}
},
{
path: '/my',
name: 'my', // 命名路由,可以用於聲明式導航傳參
components: {
default: () => import('@/views/my/index.vue'),
footer: Footer
}
}
]
const router = new VueRouter({
mode: 'history',
base: process.env.BASE_URL,
routes
})
export default router

