详解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 相关文章推荐
图片按比例缩放函数
Jun 26 Javascript
Jquery 弹出层插件实现代码
Oct 24 Javascript
JavaScript 以对象为索引的关联数组
May 19 Javascript
js实现的仿新浪微博完美的时间组件升级版
Dec 20 Javascript
jQuery对Select的操作大集合(收藏)
Dec 28 Javascript
javascript如何操作HTML下拉列表标签
Aug 20 Javascript
js判断手机浏览器操作系统和微信浏览器的方法
Apr 30 Javascript
jQuery插件实现可输入和自动匹配的下拉框
Oct 24 Javascript
浅述节点的创建及常见功能的实现
Dec 15 Javascript
vue父组件向子组件传递多个数据的实例
Mar 01 Javascript
基于jQuery使用Ajax动态执行模糊查询功能
Jul 05 jQuery
js+canvas实现五子棋小游戏
Aug 02 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 中dirname(_file_)讲解
2007/03/18 PHP
PHP长连接实现与使用方法详解
2018/02/11 PHP
PHP面向对象程序设计之对象克隆clone和魔术方法__clone()用法分析
2019/06/12 PHP
一个对于Array的简单扩展
2006/10/03 Javascript
动态刷新 dorado树的js代码
2009/06/12 Javascript
JavaScript 拾漏补遗
2009/12/27 Javascript
高性能Javascript笔记 数据的存储与访问性能优化
2012/08/02 Javascript
js+div实现文字滚动和图片切换效果代码
2015/08/27 Javascript
JS组件Bootstrap Table表格多行拖拽效果实现代码
2015/12/08 Javascript
基于JavaScript代码实现随机漂浮图片广告
2016/01/05 Javascript
Bootstrap框架下下拉框select搜索功能
2020/03/26 Javascript
jQuery实现select下拉框获取当前选中文本、值、索引
2017/05/08 jQuery
微信小程序表单弹窗实例
2018/07/19 Javascript
微信小程序中this.data与this.setData的区别详解
2018/09/17 Javascript
vue-cli3搭建项目的详细步骤
2018/12/05 Javascript
JavaScript之Blob对象类型的具体使用方法
2019/11/29 Javascript
Angular封装表单控件及思想总结
2019/12/11 Javascript
原生JS实现留言板
2020/03/26 Javascript
跟老齐学Python之玩转字符串(1)
2014/09/14 Python
Python 实现简单的电话本功能
2015/08/09 Python
django2+uwsgi+nginx上线部署到服务器Ubuntu16.04
2018/06/26 Python
python抓取网页内容并进行语音播报的方法
2018/12/24 Python
PyQT5 QTableView显示绑定数据的实例详解
2019/06/25 Python
pygame库实现移动底座弹球小游戏
2020/04/14 Python
在Django中自定义filter并在template中的使用详解
2020/05/19 Python
python使用QQ邮箱实现自动发送邮件
2020/06/22 Python
Mio Skincare英国官网:身体紧致及孕期身体护理
2018/08/19 全球购物
初中政治教学反思
2014/01/17 职场文书
争先创优演讲稿
2014/09/15 职场文书
酒店服务员岗位职责
2015/02/09 职场文书
市场部岗位职责范本
2015/04/15 职场文书
小学教师教学随笔
2015/08/14 职场文书
在Windows下安装配置CPU版的PyTorch的方法
2021/04/02 Python
解析python中的jsonpath 提取器
2022/01/18 Python
python 使用tkinter与messagebox写界面和弹窗
2022/03/20 Python
青岛市的收音机研制与生产
2022/04/07 无线电