金狮贵宾会

登录
免费开通

浅析微信小程序 App() 和 Page() 函数的内部实现

浅析微信小程序 App() 和 Page() 函数的内部实现

在小程序开发中,, App(...) 和 Page(...) 是我们最熟悉也是最常用的两个函数,,今天我们就来剖析一下它们的内部实现,,以及挪用时的初始化流程。。。。

在微信开发者工具中,,编译运行你的小程序项目,,然后翻开控制台,,输入 document 并回车,,就可以看到小程序运行时,,WebView 加载的完整的 page-frame.html ,,如下图:

浅析微信小程序 App() 和 Page() 函数的内部实现

通太过析这个 HTML 文件,,我们可以获得小程序的启动执行流程大致如下:

浅析微信小程序 App() 和 Page() 函数的内部实现

此图来自上述文章,,我们这里不再重复赘述这些流程,,下面我们来看一下其中的 App() 和 Page() 的细节。。。。这两个函数在小程序框架 WAService.js 中界说,,并在 app.js 和每个页面的 page.js 中举行挪用实例化。。。。

在微信开发者工具的控制台中执行 openVendor() 要领,,可以翻开小程序框架所在目录,,如下:

/Users/用户名/Library/Application Support/微信web开发者工具/WeappVendor/基础库版本号目录

本文以 1.9.94 基础库为例举行剖析。。。。 WAService.js 文件的结构如下:

;(function(global) {

    // WeixinJSBridge 的界说和加载

    // NativeBuffer 的界说和加载

    // wxConsole 的界说和加载

    // WeixinWorker 的界说和加载

    // Reporter 的界说和加载

    // __appServiceSDK__ 的界说和加载

    wx = __appServiceSDK__.wx,

    // exparser 的界说和加载

    // __virtualDOM__ 的界说和加载

    // __appServiceEngine__ 的界说和加载

    Page = __appServiceEngine__.Page,
    Component = __appServiceEngine__.Component,
    Behavior = __appServiceEngine__.Behavior,
    __webview_engine_version__ = .02,
    App = __appServiceEngine__.App,
    getApp = __appServiceEngine__.getApp,
    getCurrentPages = __appServiceEngine__.getCurrentPages,
    __createPluginGlobal = __appServiceEngine__.__createPluginGlobal,

    // __wxModule__ 的界说和加载

    definePlugin = __wxModule__.definePlugin,
    requirePlugin = __wxModule__.requirePlugin;

    // define 要领的界说

    // require 要领的界说

    global.App = App;
    global.Page = Page;
    global.Component = Component;
    global.Behavior = Behavior;
    global.__webview_engine_version__ = 0.02;
    global.getApp = getApp;
    global.getCurrentPages = getCurrentPages;
    global.wx = wx;
    global.definePlugin = __wxModule__.definePlugin;
    global.requirePlugin = __wxModule__.requirePlugin;

})(this);

我们发明,, WAService.js 中界说了 WeixinJSBridge 和 wx 这两个基础 API 荟萃,,同时也包括的其他一些框架焦点,,如 exparser ,, __virtualDOM__ ,, __appServiceEngine__ 等。。。。其中 __appServiceEngine__ 提供了框架最基本的对外接口,,如 App,,Page,,Component,,Behavior 等要领;;;;; exparser 提供了框架底层的能力,,如实例化组件,,数据转变监听,,View 层与逻辑层的交互等;;;;; __virtualDOM__ 则起着毗连 __appServiceEngine__ 和 exparser 的作用,,如对开发者传入 Page 要领的工具举行名堂化再传入 exparser 的对应要领处理。。。。(此段剖析摘自上述文章)

由上可知,,本文要剖析的全局函数 App() 和 Page() 是对 WAService.js 中界说的 __appServiceEngine__ 工具同名要领的引用。。。。下面我们简要剖析一下它们的内部实现和初始化流程。。。。

App() 和 getApp() 函数

凭证微信小程序 开发文档 ,, App() 函数用来注册一个小程序,,吸收一个 object 工具参数,,其指定小程序的生命周期函数等。。。。我们从微信开发者工具的函数提醒可以知道,, App() 函数的声明如下:

function App(options: _AppOptions): void

关于入参 object 工具(_AppOptions)的属性说明如下:

浅析微信小程序 App() 和 Page() 函数的内部实现

别的,,全局的 getApp() 函数可以用来获取到小程序实例,,它的声明如下:

function getApp(): object


【本站声明】
  1、本站文章中所选用的图片及文字泉源于网络以及用户投稿,,由于未联系到知识产权人或未发明有关知识产权的挂号,,若有知识产权人并不肯意我们使用,,若是有侵权请连忙联系。。。。
  2、本网站差池文章中所涉及的内容真实性、准确性、可靠性认真,,仅系客观性形貌,,如您需要相识该类商品/服务详细的资讯,,请您直接与该类商品/服务的提供者联系。。。。


KESION 金狮贵宾会软件

KESION 金狮贵宾会软件是海内领先的在线教育软件及私域社交电商软件服务提供商,,恒久专注于为企业提供在线教育软件及社交电商SaaS平台解决方案。。。。
公司焦点产品云开店SaaS社交电商服务平台、在线教育SaaS服务平台、教育企业数字化SaaS云平台、企微营销助手、私有化自力安排品牌网校和在线教育咨询等。。。。

KESION 一直通过手艺立异,,提供产品和服务,,助力企业向数字化转型,,通过科技驱动商业刷新,,让商业变得更智慧!



▼点击进入金狮贵宾会官网相识更多



热门标签
微信小程序 SaaS
上/下篇
  • 微信小程序封装get和post操作流程

  • 京东小程序怎么装修(适用移动端)

换一换相关推荐
精选内容
热门精选
金狮贵宾会·宾至如归-尊贵显赫 金狮贵宾会·宾至如归-尊贵显赫 金狮贵宾会·宾至如归-尊贵显赫
【网站地图】
浅析微信小程序 App() 和 Page() 函数的内部实现