Vue(小案例)底部tab栏和顶部title栏的实现
---恢复内容开始---
一、前言
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栏的实现的更多相关文章
- Vue小案例 之 商品管理------学习过滤器 使用过滤器处理日期的格式
代码学习过滤器 过滤器介绍:过滤模型数据,在数据显示前做预处理操作: 内置过滤器:在1.x中,Vue提供了内置过滤器,但是在2.x中已经完全废除: 解决办法: (1)使用第三方库来替代1.x中的内置过 ...
- Vue小案例(一)
案例需求: 创建一个品牌展示表格,表头有编号(id),品牌名称(name),创建时间(time)和操作,需要实现的功能是对数据的增删操作,和时间的格式化. 思路分析:在开发之前需要想清楚要用到Vue中 ...
- vue小案例--简易评论区
一.小案例(评论区) 1.流程 (1)分析静态页面.(vue项目创建参考https://www.cnblogs.com/l-y-h/p/11241503.html)(2)拆分静态页面,变成一个个组件. ...
- VUE小案例--简易计算器
这个小案例主要时练习v-model的使用,功能并不完善 <!DOCTYPE html> <html lang="zh-CN"> <head> & ...
- VUE小案例--跑马灯效果
自学Vue课程中学到的一个小案例,跑马灯效果 <!DOCTYPE html> <html lang="zh-CN"> <head> <me ...
- Vue(小案例_vue+axios仿手机app)_首页(底部导航栏+轮播图+九宫格)
---恢复内容开始--- 一.前言 1.底部导航(两种做法) 2.轮播图 ...
- Vue(小案例_vue+axios仿手机app)_Vuex优化购物车功能
一.前言 1.用vuex实现加入购物车操作 2.购物车详情页面 3.点击删除按钮,删除购物详情页面里的对应商品 二.主要内容 1.用vuex加入购物车 (1)在src ...
- Vue(小案例_vue+axios仿手机app)_购物车
一.前言 1.购物车 二.主要内容 1.效果演示如下,当我们选择商品数量改变的时候,也要让购物车里面的数据改变 2.具体实现 (1)小球从上面跳到下面的效果 (2)当点击上面的“加入购物车按钮”让小球 ...
- Vue(小案例_vue+axios仿手机app)_go实现退回上一个路由
一.前言 this.$router.go(-1)返回上级路由 二.主要内容 1.小功能演示: 2.组件之间的嵌套关系为: 3.具体实现 (1)由于这种返回按钮在每个页面中的结构都是一样的,只是里面的数 ...
随机推荐
- vue-cli: render:h => h(App)是什么意思
import Vue from 'vue' import App from './App.vue' Vue.config.productionTip = false new Vue({ render: ...
- zookeeper客户端操作
ZooKeeper客户端 zkCli.sh 节点的增删改查 在 bin 目录下的 zkCli.sh 就是ZooKeeper客户端 ./zkCli.sh -timeout 5000 -server ...
- Redis之父表示ARM服务器没戏!
ARM表示Neoverse N1平台和E1 CPU即将发布,Neoverse N1和E1采用7nm制程,并且为服务器和通信设备增加重要提升,拥有高可扩展性.高处理量以及高性能,将分别在2020年和20 ...
- notepad++上直接运行python文件
一.打开notepad++,点击语言,选择python,这样就写的是python文件了 二.点击运行>运行:输入cmd /k python "$(FULL_CURRENT_PATH)& ...
- CentOS 部署.net core 2.0 项目
上传项目到服务器 安装Nginx(反向代理服务器),配置文件 https://www.cnblogs.com/xiaonangua/p/9176137.html 安装supervisor https: ...
- Deepfakes:AI换脸技术自制明星XX片
ps:亮瞎狗眼 去年开始就在国外网站上比较火的项目了,通过Deepfakes技术可以将视频中的人脸换成自己喜欢的明星, 当时就有不少人制作了换脸视频,其中大部分是替换了XX片的女主角. 国外网站Red ...
- BZOJ 4326 运输计划
二分答案+树链剖分+树上差分 我们假设x是最小的花费,可以想到给定x,所有运输计划中花费大于x的计划必须经过虫洞,且最长的一条的花费减去虫洞所在边的花费要小于等于x 那么对于x,虫洞所在的位置肯定是确 ...
- 【XSY2745】装饰地板 状压DP 特征多项式
题目大意 你有\(s_1\)种\(1\times 2\)的地砖,\(s_2\)种\(2\times 1\)的地砖. 记铺满\(m\times n\)的地板的方案数为\(f(m,n)\). 给你\(m, ...
- 【AGC014E】Blue and Red Tree 并查集 启发式合并
题目描述 有一棵\(n\)个点的树,最开始所有边都是蓝边.每次你可以选择一条全是蓝边的路径,删掉其中一条,再把这两个端点之间连一条红边.再给你一棵树,这棵树的所有边都是红边,问你最终能不能把原来的树变 ...
- 2018-01微信小程序--直播
一. 小程序直播支持的格式 目前小程序支付两种格式直播 1) flv格式直播 2) rtmp格式直播 二. 能够开通小程序直播的行业类目 由于直播需要资质, 并不是每个企业都能够开通小程序直播, 微信 ...