自定义tabbar
在项目根目录下创建custom-tab-bar文件夹,在该文件夹下创建组件
自定义tabbar作为一个自定义组件进行构建。构建完毕后在app.json中的tabBar选项中配置custom,并配置完整的list选项。
"tabBar": {"color": "#000","selectedColor": "#d8e106","list": [{"pagePath": "pages/tabbar/index/index","selectedIconPath": "/pages/images/tabbar/index_selected.png","iconPath": "/pages/images/tabbar/index.png","text": "首页"},{"pagePath": "pages/tabbar/cinema/cinema","selectedIconPath": "/pages/images/tabbar/cinema_selected.png","iconPath": "/pages/images/tabbar/cinema.png","text": "影院"},{"pagePath": "pages/tabbar/film/film","selectedIconPath": "/pages/images/tabbar/film_selected.png","iconPath": "/pages/images/tabbar/film.png","text": "电影"},{"pagePath": "pages/tabbar/mine/mine","selectedIconPath": "/pages/images/tabbar/mine_selected.png","iconPath": "/pages/images/tabbar/mine.png","text": "我的"}],"custom": true}
小程序会自动引入页面作为tabbar,不需要在wxml中手动书写custom-tab-bar组件。
当在app.json中开启lazyCoding时自定义tabbar在第一次渲染时不会注入自定义tabbar,看不到tabbar显示,需要在页面中手动书写组件。
自定义tababr使用fixed布局在底部,不会作为page内的元素。
使用自定义tabbar后,需要在每个使用tababr的页面中设置当前tababr的选中状态。当点击自定义tabbar时需要手动跳转到对应的页面。
自定义导航
自定义导航使用自定义组件进行自定义。需要在app.json中开启navigationStyle:custom并在usingComponent中引入导航组件。自定义导航需要在使用自定义组件的页面中手动书写组件,否则不显示。
"navigationStyle": "custom","nav": "/components/nav/nav"
如果自定义导航组件使用absolute定位在顶部,当页面高度超过可显示高度后,上滑页面导航也会上滑,如果自定义导航组件使用fixed定位在顶部,当页面高度超过可显示高度后,上滑页面导航会固定不动。
当自定义导航脱离文本流时,页面的顶部内容会被导航遮盖。需要设置page的padding-top或者使用空白元素占位。
自定义导航的高度是右上角的菜单胶囊的高度和其顶部的距离之和。
使用自定义导航和自定义tababr后可以把中间显示区域设置为固定的高度使用scroll-view进行滚动。
分包
微信小程序上传对包的大小有限制,每个包最大2mb,因此通过分包减小单独包的大小。
在app.json中配置subpackages字段。每个分包中都有pages文件夹
"subpackages": [{"root": "packages/property", // 分包路径"pages": ["pages/property/property" // 分包中的页面的路径]},{"root": "packages/parking","pages": ["parking/pages/car_number_pay/car_number_pay"]}]
使用分包后可以使用分包预加载,在app.json中配置preloadRule字段。分包预下载是当进入某个页面时下载配置的packages中的分包。
"preloadRule": {"pages/tabbar/index/index":{// 进入的页面的路径"network": "all","packages": ["packages/property"]}}
如果觉得《微信小程序自定义tabbar 自定义导航 分包》对你有帮助,请点赞、收藏,并留下你的观点哦!