火牛命五行缺什么| 来姨妈不能吃什么水果| 来事头疼什么原因| 咖啡色配什么颜色好看| 怀孕去医院检查挂什么科| 搞怪是什么意思| gn什么意思| 刮宫和流产有什么区别| 阑尾炎什么症状表现| 金国人是现在的什么人| 749局是什么| 怎么算自己五行缺什么| 朱顶红什么时候剪叶子| 是什么品牌| 吃东西感觉口苦是什么原因| 细菌属于什么生物| 高铁上不能带什么东西| 生蛇是什么原因引起的| 什么样的梅花| dha宝宝什么时候吃最好| 手热脚凉是什么原因| 洗涤心灵是什么意思| 三个鬼念什么| 害喜是什么意思| 12颗珠子的手串什么意思| 阴道骚痒是什么原因| 额头上长痘痘是什么原因引起的| 什么地飞翔| 做梦梦到狮子是什么意思| 五更是什么生肖| 大队长是什么级别| 在水一方什么意思| 肝功能检查什么| 梦见鸡啄我是什么意思| 输卵管造影什么时候检查最好| 雌激素是什么| 2038年是什么年| 镭是什么| 结婚婚检都检查什么项目| 微循环是什么意思| 吴亦凡什么学历| 什么路人不能走| 银梳子梳头有什么好处和坏处| 阴道有褐色分泌物是什么原因| 寒湿重吃什么药| 擦伤用什么药好得快| 山西属于什么地区| 生酮是什么意思| 什么散步| 因子是什么意思| hcg低有什么补救的办法| 重度肠化是什么意思| 放疗化疗有什么区别| 什么是电子版照片| 腹部疼挂什么科| 小三阳是什么意思| 没什么打什么| 都有什么花| 益生菌吃了有什么好处| 舌苔厚白应该吃什么| 上海手表什么档次| 7月29是什么星座| 指日可待什么意思| 梦到分手了是什么征兆| 国医堂是什么意思| 996是什么意思| 女人有腰窝意味着什么| 醉清风是什么意思| 足跟疼挂什么科室| 抗原和抗体有什么区别| 三伏天什么意思| 记忆是什么| 甲状腺球蛋白抗体高是什么原因| 兔子不能吃什么| 完璧归赵发生在什么时期| 为什么说啄木鸟是树的医生| 切脉切的是什么脉| 猪肝可以钓什么鱼| hcg偏高是什么原因| 膀胱癌有什么症状| 肚子一按就痛什么原因| epl是什么意思| 左侧卵巢内无回声是什么意思| 左小腹疼是什么原因| 电动车不充电是什么原因| 喝大麦茶有什么好处| 玩世不恭是什么意思| 牙龈起泡是什么原因| 痛经可以吃什么水果| 什么是六爻| 反流性食管炎吃什么食物好| 荔枝不能和什么同吃| 西游记什么时候拍的| 圆脸适合什么短发| 条索影是什么意思| 左眼角有痣代表什么| 孩子肚脐眼下面疼是什么原因| 回门带什么礼物| 吃什么水果对心脏好| 汗水多吃什么药| iphone的i是什么意思| 孩子发烧肚子疼是什么原因| 肉苁蓉有什么功效| 滑膜炎吃什么好得快| 什么情况下需要割包皮| 痛风吃什么水果好| 痛风吃什么药好得快| 女生什么时候容易怀孕| 拉墨绿色的大便是什么原因| 松鼠吃什么食物| 女性查hpv挂什么科| 意志力什么意思| 总胆固醇高忌口什么| 跖疣用什么药| 翊是什么意思| 印度属于什么人种| 肾亏吃什么药最好| 胎盘位于前壁是什么意思| 老人嗜睡是什么征兆| 曩是什么意思| 为什么会突发脑溢血| 利尿什么意思| 喉咙疼痛一咽口水就疼吃什么药| 犬瘟是什么原因引起的| 大麦茶是什么做的| 辐射对人体有什么伤害| 起床口苦是什么原因| 什能组什么词| 猪肝有什么功效与作用| 吃无花果有什么好处| 大礼是什么意思| 发炎是什么意思| 养肝护肝喝什么茶最好| 唐字五行属什么| 拔凉拔凉是什么意思| luky是什么意思| 尿有泡泡是什么病| 毛泽东是什么样的人| 缺碘会有什么症状| k3是什么| 58年属什么今年多大| 你正在干什么用英语怎么说| mct是什么| 李健是清华什么专业| 率的部首是什么| 胃肠炎吃什么食物| 有头皮屑用什么洗发水| 耳鼻喉科主要看什么病| h代表什么意思| 血管变窄吃什么能改善| 农历五月二十四是什么星座| 墨菲定律讲的是什么| 硫酸亚铁是什么颜色| 儿童乳房发育挂什么科| lz什么意思| ecom什么意思| 热毒吃什么药好得快| 日龙包什么意思| 迪拜为什么那么有钱| 灵芝孢子粉有什么用| 春天的雨是什么| 火靠念什么| 竹叶青是什么| 石蜡是什么东西| 星月菩提五行属什么| 绿树成荫是什么季节| 胖子从12楼掉下来会变什么| 两颗星是什么军衔| 什么什么大笑| 吃什么去肝火效果最好| 实蛋是什么| 淋巴细胞百分比低是什么意思| 河东狮吼什么意思| 何炅的老婆叫什么名字| 小腿酸胀是什么原因| 井泉水命什么意思| 牛腩是什么部位的肉| 杞人忧天是什么意思| 努尔哈赤是什么民族| 鱼石脂是什么| 备孕什么意思| 86年属什么的| 苦衷是什么意思| 什么人不能吃黄精| 为什么会有高血压| 拍身份证穿什么颜色衣服| 高反是什么意思| 财神爷供奉什么供品| 五更泻吃什么药| 香茅是什么| 相濡以沫是什么生肖| 什么中药化结石最厉害| 沙僧是什么生肖| 拉水便是什么原因| 中间细胞百分比偏高是什么意思| 嘴巴下面长痘痘是什么原因引起的| 嘴里发咸是什么原因| 四百多分能上什么大学| 济州岛有什么好玩的| 鼻子流黄水是什么原因| 百衲衣是什么意思| 前列腺有什么症状| 1909年属什么生肖| 嘴里起泡是什么原因| 脚肿吃什么消肿最快| hr是什么牌子| 咳白痰吃什么药效果好| 湿邪是什么意思| 例假不能吃什么水果| 物以类聚什么意思| 化疗后恶心呕吐吃什么可以缓解| 面条是什么做的| 前白蛋白是什么意思| 怀孕生化是什么意思| 大腿肌肉跳动是什么原因| 番茄是什么时候传入中国的| 老是犯困是什么原因| 乏力是什么意思| 邦顿手表是什么档次| 玉米和什么不能一起吃| 总经理是什么级别| 鱼水之欢是什么意思| 楞严神咒是什么意思| 紫癜是什么| 为什么十个络腮九个帅| 为什么要军训| 怀孕天数从什么时候算起| 肝血不足吃什么食补最快| 68年属猴是什么命| 中老年人补钙吃什么牌子的钙片好| 400多分能上什么大学| 弧度是什么意思| 猪属什么五行| 阴道干燥是什么原因| 达人是什么意思| 高铁动力来源是什么| 肋骨外翻挂什么科| lee是什么档次| 愧疚是什么意思| 桑黄有什么功效| 红斑是什么皮肤病| 经常爱放屁是什么原因| 利尿剂是什么| mac版本是什么意思| 宝宝风寒感冒吃什么药最好| 虎皮兰开花寓意什么| 孕反应最早什么时候开始| 间质性肺炎是什么意思| 口腔溃疡是什么原因造成的| 送女生礼物送什么好| 闲的蛋疼是什么意思| 八月一日是什么节日| 什么叫庚日| 岱是什么意思| 为什么拍照脸是歪的| 良人是什么意思| 唇炎应该挂什么科室| 舌苔白色是什么原因| 伤寒现在叫什么病| 宫外孕术后可以吃什么| 不动产是什么意思| 阴虱用什么药物| 蜘蛛的天敌是什么动物| 愿闻其详什么意思| 百度

