---恢復內容開始---javascript
1、前言 css
一、底部tab欄實現html
二、頂部title欄實現vue
2、主要內容 java
一、底部tab欄實現(將底部導航提取到公共的組件中)app
具體效果:當點擊切換不一樣的tab的時候,對應的顯示高亮,而且切換到對應的頁面中
ide
(1)html/css代碼flex
<template> <div> <footer class="footer_guide border-1px"> <a href="#" class="guide_item" @click='goTo("/")' :class="{'on':'/'==this.$route.path}"> <span> <i class="iconfont icon-U"></i> </span> <span>外賣</span> </a> <a href="#" class="guide_item" @click='goTo("/Search")' :class="{'on':'/Search'==this.$route.path}"> <span> <i class="iconfont icon-sousuo"></i> </span> <span>搜索</span> </a> <a href="#" class="guide_item" @click='goTo("/Order")' :class="{'on':'/Order'==this.$route.path}" > <span> <i class="iconfont icon-icon"></i> </span> <span>訂單</span> </a> <a href="#" class="guide_item" @click='goTo("/Profile")' :class="{'on':'/Profile'==this.$route.path}" > <span> <i class="iconfont icon-geren"></i> </span> <span>個人</span> </a> </footer> </div> </template> <script type="text/javascript"> export default{ data(){ return{ } }, methods:{ goTo(path){ this.$router.replace(path) } } } </script> <style lang="stylus" rel="stylesheet/stylus"> @import "../../common/stylus/mixins.styl" .footer_guide top-border-1px(#e4e4e4) position fixed; z-index 100 left 0 right 0 bottom 0 background-color #fff width 100% height 50px display flex .guide_item display flex flex 1 text-align center flex-direction column align-items center margin 5px color #999 &.on color #02a774 span font-size 12px margin-top 2px margin-bottom 2px .iconfont font-size 22px </style>
(2)給每一個Tab切換標籤註冊一個點擊事件,每次點擊的時候,將當前對應頁面的路由傳過去,而且比較當且的路由,是否和tab上的路由一致,若是一致的時候就進行路由跳轉, 而且判斷當前的路由是否等於每一個標籤中對應的路由,若是對應就設置爲高亮ui
二、頂部title欄實現(用到slot插槽)this
(1)在不少app軟件中,頂部的結構很類似(能夠分爲左,右,中)三個部分,
(2)也將頂部導航提取到公共導航部分
<template> <!--頭部--> <header class="header"> <slot name="left"></slot> <span class="header_title"> <span class="header_title_text ellipsis">{{title}}</span> </span> <slot name="right"></slot> </header> </template> <script type="text/javascript"> export default{ props:{ title: String } } </script> <style lang="stylus" rel="stylesheet/stylus"> .header background-color #02a774 position fixed z-index 100 top 0 left 0 width 100% height 45px .header_search position absolute left 15px top 30% width 10% height 50% .icon-sousuo font-size 25px color #fff .header_login font-size 14px color #fff position absolute right 15px top 50% transform transformY(-50%) .header_login_text color #fff .header_title position absolute top 50% left 50% transform translateX(-50%) width 50% color #fff text-align center .header_title_text font-size 20px color #fff display block </style>
(3)因爲每一個導航的title不同,能夠從父組件傳給子組件
父組件中:
第一步:先掛載
第二步:使用
子組件中:
3、總結
---恢復內容結束---