前端框架-微信小程序
2. 微信小程序
2.1 微信小程序是单页应用吗
参考答案:
是,通过路由进行页面切换
2.2 小程序的开发,发送一个请求,怎么请求数据的
参考答案:
在微信小程序进行网络通信,只能和指定的域名进行通信
服务器域名在:小程序后台=> 开发=> 开发设置 => 服务器域名中配置,配置时需注意:1)域名只支持https(request, uploadFile,downloadFile)和wss(connectSocket)协议。
2)域名不能使用ip地址或localhost。
3)域名必须经过ICP备案。
4)服务器域名一个月内可申请5次修改。
微信小程序包括四种类型的网络请求
1) 普通HTTPS请求(wx.request)
2) 上传文件(wx.uploadFile)
3) 下载文件(wx.downloadFile)
4) WebSocket通信(wx.connectSocket)
小程序没有跨域的限制:
在普通网站中,由于浏览器的同源策略限制,存在数据的跨域请求问题,从而衍生出JSONP和CORS 两种主流的跨域问题解决方案,但是小程序内部运行机制与网页不同,小程序中的代码并不运行在浏览器中,因此小程序开发中,不存在数据的跨域请求限制问题。
2.3 小程序中数据怎么同步渲染
参考答案:
通过setData方法
解析:
setData工作原理
小程序分为逻辑层和渲染层,而我们每次逻辑层改变了,要借由 Native 进行。小程序的渲染层和逻辑层由两个线程管理:渲染层的界面使用了 WebView 进行渲染;逻辑层采用 JsCore 线程运行 JS 脚本。一个小程序存在多个界面,所以渲染层存在多个 WebView 线程,这两个线程的通信会经由微信客户端 Native 做中转,逻辑层发送网络请求也经由 Native 转发,请看下图:

所以我们不要重复 setdata ,以及减少数据的传输量。我们的数据传输实际是一次 Javascript 脚本过程,当数据量过大时会增加脚本的编译执行时间,占用 WebView JS 线程。去除不必要的事件绑定( WXML 中的 bind 和 catch ),从而减少通信的数据量和次数。
2.4 微信小程序组件的生命周期
参考答案:
组件生命周期:
组件的生命周期,指的是组件自身的一些函数,这些函数在特殊的时间点或遇到一些特殊的框架事件时被自动触发。
其中,最重要的生命周期是 created attached detached ,包含一个组件实例生命流程的最主要时间点。
- 组件实例刚刚被创建好时, created 生命周期被触发。此时,组件数据 this.data 就是在 Component 构造器中定义的数据 data 。 此时还不能调用 setData 。 通常情况下,这个生命周期只应该用于给组件 this 添加一些自定义属性字段。
- 在组件完全初始化完毕、进入页面节点树后, attached 生命周期被触发。此时, this.data 已被初始化为组件的当前值。这个生命周期很有用,绝大多数初始化工作可以在这个时机进行。
- 在组件离开页面节点树后, detached 生命周期被触发。退出一个页面时,如果组件还在页面节点树中,则 detached 会被触发。
解析:
定义生命周期方法:
生命周期方法可以直接定义在 Component 构造器的第一级参数中。
自小程序基础库版本 2.2.3 起,组件的的生命周期也可以在 lifetimes 字段内进行声明(这是推荐的方式,其优先级最高)。
Component({
lifetimes: {
attached: function() {
// 在组件实例进入页面节点树时执行
},
detached: function() {
// 在组件实例被从页面节点树移除时执行
},
},
// 以下是旧式的定义方式,可以保持对 <2.2.3 版本基础库的兼容
attached: function() {
// 在组件实例进入页面节点树时执行
},
detached: function() {
// 在组件实例被从页面节点树移除时执行
},
// ...
})
在 be
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
本面试宝典均来自校招面试题目大数据进行的整理

莉莉丝游戏公司福利 797人发布