榆林专业指导微喷带铺设 陕西大田微喷节水技术

百度 (作者单位:江西省委组织部)来源:中国组织人事报

某些情况下,开发者需要将小程序划分成不同的子包,在构建时打包成不同的分包,用户在使用时按需进行加载。

在构建小程序分包项目时,构建会输出一个或多个分包。每个使用分包小程序必定含有一个主包。所谓的主包,即放置默认启动页面/TabBar 页面,以及一些所有分包都需用到公共资源/JS 脚本;而分包则是根据开发者的配置进行划分。

在小程序启动时,默认会下载主包并启动主包内页面,当用户进入分包内某个页面时,客户端会把对应分包下载下来,下载完成后再进行展示

# 1. 使用分包

# 1.1 配置方法

假设支持分包的小程序目录结构如下:

├── app.js
├── app.json
├── app.ftss
├── packageA
│?? └── pages
│??     ├── cat
│??     └── dog
├── packageB
│?? └── pages
│??     ├── apple
│??     └── banana
├── pages
│?? ├── index
│?? └── logs
└── utils

开发者通过在 app.json subpackages 字段声明项目分包结构:

{
  "pages":[
    "pages/index",
    "pages/logs"
  ],
  "subpackages": [
    {
      "root": "packageA",
      "pages": [
        "pages/cat",
        "pages/dog"
      ]
    }, {
      "root": "packageB",
      "name": "pack2",
      "pages": [
        "pages/apple",
        "pages/banana"
      ]
    }
  ]
}

