详解vue.js移动端导航navigationbar的封装


Posted in Javascript onJuly 05, 2017

有几天没更新了,这几天上海天气比较热,天气一热就懒得写了。今天感觉还好,就写下导航部分的封装吧。

关于环境搭建和底部tabbar的封装请参考前面的两篇文章

web app和移动端原生app的构架方式不一样的,页面的切换是对整个页面的重新渲染。所以我们每个页面都有自己的导航条。

下面简单封装下导航条

html部分

此处写的导航的三个部分,分别是左边div、中间的title部分div、右边div。代码如下

<template>
 <header class="m-header" :class="{'is-bg-red':bgRed, 'is-fixed':fixed}">
  <div class="leftItem"><slot name="left"></slot></div>
  <div class="m-header-title" v-text="title"></div>
  <div class="rightItem"><slot name="right"></slot></div>
 </header>
</template>

js部分代码

此处向父类暴露了3个属性,分别是传入title的字符串和背景是否为红色,已经是否固定在顶部(默认是固定在顶部)。具体代码如下

<script type="text/ecmascript-6">
 export default{
  props: {
   title: {
    type: String,
    default: ''
   },
   bgRed: {
    type: Boolean,
    default: false
   },
   fixed: {
    type: Boolean,
    default: true
   }
  }
 }
</script>

stylus部分代码如下

<style scoped lang="stylus" rel="stylesheet/stylus">

 .m-header
  display flex
  flex-direction row
  align-items center
  height 64px
  background-color white
  border-bottom 1px solid #e5e5e5
  .leftItem
   margin-top 24px
   width 60px
   height 40px
   a
    display block
    text-decoration none
    color #333
    font-size 16px
    img
     padding 10px 10px
     width 24px
     height 24px
  .m-header-title
   width 100%
   height 44px
   margin-top 24px
   line-height 44px
   font-size $font-size-nav-title
   color $color-nav-item
   display flex
   justify-content center
   font-size 18px
   color #333
  .rightItem
   margin-top 24px
   width 60px
   height 40px
   a
    display block
    text-decoration none
    color #333
    font-size 16px
    img
     padding 9px 8px
     width 24px
     height 24px
 &.is-fixed
  position fixed
  left 0px
  right 0px
  top 0px
  z-index 9
 &.is-bg-red
  background-color #ee424a
  .m-header-title
   color white
  .m-header-left
   color white
  .m-header-right
   color white

</style>

封装完毕后,我们就可以使用啦,具体使用方法如下

<template>
 <div>
  <m-header title="职位" :bgRed="isShowRefresh">
   <a slot="left" v-show="false">
    ![](../../assets/refresh-white-icon@2x.png)
   </a>
   <a slot="right">
    ![](../../assets/home-filter@2x.png)
   </a>
  </m-header>
 </div>
</template>

<script type="text/ecmascript-6">
 import MHeader from 'common/nav/navbar'

 export default{
  data () {
   return {
    isShowRefresh: true
   }
  },
  components: {
   MHeader
  }
 }
</script>

运行效果图如下

详解vue.js移动端导航navigationbar的封装

详解vue.js移动端导航navigationbar的封装

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js获取元素在浏览器中的绝对位置
Jul 24 Javascript
判断多个input type=file是否有已经选择好文件的代码
May 23 Javascript
jquery可见性过滤选择器使用示例
Jun 24 Javascript
js实现div的切换特效上一个下一个
Feb 11 Javascript
使用JQ来编写最基本的淡入淡出效果附演示动画
Oct 31 Javascript
javascript实现ecshop搜索框键盘上下键切换控制
Mar 18 Javascript
学习JavaScript设计模式(单例模式)
Nov 26 Javascript
原生js实现轮播图
Feb 27 Javascript
详解基于Bootstrap+angular的一个豆瓣电影app
Jun 26 Javascript
详谈Node.js之操作文件系统
Aug 29 Javascript
JS中比Switch...Case更优雅的多条件判断写法
Sep 05 Javascript
如何利用js在两个html窗口间通信
Apr 27 Javascript
JS实现移动端按首字母检索城市列表附源码下载
Jul 05 #Javascript
webpack教程之webpack.config.js配置文件
Jul 05 #Javascript
webstorm添加vue.js支持的方法教程
Jul 05 #Javascript
vue.js实现刷新当前页面的方法教程
Jul 05 #Javascript
vue router2.0二级路由的简单使用
Jul 05 #Javascript
详解使用Node.js 将txt文件转为Excel文件
Jul 05 #Javascript
AngularJS实现进度条功能示例
Jul 05 #Javascript
You might like
PHP加Nginx实现动态裁剪图片方案
2014/03/10 PHP
php lcg_value与mt_rand生成0~1随机小数的效果对比分析
2017/04/05 PHP
PHP日期和时间函数的使用示例详解
2020/08/06 PHP
Alliance vs Liquid BO3 第一场2.13
2021/03/10 DOTA
javascript中的一些注意事项 更新中
2010/12/06 Javascript
在浏览器窗口上添加遮罩层的方法
2012/11/12 Javascript
javaScript array(数组)使用字符串作为数组下标的方法
2013/11/19 Javascript
一个不错的仿携程自定义数据下拉选择select
2014/09/01 Javascript
JavaScript Math 对象常用方法总结
2016/04/28 Javascript
利用Node.JS实现邮件发送功能
2016/10/21 Javascript
Javascript使用function创建类的两种方法(推荐)
2016/11/19 Javascript
js调用刷新界面的几种方式
2017/05/03 Javascript
vue计算属性及使用详解
2018/04/02 Javascript
nodejs遍历文件夹下并操作HTML/CSS/JS/PNG/JPG的方法
2018/11/01 NodeJs
Vue+abp微信扫码登录的实现代码示例
2020/01/06 Javascript
python类和函数中使用静态变量的方法
2015/05/09 Python
Python如何通过subprocess调用adb命令详解
2017/08/27 Python
对python抓取需要登录网站数据的方法详解
2018/05/21 Python
Python爬虫框架scrapy实现downloader_middleware设置proxy代理功能示例
2018/08/04 Python
python对csv文件追加写入列的方法
2019/08/01 Python
python3 动态模块导入与全局变量使用实例
2019/12/22 Python
台湾时尚彩瞳专门店:imeime
2019/08/16 全球购物
一道SQL面试题
2012/12/31 面试题
2019年分享net面试的经历和题目
2016/08/07 面试题
实习生自荐信范文分享
2013/11/27 职场文书
早餐连锁店计划书
2014/01/08 职场文书
领导干部考察材料
2014/02/08 职场文书
根叔历年演讲稿
2014/05/20 职场文书
知识改变命运演讲稿
2014/05/21 职场文书
党的群众路线教育实践活动个人整改方案
2014/09/21 职场文书
六查六看自检自查剖析材料
2014/10/14 职场文书
教师批评与自我批评材料
2014/10/16 职场文书
研究生导师评语
2014/12/31 职场文书
2015年行政助理工作总结
2015/04/30 职场文书
最美劳动诗,致敬所有的劳动者!
2019/07/12 职场文书
MySQL 原理与优化之原数据锁的应用
2022/08/14 MySQL