详解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


相关推荐: Laravel如何配置和使用缓存?(Redis代码示例)  如何挑选最适合建站的高性能VPS主机?  如何在阿里云购买域名并搭建网站?  如何为不同团队 ID 动态生成多个独立按钮  Laravel如何操作JSON类型的数据库字段?(Eloquent示例)  Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】  黑客入侵网站服务器的常见手法有哪些?  使用spring连接及操作mongodb3.0实例  ,网页ppt怎么弄成自己的ppt?  Python并发异常传播_错误处理解析【教程】  香港服务器租用费用高吗?如何避免常见误区?  JavaScript常见的五种数组去重的方式  Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全  Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】  佛山网站制作系统,佛山企业变更地址网上办理步骤?  Laravel如何使用Laravel Vite编译前端_Laravel10以上版本前端静态资源管理【教程】  百度浏览器网页无法复制文字怎么办 百度浏览器复制修复  Laravel模型关联查询教程_Laravel Eloquent一对多关联写法  Laravel如何与Pusher实现实时通信?(WebSocket示例)  Laravel如何与Docker(Sail)协同开发?(环境搭建教程)  Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】  如何在云指建站中生成FTP站点?  Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】  网站页面设计需要考虑到这些问题  谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程  Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制  Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知  Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】  Laravel如何生成API文档?(Swagger/OpenAPI教程)  MySQL查询结果复制到新表的方法(更新、插入)  如何快速辨别茅台真假?关键步骤解析  如何在万网主机上快速搭建网站?  如何在阿里云虚拟服务器快速搭建网站?  Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程  Laravel如何实现用户注册和登录?(Auth脚手架指南)  北京网站制作的公司有哪些,北京白云观官方网站?  JS中对数组元素进行增删改移的方法总结  如何快速使用云服务器搭建个人网站?  Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】  Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】  Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程  如何选择可靠的免备案建站服务器?  微信小程序 五星评分(包括半颗星评分)实例代码  如何在新浪SAE免费搭建个人博客?  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives  Laravel Artisan命令怎么自定义_创建自己的Laravel命令行工具完全指南  Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面  javascript事件捕获机制【深入分析IE和DOM中的事件模型】  瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口