详解vue.js移动端导航navigationbar的封装

发布时间 - 2026-01-11 02:11:55    点击率:

有几天没更新了,这几天上海天气比较热,天气一热就懒得写了。今天感觉还好,就写下导航部分的封装吧。

关于环境搭建和底部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移动端导航  # vue-router配合ElementUI实现导航的实例  # VueRouter导航守卫用法详解  # vue实现nav导航栏的方法  # vue实现导航栏效果(选中状态刷新不消失)  # vue 挂载路由到头部导航的方法  # vue2导航根据路由传值  # 而改变导航内容的实例  # vue-router路由与页面间导航实例解析  # vue router仿天猫底部导航栏功能  # 详解VueRouter进阶之导航钩子和路由元信息  # 详解使用Vue Router导航钩子与Vuex来实现后退状态保存  # vue-router 导航钩子的具体使用方法  # 详解vue-router 2.0 常用基础知识点之导航钩子  # vue2.0实现导航菜单切换效果  # vue 和vue-touch 实现移动端左右导航效果(仿京东移动站导航)  # 非常实用的vue导航钩子  # vue2.0 elementUI制作面包屑导航栏  # 自己的  # 导航条  # 都有  # 几天  # 写了  # 这几天  # 上海  # 请参考  # 大家多多  # 就可以  # 两篇  # 方法如下  # 装下  # 完毕后  # 暴露了  # js  # bgRed  # type  # script  # red 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 使用PHP下载CSS文件中的所有图片【几行代码即可实现】  Laravel如何实现数据导出到CSV文件_Laravel原生流式输出大数据量CSV【方案】  如何在万网利用已有域名快速建站?  Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例  如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】  Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理  瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口  Laravel如何处理和验证JSON类型的数据库字段  ,网页ppt怎么弄成自己的ppt?  如何撰写建站申请书?关键要点有哪些?  JS弹性运动实现方法分析  Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验  北京企业网站设计制作公司,北京铁路集团官方网站?  如何在香港免费服务器上快速搭建网站?  PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑  Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】  php结合redis实现高并发下的抢购、秒杀功能的实例  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  详解Android中Activity的四大启动模式实验简述  html如何与html链接_实现多个HTML页面互相链接【互相】  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  文字头像制作网站推荐软件,醒图能自动配文字吗?  为什么要用作用域操作符_php中访问类常量与静态属性的优势【解答】  使用C语言编写圣诞表白程序  如何在云主机快速搭建网站站点?  Laravel Eloquent关联是什么_Laravel模型一对一与一对多关系精讲  如何正确选择百度移动适配建站域名?  如何用狗爹虚拟主机快速搭建网站?  Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】  Laravel如何生成和使用数据填充?(Seeder和Factory示例)  标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析  Laravel如何使用Blade组件和插槽?(Component代码示例)  香港服务器租用费用高吗?如何避免常见误区?  如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)  Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程  HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】  Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】  如何挑选优质建站一级代理提升网站排名?  Laravel如何创建自定义Facades?(详细步骤)  如何打造高效商业网站?建站目的决定转化率  如何快速搭建高效简练网站?  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  无锡营销型网站制作公司,无锡网选车牌流程?  Linux系统运维自动化项目教程_Ansible批量管理实战  香港服务器网站推广:SEO优化与外贸独立站搭建策略  用yum安装MySQLdb模块的步骤方法  惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  Firefox Developer Edition开发者版本入口  js代码实现下拉菜单【推荐】