详解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实现的一个include函数
Jul 21 Javascript
在Firefox下js select标签点击无法弹出
Mar 06 Javascript
使用 TypeScript 重新编写的 JavaScript 坦克大战游戏代码
Apr 07 Javascript
jQuery 表单序列化实例代码
Jun 11 jQuery
微信小程序删除处理详解
Aug 16 Javascript
JS笛卡尔积算法与多重数组笛卡尔积实现方法示例
Dec 01 Javascript
layui获取多选框中的值方法
Aug 15 Javascript
CryptoJS中AES实现前后端通用加解密技术
Dec 18 Javascript
微信小程序下拉框组件使用方法详解
Dec 28 Javascript
node.JS的crypto加密模块使用方法详解(MD5,AES,Hmac,Diffie-Hellman加密)
Feb 06 Javascript
vue-router 2.0 跳转之router.push()用法说明
Aug 12 Javascript
vue实现简易音乐播放器
Aug 14 Vue.js
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
超外差式晶体管收音机的组装与统调
2021/03/01 无线电
PHP5在Apache下的两种模式的安装
2006/09/05 PHP
php array_map array_multisort 高效处理多维数组排序
2009/06/11 PHP
php 记录进行累加并显示总时长为秒的结果
2011/11/04 PHP
php 5.6版本中编写一个PHP扩展的简单示例
2015/01/20 PHP
PHP7扩展开发之hello word实现方法详解
2018/01/15 PHP
PHP实现的微信APP支付功能示例【基于TP5框架】
2019/09/16 PHP
JavaScipt中的Math.ceil() 、Math.floor() 、Math.round() 三个函数的理解
2010/04/29 Javascript
jQuery添加/改变/移除CSS类及判断是否已经存在CSS
2014/08/20 Javascript
JavaScript获取当前网页标题(title)的方法
2015/04/03 Javascript
javascript实现一个简单的弹出窗
2016/02/22 Javascript
BootStrap 弹出层代码
2017/02/09 Javascript
JS与jQuery实现子窗口获取父窗口元素值的方法
2017/04/17 jQuery
layui选项卡效果实现代码
2017/05/19 Javascript
js原生方法被覆盖,从新赋值原生的方法
2018/01/02 Javascript
vue实现a标签点击高亮方法
2018/03/17 Javascript
C#程序员入门学习微信小程序的笔记
2019/03/05 Javascript
VUE 实现动态给对象增加属性,并触发视图更新操作示例
2019/11/29 Javascript
[06:35]2014DOTA2国际邀请赛 老男孩梦圆西雅图中国军团世界最强
2014/07/22 DOTA
[02:30]联想杯DOTA2完美世界全国高校联赛—北京站现场
2015/11/16 DOTA
Python程序中设置HTTP代理
2016/11/06 Python
Django中的FBV和CBV用法详解
2019/09/15 Python
python实现大学人员管理系统
2019/10/25 Python
细数nn.BCELoss与nn.CrossEntropyLoss的区别
2020/02/29 Python
Python中私有属性的定义方式
2020/03/05 Python
Python json模块与jsonpath模块区别详解
2020/03/05 Python
python实现图片素描效果
2020/09/26 Python
纯HTML5+CSS3制作生日蛋糕代码
2016/11/16 HTML / CSS
受欢迎的大学生自我评价
2013/12/05 职场文书
整顿机关作风心得体会
2014/09/10 职场文书
群众路线领导班子整改方案
2014/10/25 职场文书
2014年村官工作总结
2014/11/24 职场文书
教师节获奖感言
2015/07/31 职场文书
大学生就业指导课心得体会
2016/01/15 职场文书
高二数学教学反思
2016/02/18 职场文书
解析laravel使用workerman用户交互、服务器交互
2021/04/28 PHP