subpackages 中,每个分包的配置有以下几项:

字段 类型 说明
root String 分包根目录
name String 分包别名,分包预下载时可以使用
pages StringArray 分包页面路径,相对与分包根目录
independent Boolean 分包是否是独立分包

# 1.2 打包原则

  • 声明 subpackages 后,将按 subpackages 配置路径进行打包,subpackages 配置路径外的目录将被打包到主包中
  • 主包也可以有自己的 pages,即最外层的 pages 字段。
  • subpackage 的根目录不能是另外一个 subpackage 内的子目录
  • tabBar 页面必须在主包内

# 1.3 引用原则

  • packageA 无法 require packageB JS 文件,但可以 require 主包、packageA 内的 JS 文件;
  • packageA 无法 import packageB 的 template,但可以 require 主包、packageA 内的 template
  • packageA 无法使用 packageB 的资源,但可以使用主包、packageA 内的资源

# 2. 独立分包

独立分包是小程序中一种特殊类型的分包,可以独立于主包和其他分包运行。从独立分包中页面进入小程序时,不需要下载主包。当用户进入普通分包或主包内页面时,主包才会被下载。

开发者可以按需将某些具有一定功能独立性的页面配置到独立分包中。当小程序从普通的分包页面启动时,需要首先下载主包;而独立分包不依赖主包即可运行,可以很大程度上提升分包页面的启动速度。

一个小程序中可以有多个独立分包。

# 2.1 配置方法

假设小程序目录结构如下:

├── app.js
├── app.json
├── app.ftss
├── moduleA
│   └── pages
│       ├── rabbit
│       └── squirrel
├── moduleB
│   └── pages
│       ├── pear
│       └── pineapple
├── pages
│   ├── index
│   └── logs
└── utils

开发者通过在app.jsonsubpackages字段中对应的分包配置项中定义independent字段声明对应分包为独立分包。

{
  "pages": [
    "pages/index",
    "pages/logs"
  ],
  "subpackages": [
    {
      "root": "moduleA",
      "pages": [
        "pages/rabbit",
        "pages/squirrel"
      ]
    }, {
      "root": "moduleB",
      "pages": [
        "pages/pear",
        "pages/pineapple"
      ],
      "independent": true
    }
  ]
}

# 2.2 限制

独立分包属于分包的一种。普通分包的所有限制都对独立分包有效。独立分包中插件、自定义组件的处理方式同普通分包。

此外,使用独立分包时要注意:

  • 独立分包中不能依赖主包和其他分包中的内容,包括 js 文件、template、ftss、自定义组件、插件等(使用 分包异步化 时 js 文件、自定义组件、插件不受此条限制)
  • 主包中的 app.ftss 对独立分包无效,应避免在独立分包页面中使用 app.ftss 中的样式;
  • App 只能在主包内定义,独立分包中不能定义 App,会造成无法预期的行为;
  • 独立分包中暂时不支持使用插件。

# 2.3 注意事项

# 2.3.1 关于 getApp()

与普通分包不同,独立分包运行时,App 并不一定被注册,因此 getApp() 也不一定可以获得 App 对象:

  • 当用户从独立分包页面启动小程序时,主包不存在,App也不存在,此时调用 getApp() 获取到的是 undefined。 当用户进入普通分包或主包内页面时,主包才会被下载,App 才会被注册。
  • 当用户是从普通分包或主包内页面跳转到独立分包页面时,主包已经存在,此时调用 getApp() 可以获取到真正的 App。

