详解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 相关文章推荐
JSON.parse 解析字符串出错的解决方法
Jul 08 Javascript
JQuery操作表格(隔行着色,高亮显示,筛选数据)
Feb 23 Javascript
JavaScript 创建运动框架的实现代码
May 08 Javascript
Flex通过JS获取客户端IP和计算机名的实例代码
Nov 21 Javascript
js库Modernizr的介绍和使用
May 07 Javascript
angularjs学习笔记之双向数据绑定
Sep 26 Javascript
获取input标签的所有属性的方法
Jun 28 Javascript
微信小程序  http请求封装详解及实例代码
Feb 15 Javascript
vue.js与后台数据交互的实例讲解
Aug 08 Javascript
jQuery each和js forEach用法比较
Feb 27 jQuery
微信小程序云开发实现云数据库读写权限
May 17 Javascript
超详细的5个Shell脚本实例分享(值得收藏)
Aug 15 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调用Oracle存储过程
2006/10/09 PHP
php实现批量压缩图片文件大小的脚本
2014/07/04 PHP
php中将一个对象保存到Session中的方法
2015/03/13 PHP
迪菲-赫尔曼密钥交换(Diffie?Hellman)算法原理和PHP实现版
2015/05/12 PHP
php字符串操作针对负值的判断分析
2016/07/28 PHP
PHP命名空间namespace的定义方法详解
2017/03/29 PHP
php接口实现拖拽排序功能
2018/04/23 PHP
PHP正则表达式笔记与实例详解
2019/05/09 PHP
PHP面向对象程序设计中的self、static、parent关键字用法分析
2019/08/14 PHP
PHP设计模式(三)建造者模式Builder实例详解【创建型】
2020/05/02 PHP
PHP基于phpqrcode类生成二维码的方法示例详解
2020/08/07 PHP
基于JQuery实现异步刷新的代码(转载)
2011/03/29 Javascript
从JQuery源码分析JavaScript函数的apply方法与call方法
2014/09/25 Javascript
网页中JS函数自动执行常用三种方法
2016/03/30 Javascript
Angularjs 设置全局变量的方法总结
2016/10/20 Javascript
Vue声明式渲染详解
2017/05/17 Javascript
BootStrap表单控件之复选框checkbox和单选择按钮radio
2017/05/23 Javascript
在JS循环中使用async/await的方法
2018/10/12 Javascript
python网络编程学习笔记(三):socket网络服务器
2014/06/09 Python
Python利用flask sqlalchemy实现分页效果
2020/08/02 Python
Jupyter notebook在mac:linux上的配置和远程访问的方法
2019/01/14 Python
python实现贪吃蛇小游戏
2020/03/21 Python
Numpy之将矩阵拉成向量的实例
2019/11/30 Python
Windows上安装tensorflow  详细教程(图文详解)
2020/02/04 Python
python不同系统中打开方法
2020/06/23 Python
python中pickle模块浅析
2020/12/29 Python
thinkphp5 路由分发原理
2021/03/18 PHP
英国复古皮包品牌:Beara Beara
2018/07/18 全球购物
存储过程和sql语句的优缺点
2014/07/02 面试题
技校毕业生自荐信范文
2014/03/07 职场文书
C++程序员求职信范文
2014/04/14 职场文书
保安公司服务承诺书
2014/05/28 职场文书
2014年幼儿园重阳节活动方案
2014/09/16 职场文书
银行转正自我鉴定
2014/09/29 职场文书
学生打架检讨书
2014/10/20 职场文书
义卖募捐活动总结
2015/05/09 职场文书