2.如何查看分包体积:(编译器右上角) 详情 -- 基本信息 -- 本地代码(展开就可看到)
*/
“subPackages”: [{ // 通过 subPackages 节点,声明分包结构
“root”: “package1”, // 第一个分包的根目录 相对于根目录 package1 进行存放的
“name”: “pack1”, // 分包别名
“pages”: [ //当前分包下,所有页面的相对存放路径(会自动生成对应页面 – 与上面的pages相同)
“pages/index/index”
]
}, {
“root”: “package2”,
“name”: “pack2”,
“independent”: true, //将package2,设置为独立分包
“pages”: [
“pages/index/index”
]
}],
* 2). 打包原则:
+ 小程序会按照subPackages的配置进行分包,subPackages之外的目录将被打包到主包中
+ 主包也可以有自己的pages(即最外层的pages字段)
+ tabBar页面必须在主包内
+ 分包之间不能互相嵌套
* 3). 引用原则:
+ 主包无法引用分包内的私有资源
+ 分包之间不能互相引用私有资源
+ 分包可以引用主包内的公共资源
###
### 独立分包
* 什么是独立分包:
+ 本质上也是分包,只不过它比较特殊,可以独立于主包和其他分包而单独运行
* 与普通分包区别:
+ 最主要区别:是否依赖于主包才能运行
+ 普通分包:必须依赖于主包才能运行
+ 独立分包可以再不下载主包的情况下,独立运行
* 应用场景:
+ 可以按需将某些,具有一定功能独立性的页面配置到独立分包中,原因如下:
- 当小程序从普通分包页面启动时,需要先下载主包
- 独立分包不依赖主包即可运行,可以很大程度上提升分包页面的启动速度
* 配置方法:
+ 在 subPackages中,设置independent: true(如上图所示👆🏻)
* 引用原则:
+ 独立分包、普通分包、主包之间是相互隔绝的,不能互相引用彼此的资源
+ 主包无法引用独立分包内的私有资源
+ 独立分包之间,不能互相引用私有资源
+ 独立分包和普通分包之间,不能互相引用私有资源
+ **特别注意:**独立分包中**不能引用**主包内的公共资源,而普通分包**可以**
### 分包预下载
* 什么是分包预下载:
+ 在进入小程序的某个页面时,由框架自动预下载可能需要的分包,从而提升进入后续分包页面时的启动速度
* 配置方法:
+ 预下载分包行为,会再进入指定页面时触发。在app.json中,使用 preloadRule 定义分包预下载规则
```
/*
分包预下载规则:
* network:在指定网络模式下进行预下载(默认wifi)。
* all 不限网络
* wifi 仅wifi模式下进行预下载
* packages:需要预下载哪些分包
*可以通过name / root 指定预下载哪些分包
*/
"preloadRule": {
"pages/allColors/allColors": { // 需要预加载其他包的页面路径
"network": "all", // 在指定模式中预下载, 只有 WiFi / all 选项
"packages": ["package1", "pack2"] // 需要预加载的分包 -- 填写路径或者名字(name)都可以,因为都具有唯一性。如:package1为(root)路径, pack2 为(name)名字
}
},
```
* 分包预下载限制:
+ 同一个分包中的页面享有共同的预下载大小限额2M,例如:![](https://img-blog.csdnimg.cn/6f40884ee30e471d9153d59ac34b56cd.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAU2hpbWVuZ18xOTg5,size_20,color_FFFFFF,t_70,g_se,x_16)
PS:
**ES6**
* 列举常用的ES6特性:
* 箭头函数需要注意哪些地方?
* let、const、var
* 拓展:var方式定义的变量有什么样的bug?
* Set数据结构
* 拓展:数组去重的方法
* 箭头函数this的指向。
* 手写ES6 class继承。
**[开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】](https://bbs.csdn.net/topics/618166371)**
![](https://img-blog.csdnimg.cn/img_convert/aac1740e50faadb9a6a7a5b97f9ccba8.png)
**微信小程序**
* 简单描述一下微信小程序的相关文件类型?
* 你是怎么封装微信小程序的数据请求?
* 有哪些参数传值的方法?
* 你使用过哪些方法,来提高微信小程序的应用速度?
* 小程序和原生App哪个好?
* 简述微信小程序原理?
* 分析微信小程序的优劣势
* 怎么解决小程序的异步请求问题?
![](https://img-blog.csdnimg.cn/img_convert/60b1dbe5c76e264468aa993416a9a031.png)
**其他知识点面试**
* webpack的原理
* webpack的loader和plugin的区别?
* 怎么使用webpack对项目进行优化?
* 防抖、节流
* 浏览器的缓存机制
* 描述一下二叉树, 并说明二叉树的几种遍历方式?
* 项目类问题
* 笔试编程题:
![](https://img-blog.csdnimg.cn/img_convert/aec12fc95e5722b9f2f1f22eeb5e67bd.png)
#### 最后
技术栈比较搭,基本用过的东西都是一模一样的。快手终面喜欢问智力题,校招也是终面问智力题,大家要准备一下一些经典智力题。如果排列组合、概率论这些基础忘了,建议回去补一下。