详解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 相关文章推荐
让iframe框架网页在任何浏览器下自动伸缩
Aug 18 Javascript
JS操作图片(增,删,改) 例子
Apr 17 Javascript
jQuery函数的等价原生函数代码示例
May 27 Javascript
让JavaScript中setTimeout支持链式操作的方法
Jun 19 Javascript
IE10中flexigrid无法显示数据的解决方法
Jul 26 Javascript
jQuery插件开发精品教程(让你的jQuery更上一个台阶)
Nov 07 Javascript
使用jQuery的easydrag插件实现可拖动的DIV弹出框
Feb 19 Javascript
BootStrap中按钮点击后被禁用按钮的最佳实现方法
Sep 23 Javascript
JS实现移动端判断上拉和下滑功能
Aug 07 Javascript
Vue axios全局拦截 get请求、post请求、配置请求的实例代码
Nov 28 Javascript
解决echarts数据二次渲染不成功的问题
Jul 20 Javascript
JavaScript实现鼠标移入随机变换颜色
Nov 24 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 目录与文件处理-郑阿奇(续)
2011/07/04 PHP
php中convert_uuencode()与convert_uuencode函数用法实例
2014/11/22 PHP
WampServer搭建php环境时遇到的问题汇总
2015/07/23 PHP
PHP中的静态变量及static静态变量使用详解
2015/11/05 PHP
jquery入门—编写一个导航条(可伸缩)
2013/01/07 Javascript
jQuery判断checkbox是否选中的小例子
2013/12/02 Javascript
JQuery中dataGrid设置行的高度示例代码
2014/01/03 Javascript
基于Jquery实现键盘按键监听
2014/05/11 Javascript
javascript创建函数的20种方式汇总
2015/06/23 Javascript
js当前页面登录注册框,固定div,底层阴影的实例代码
2016/10/04 Javascript
JS实现点击下拉菜单把选择的内容同步到input输入框内的实例
2018/01/23 Javascript
vue 刷新之后 嵌套路由不变 重新渲染页面的方法
2018/09/13 Javascript
详解vue如何使用rules对表单字段进行校验
2018/10/17 Javascript
详解vue中this.$emit()的返回值是什么
2019/04/07 Javascript
JS数组扁平化(flat)方法总结详解
2019/06/24 Javascript
在vue中使用vuex,修改state的值示例
2019/11/08 Javascript
antd-mobile ListView长列表的数据更新遇到的坑
2020/04/08 Javascript
原生JS实现天气预报
2020/06/16 Javascript
[48:51]完美世界DOTA2联赛PWL S2 Magma vs InkIce 第一场 11.28
2020/12/02 DOTA
Python实现感知机(PLA)算法
2017/12/20 Python
PyCharm设置护眼背景色的方法
2018/10/29 Python
python实现连连看辅助(图像识别)
2020/03/25 Python
快速解决docker-py api版本不兼容的问题
2019/08/30 Python
详解django中Template语言
2020/02/22 Python
使用tensorflow框架在Colab上跑通猫狗识别代码
2020/04/26 Python
解决Tensorflow2.0 tf.keras.Model.load_weights() 报错处理问题
2020/06/12 Python
英国最大线上综合鞋类商城:Office
2017/12/08 全球购物
加拿大廉价机票预订网站:CheapOair.ca
2018/03/04 全球购物
美国购买当代和现代家具网站:MODTEMPO
2018/07/20 全球购物
一份软件工程师的面试试题
2016/02/01 面试题
求职信写作要突出重点
2014/01/01 职场文书
餐厅楼面主管岗位职责范本
2014/02/16 职场文书
公司委托书格式范本
2014/09/16 职场文书
小学科学教学计划
2015/01/21 职场文书
生死牛玉儒观后感
2015/06/11 职场文书
你有一份《诚信考试承诺书》待领取
2019/11/13 职场文书