详解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 相关文章推荐
根据一段代码浅谈Javascript闭包
Dec 14 Javascript
让你的博客飘雪花超出屏幕依然看得见
Jan 04 Javascript
jquery对ajax的支持介绍
Dec 10 Javascript
js实现可键盘控制的简单抽奖程序
Jul 13 Javascript
关于JavaScript 原型链的一点个人理解
Jul 31 Javascript
JavaScript给每一个li节点绑定点击事件的实现方法
Dec 01 Javascript
详解vue服务端渲染浏览器端缓存(keep-alive)
Oct 12 Javascript
fastadmin中调用js的方法
May 14 Javascript
vue与django集成打包的实现方法
Nov 11 Javascript
js实现简单的打印表格
Jan 15 Javascript
JS实现数据动态渲染的竖向步骤条
Jun 24 Javascript
JS实现选项卡插件的两种写法(jQuery和class)
Dec 30 jQuery
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中的cookie不用刷新就生效的方法
2012/02/04 PHP
PHP实现把MySQL数据库导出为.sql文件实例(仿PHPMyadmin导出功能)
2014/05/10 PHP
将CMYK颜色值和RGB颜色相互转换的PHP代码
2014/07/28 PHP
Ubuntu中搭建Nginx、PHP环境最简单的方法
2015/03/05 PHP
Yii2创建多界面主题(Theme)的方法
2016/10/08 PHP
PHP常用的三种设计模式
2017/02/17 PHP
PHP+redis实现的悲观锁机制示例
2018/06/12 PHP
直接生成打开窗口代码,不必下载
2008/05/14 Javascript
jQuery 源码分析笔记(2) 变量列表
2011/05/28 Javascript
浏览器图片选择预览、旋转、批量上传的JS代码实现
2013/12/04 Javascript
JS保留两位小数,多位小数的示例代码
2014/01/07 Javascript
jquery浏览器滚动加载技术实现方案
2014/06/03 Javascript
jquery用offset()方法获得元素的xy坐标
2014/09/06 Javascript
jQuery中slidedown与slideup方法用法示例
2016/09/16 Javascript
easyui取消表单实时验证,提交时统一验证的简单实例
2016/11/07 Javascript
jquery UI Datepicker时间控件冲突问题解决
2016/12/16 Javascript
es6中的解构赋值、扩展运算符和rest参数使用详解
2017/09/28 Javascript
Vue编写可显示周和月模式的日历 Vue自定义日历内容的显示
2019/06/26 Javascript
使用 node.js 模仿 Apache 小部分功能
2019/07/07 Javascript
nodejs实现聊天机器人功能
2019/09/19 NodeJs
python网页请求urllib2模块简单封装代码
2014/02/07 Python
python分析nignx访问日志脚本分享
2015/02/26 Python
python实现发送和获取手机短信验证码
2016/01/15 Python
python 类详解及简单实例
2017/03/24 Python
对python中的装包与解包实例详解
2019/08/24 Python
在python中求分布函数相关的包实例
2020/04/15 Python
离线状态下在jupyter notebook中使用plotly实例
2020/04/24 Python
Keras设置以及获取权重的实现
2020/06/19 Python
Python使用paramiko连接远程服务器执行Shell命令的实现
2021/03/04 Python
美国著名的户外用品品牌:L.L.Bean
2018/01/05 全球购物
心理健康心得体会
2014/01/02 职场文书
公务员培训自我鉴定
2014/02/01 职场文书
财务会计毕业生个人求职信
2014/02/03 职场文书
聚美优品陈欧广告词
2014/03/14 职场文书
中英文求职信范文
2015/03/19 职场文书
导游词之舟山普陀山
2019/11/06 职场文书