---恢复内容开始---

一、前言

1、底部tab栏实现

2、顶部title栏实现

二、主要内容

  1、底部tab栏实现(将底部导航提取到公共的组件中)

具体效果:当点击切换不同的tab的时候,对应的显示高亮,并且切换到对应的页面中

  (1)html/css代码

<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>

footerGuide.vue

   (2)给每个Tab切换标签注册一个点击事件,每次点击的时候,将当前对应页面的路由传过去,并且比较当且的路由,是否和tab上的路由一致,如果一致的时候就进行路由跳转, 并且判断当前的路由是否等于每个标签中对应的路由,如果对应就设置为高亮

2、顶部title栏实现(用到slot插槽)

  (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>

HeaderTop.vue

  (3)由于每个导航的title不一样,可以从父组件传给子组件

  父组件中:

第一步:先挂载

  第二步:使用

  子组件中:

三、总结

---恢复内容结束---

Vue(小案例)底部tab栏和顶部title栏的实现的更多相关文章

  1. Vue小案例 之 商品管理------学习过滤器 使用过滤器处理日期的格式

    代码学习过滤器 过滤器介绍:过滤模型数据,在数据显示前做预处理操作: 内置过滤器:在1.x中,Vue提供了内置过滤器,但是在2.x中已经完全废除: 解决办法: (1)使用第三方库来替代1.x中的内置过 ...

  2. Vue小案例(一)

    案例需求: 创建一个品牌展示表格,表头有编号(id),品牌名称(name),创建时间(time)和操作,需要实现的功能是对数据的增删操作,和时间的格式化. 思路分析:在开发之前需要想清楚要用到Vue中 ...

  3. vue小案例--简易评论区

    一.小案例(评论区) 1.流程 (1)分析静态页面.(vue项目创建参考https://www.cnblogs.com/l-y-h/p/11241503.html)(2)拆分静态页面,变成一个个组件. ...

  4. VUE小案例--简易计算器

    这个小案例主要时练习v-model的使用,功能并不完善 <!DOCTYPE html> <html lang="zh-CN"> <head> & ...

  5. VUE小案例--跑马灯效果

    自学Vue课程中学到的一个小案例,跑马灯效果 <!DOCTYPE html> <html lang="zh-CN"> <head> <me ...

  6. Vue(小案例_vue+axios仿手机app)_首页(底部导航栏+轮播图+九宫格)

    ---恢复内容开始--- 一.前言                        1.底部导航(两种做法)                                         2.轮播图 ...

  7. Vue(小案例_vue+axios仿手机app)_Vuex优化购物车功能

    一.前言         1.用vuex实现加入购物车操作 2.购物车详情页面          3.点击删除按钮,删除购物详情页面里的对应商品 二.主要内容 1.用vuex加入购物车 (1)在src ...

  8. Vue(小案例_vue+axios仿手机app)_购物车

    一.前言 1.购物车 二.主要内容 1.效果演示如下,当我们选择商品数量改变的时候,也要让购物车里面的数据改变 2.具体实现 (1)小球从上面跳到下面的效果 (2)当点击上面的“加入购物车按钮”让小球 ...

  9. Vue(小案例_vue+axios仿手机app)_go实现退回上一个路由

    一.前言 this.$router.go(-1)返回上级路由 二.主要内容 1.小功能演示: 2.组件之间的嵌套关系为: 3.具体实现 (1)由于这种返回按钮在每个页面中的结构都是一样的,只是里面的数 ...

随机推荐

  1. Windows 7 quick launch

    %AppData%\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar %AppData%\Microsoft\Internet ...

  2. cf- Educational Codeforces Round 40 -D

    题意:给你n个点,m条边,一个起点s,一个终点t的无向图,问在某两个点之间加一条边,不改变s到t的最短路径的值的加法有多少种,所有点一定连接: 思路:首先,默认相邻两点的权值都为1,会改变值的情况有: ...

  3. PlaNet,使用图像输入来学习世界模型

    Google AI团队与DeepMind合作,上周宣布了一个名为PlaNet的新的开源“Deep Planning”网络. PlaNet是一个人工智能代理,它只使用图像输入来学习世界模型,并使用这些模 ...

  4. 本科理工男如何学习Linux

    我是一个本科学电子的理工男,但是一直对计算机感兴趣,所以平时自己在课下喜欢学一些与计算机有关的东西.由于对计算机感兴趣,所以后来我参加了学校的计算机社团,在那里接受一些培训和指导.当时在社团里看到师兄 ...

  5. 【图像处理】openCV库教程

    openCV 基础学习 with:于士琪openCV基础 env:opencv3.4.0+vc2017集成开发环境 图像的表示:矩阵 1. 灰度矩阵 <br> 2. 彩色(多通道)如RGB ...

  6. python 脚本之 获取远程主机的hostname

    import sys, socket try: result = socket.gethostbyaddr("查询的IP") #查询完后获得一个元组 print (result) ...

  7. PHP——敏感词过滤

    前言 如果可以用第三方的话,那么你是幸运的,因为现在这种敏感词过滤,敏感图片,敏感语音过滤的第三方服务还是挺多的 敏感词过滤 核心代码 利用PHP内置的三个函数 array_combine() | a ...

  8. 洛谷P1216数字三角形题解

    题目 这道题是一个典型的DP,可以用倒推,顺推的方法,来解这道题.当然用不同的方法他的循环次序是不一样的,所以我们一定要深刻地理解题目的大意,再采用状态转移方程与边界每次求出最优解,并记录循环一遍后就 ...

  9. 【XSY1762】染色问题 网络流

    题目描述 给定一张\(n\)个点\(m\)条边的无向图.每个顶点有一个颜色,要么是黑,要么是白.我们想进行一些操作,使得最终每一条边的两个端点都是不同的颜色.每一次操作,你可以将一条边的两个端点交换颜 ...

  10. Leetcode 209.长度最小的子数组 By Python

    给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组.如果不存在符合条件的连续子数组,返回 0. 示例: 输入: s = 7, nums = [2, ...