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'
})
}
第二个需求实现