简介:
由于小程序发布的时候每个包最多只能放置2MB的东西,所以把所有的代码资源都放置在一个主包当中不显示,所以就需要进行合理分包,,但是分包后整个小程序最终不能超过20MB。
一般情况下,我习惯将tabbar页面都放置在主包中,其余的相关页面都放置到对应的分到当中。
比如:在我的界面可以点击之后进入到个人中心页面、订单页面、地址管理页面等等,那么这些页面我就会放置在package_home的分包当中。
首先设置主包的页面:
- pages/index/index.vue
- pages/message/message.vue
- pages/mine/mine.vue
其余的页面分别放置到与之对应的:
- package_home
- package_message
- package_mine
设置路径【pages.json】:
首先设置主包的:
主包的就正常写到pages中即可
"pages": [{
"path": "pages/index/index",
"style": {
"navigationBarTitleText": "主页"
}
},
{
"path": "pages/message/message",
"style": {
"navigationBarTitleText": "消息中心"
}
},
{
"path": "pages/mine/mine",
"style": {
"navigationBarTitleText": "个人中心"
}
}]
然后设置分包:
"subPackages": [
{
"root": "package_mine",//分包的根目录
"pages": [
{
"path": "addressAdd/addressAdd",
"style": {
"navigationBarTitleText": "新增地址"
}
},
{
"path": "addressManage/addressManage",
"style": {
"navigationBarTitleText": "地址管理"
}
}
]
}
],
注意:主包和分包是平级的,不要写成嵌套关系。
上边展示的分包代码,我只是拿了其中一个包做演示,其余的跟上边的规格相同。
使用分包下的页面:
const handleClick = () = >{
uni.navigateTo({
url: '/package_mine/addressManage/addressManage'
})
}
注意:引用页面的时候路径最前边要加上 / ,其规格为 '/分包根目录/要引入的分包下的页面'