小程序常见的面试题
1、简单描述下微信⼩程序的相关⽂件类型?
答:微信⼩程序项⽬结构主要有四个⽂件类型,如下:
.WXML
是框架设计的⼀套标签语⾔,结合基础组件、事件系统,可以构建出⻚⾯的结构。
内部主要是微信⾃⼰定义的⼀套组件。
.WXSS
(WeiXin Style Sheets)是⼀套样式语⾔,⽤于描述 WXML 的组件样式。
.js
逻辑处理,⽹络请求。
.json
⼩程序设置,如⻚⾯注册,⻚⾯标题及tabBar。
app.json
必须要有这个⽂件,如果没有这个⽂件,项⽬⽆法运⾏,因为微信框架把这个作为
配置⽂件⼊⼝,整个⼩程序的全局配置。包括⻚⾯注册,⽹络设置,以及⼩程序的
window背景⾊,配置导航条样式,配置默认标题。
app.js
必须要有这个⽂件,没有也是会报错!但是这个⽂件创建⼀下就⾏ 什么都不需要写
以后我们可以在这个⽂件中监听并处理⼩程序的⽣命周期函数、声明全局变量。
2、你是怎么封装微信⼩程序的数据请求的?
答:
1、创建⼀个js⽂件 ⽂件中声明⼀个 baseUrl(接⼝地址的公共部分)
2、创建⼀个api函数 ⾥⾯可以接收 接⼝地址,请求⽅式,请求参数 然后使⽤
wx.request 发起请求 并把结果使⽤promise返回
3、我们通常会在wx.request的请求中配置 header 和响应拦截
3、微信⼩程序中有哪些参数传值的⽅法?
答:
⼀、给HTML元素添加data-属性来传递我们需要的值,然后通过
e.currentTarget.dataset。但data-名称不能有⼤写字⺟和不可以存放对象
⼆、wx.setStorageSync wx.getStorageSync
三、在navigator中添加参数传值,然后在跳转的⻚⾯使⽤onload的param参数获取
4、你使⽤过哪些⽅法,来提⾼微信⼩程序的应⽤速度?
答:
⼀、提⾼⻚⾯加载速度(压缩静态⽂件,使⽤精灵图,路由分包)
⼆、⽤户⾏为预测
三、减少默认data的⼤⼩,在不操作视图的时候,使⽤this.data.n=10这种赋值⽅式
代替this.setData({n:10})
5、分析下微信⼩程序的优劣势?
答:
优势:
1、⽆需下载,通过搜索和扫⼀扫就可以打开。
2、良好的⽤户体验:打开速度快。
3、开发成本要⽐App要低。
4、安卓上可以添加到桌⾯,与原⽣App差不多。
5、为⽤户提供良好的安全保障。⼩程序的发布,微信拥有⼀套严格的审查流程,
不能通过审查的⼩程序是⽆法发布到线上的。
劣势:
1、限制较多。⻚⾯⼤⼩不能超过1M。不能打开超过5个层级的⻚⾯。
2、样式单⼀。⼩程序的部分组件已经是成型的了,样式不可以修改。例如:幻灯
⽚、导航。
3、推⼴⾯窄,不能分享朋友圈,只能通过分享给朋友,附近⼩程序推⼴。其中附近
⼩程序也受到微信的限制。
4、依托于微信,⽆法开发后台管理功能。
6、简述微信⼩程序原理?(⼩程序是如何在微信 App ⾥运⾏的呢?)
原理上,微信 App ⾥包含 javascript 运⾏引擎。微信 App ⾥包含了 WXML/WXSS
处理引擎,最终会把界⾯翻译成系统原⽣的界⾯,并展示出来。这样做的⽬的是为
了提供和原⽣ App 性能相当的⽤户体验。
我们来意淫⼀下⼩程序加载运⾏的过程:⽤户点击打开⼀个⼩程序微信 App 从微信
服务器下载这个⼩程序分析 app.json 得到应⽤程序的配置信息(导航栏,窗⼝样
式,包含的⻚⾯列表等)加载并运⾏ app.js加载并显示在 app.json ⾥配置的第⼀个
⻚⾯) ⽐如开发者调⽤ wx.getLocation(OBJECT) 获取当前地理位置,微信 App ⾥ 的 JavaScript 引擎在执⾏这个代码时,会去调⽤微信 App ⾥实现的原⽣接⼝来获