VUE移动端音乐APP学习【二】:页面骨架开发

页面骨架

页面的骨架分为三块区域: header(头部标题)、tab(切换按钮)、router-view(路由切换的容器)

在app.vue中:

<template>
  <div id="app">
    <m-header></m-header>
    <tab></tab>
    <router-view></router-view>
  </div>
</template>

<script>
import MHeader from './components/m-header/m-header';
import Tab from './components/tab/tab';

export default {
  components: {
    MHeader,
    Tab,
  },
};

</script>

 配置路由

在router/index.js中进行路由配置:

import Vue from 'vue';
import VueRouter from 'vue-router';
import Recommend from '../components/recommend/recommend';
import Search from '../components/search/search';
import Singer from '../components/singer/singer';
import Rank from '../components/rank/rank';

Vue.use(VueRouter);

const routes = [
  {
    path: '/recommend',
    name: 'Recommend',
    component: Recommend,
  }, {
    path: '/search',
    name: 'Search',
    component: Search,
  }, {
    path: '/singer',
    name: 'Singer',
    component: Singer,
  }, {
    path: '/rank',
    name: 'Rank',
    component: Rank,

  },

];

const router = new VueRouter({
  routes,
});

export default router;

配置默认路由:

{
    path: '/',
    redirect: '/recommend',
  },

实现导航栏组件

tag.vue:

<template>
  <div class="tab">
    <router-link tag="div" class="tab-item" to="/recommend">
      <span class="tab-link">推荐</span>
    </router-link>
    <router-link tag="div" class="tab-item" to="/singer">
      <span class="tab-link">歌手</span>
    </router-link>
    <router-link tag="div" class="tab-item" to="/rank">
      <span class="tab-link">排行</span>
    </router-link>
    <router-link tag="div" class="tab-item" to="/search">
      <span class="tab-link">搜索</span>
    </router-link>
  </div>
</template>

<script>
export default {
  name: 'tab',
};

</script>
<style lang="scss">
.tab {
  display: flex;
  height: 44px;
  line-height: 44px;
  font-size: $font-size-medium;

  .tab-item {
    flex: 1;
    text-align: center;

    .tab-link {
      padding-bottom: 5px;
      color: $color-text-l;
    }

    &.router-link-active {
      .tab-link {
        color: $color-theme;
        border-bottom: 2px solid $color-theme;
      }
    }
  }
}
</style>

其中

 &.router-link-active 实现当前的路由对应的按钮的高亮效果

首页效果图

posted @ 2021-03-08 19:44  小风车吱呀转  阅读(191)  评论(0编辑  收藏  举报