由于这一限制,开发者无法通过 App 对象实现独立分包和小程序其他部分的全局变量共享。

在 App 未定义时返回一个默认实现。当主包加载,App 被注册时,默认实现中定义的属性会被覆盖合并到真正的 App 中。

示例代码:

  • 独立分包中
const app = getApp({allowDefault: true}) // {}
app.data = 456
app.global = {}
  • app.js 中
App({
  data: 123,
  other: 'hello'
})

console.log(getApp()) // {global: {}, data: 456, other: 'hello'}

# 2.3.2 关于 App 生命周期

当从独立分包启动小程序时,主包中 App 的 onLaunch和首次onShow会在从独立分包页面首次进入主包或其他普通分包页面时调用。

由于独立分包中无法定义 App,小程序生命周期的监听可以使用ft.onAppShowft.onAppHide完成。App 上的其他事件可以使用ft.onErrorft.onPageNotFound监听。

# 3. 分包预下载

开发者可以通过配置,在进入小程序某个页面时,由框架自动预下载可能需要的分包,提升进入后续分包页面时的启动速度。对于独立分包,也可以预下载主包。

分包预下载目前只支持通过配置方式使用,暂不支持通过调用 API 完成。

# 3.1 配置方法

预下载分包行为在进入某个页面时触发,通过在app.json增加preloadRule配置来控制。

{
  "pages": ["pages/index"],
  "subpackages": [
    {
      "root": "important",
      "pages": ["index"],
    },
    {
      "root": "sub1",
      "pages": ["index"],
    },
    {
      "name": "hello",
      "root": "path/to",
      "pages": ["index"]
    },
    {
      "root": "sub3",
      "pages": ["index"]
    },
    {
      "root": "indep",
      "pages": ["index"],
      "independent": true
    }
  ],
  "preloadRule": {
    "pages/index": {
      "network": "all",
      "packages": ["important"]
    },
    "sub1/index": {
      "packages": ["hello", "sub3"]
    },
    "sub3/index": {
      "packages": ["path/to"]
    },
    "indep/index": {
      "packages": ["__APP__"]
    }
  }
}

preloadRule中,key是页面路径,value是进入此页面的预下载配置,每个配置有以下几项:

字段 类型 必填 默认值 说明
packages StringArray 进入页面后预下载分包的 root 或 name。APP 表示主包。
network String wifi 在指定网络下预下载,可选值为: all: 不限网络 wifi: 仅 wifi 下预下载
儿童湿疹用什么药膏 来例假腰疼是什么原因 梦见旋风是什么预兆 王维是诗什么 什么食物补肾
玫瑰花泡水喝有什么功效 月经量少发黑是什么原因 张菲和费玉清什么关系 coupon是什么意思 瘸子是什么意思
颈椎压迫神经吃什么药 金字旁的有什么字 196是什么意思 心绞痛挂什么科 怀孕拉肚子吃什么药
舌苔白厚腻吃什么药 翻糖蛋糕是什么意思 口甲读什么 孩子发烧呕吐是什么原因 少一颗牙齿有什么影响
梦见喝水是什么意思hcv9jop0ns1r.cn 捡到狗狗代表什么预兆hcv8jop4ns9r.cn 甲状腺功能减退是什么意思hcv8jop1ns6r.cn 什么食物对肝有好处hcv8jop0ns4r.cn 来月经可以吃什么hcv7jop6ns6r.cn
女孩学什么专业好就业hcv7jop6ns5r.cn 一什么三什么的成语hcv9jop3ns6r.cn 口腔溃疡用什么药好得快hcv7jop7ns1r.cn 梦见输钱是什么预兆hcv8jop1ns5r.cn luky是什么意思hcv8jop4ns3r.cn
吃什么补脾虚hcv9jop2ns3r.cn 寂寞是什么意思hcv8jop1ns9r.cn 系统性红斑狼疮挂什么科hcv8jop1ns2r.cn 高血压可以喝什么饮料xinjiangjialails.com 梦见下雪是什么hcv9jop1ns9r.cn
诗情画意的意思是什么hcv8jop2ns9r.cn 腹部叩诊什么音正常hcv8jop5ns7r.cn 女人小腹坠痛是什么原因hcv9jop0ns5r.cn 人肉搜索是什么意思hcv8jop5ns2r.cn 黄瓜敷脸有什么功效与作用hcv9jop1ns1r.cn
百度