Skip to content

uniapp实现顶部导航栏功能,兼容H5、微信小程序和支付宝小程序

需求:

1、H5端有的页面有导航栏,有的没有

2、小程序端返回方法大部分是返回上一页,有的页面需要返回到特定页面

实现:

1、在pages.json里,设置h5端隐藏默认的导航栏

json
"globalStyle": {
    // 用来控制标题栏的显示
    // #ifdef H5
    "navigationStyle": "custom"
    // #endif
  }

2、自定义导航栏组件,在需要导航栏的页面引入,不需要导航栏的页面不用引入(针对的是H5端)

html
<!-- #ifdef H5-->
    <nav-bar-component
      :title="title"
      :click-left="clickLeft"
    ></nav-bar-component>
    <!-- #endif -->

NavBarComponent组件

vue
<template>
  <uni-nav-bar
    left-icon="left"
    :title="title"
    @clickLeft="clickLeft"
  />
</template>

<script>
  export default {
    name: 'NavBarComponent',
    props: {
      title: {
        type: String,
        default: '标题'
      },
      clickLeft: {
        type: Function,
        default: () => uni.navigateBack()
      }
    }
  }
</script>

<style scoped lang="scss">

</style>

上面第一个需求已经实现

3、自定义返回方法,可以在onUnload钩子里定义返回方法

js
onUnload() {
      // 重新定义返回方法
      uni.navigateTo({
        url:'/pages/hospitalvisit/ConsultationDetails/ConsultationDetails'
      })
    }

第二个需求实现

如有转载或 CV 的请标注本站原文地址