从微信小程序开发者工具源码看实现原理(二)- - 小程序技术实现 (4)

<!-- asdebug -->: 提供业务逻辑层的WeixinJSBridge模拟以及一些针对开发者工具的接口,如在控制台输入help可以看到提供的接口。其内容为extensions/appservice/index.js.

<!-- vendorlist -->: 为业务逻辑层注入WAService.js,为业务逻辑层提供小程序底层基础库的功能

此外,开发者工具服务还在appservice.html的body注入一段脚本,脚本的作用是将业务逻辑代码通过script动态注入到head中执行,这段代码如下:

从微信小程序开发者工具源码看实现原理(二)- - 小程序技术实现

最终生成的appservice.html中的head情况如下图所示:

从微信小程序开发者工具源码看实现原理(二)- - 小程序技术实现

通过上图可以看出,我们写的页面逻辑都引入到页面中,并且分别从app.js开始一一执行;小程序代码调用Page构造器的时候,小程序基础库会记录页面的基础信息,如初始数据(data)、方法等。需要注意的是,如果一个页面被多次创建,并不会使得这个页面所在的JS文件被执行多次,而仅仅是根据初始数据多生成了一个页面实例(this),在页面JS文件中直接定义的变量,在所有这个页面的实例间是共享的。

参考

浅看小程序

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyfzzp.html