专栏首页小程序的道路小程序生命周期
原创

小程序生命周期

小程序并不是 HTML5 应用,而是更偏向于传统的 CS 架构,它是基于数据驱动的模式,一切皆组件(视图组件)。下面是小程序与普通 Web App 的对比。 普通 HTML5 都是执行在浏览器的宿主环境,浏览器提供 window、document 等 BOM 对象,但小程序没有 window、document,它更像是一个类似 Node.js 的宿主环境;因此在小程序内不能使用 document.querySelector 这类 DOM 选择器,也不支持 XMLHttpRequest、location、localStorage 等这些浏览器提供的 API,只能使用小程序自己实现的 API 小程序并非是直接通过 URL 访问的,而是通过信道服务进行通信和会话管理,所以它不支持 Cookie 存储,同时访问资源使用 wx.request 则不存在跨域的问题 小程序在 JavaScript 的模块化上支持 CommonJS,通过 require 加载,跟 Node.js 类似 小程序的页面样式完全继承了 CSS 的语法,但是在选择器上面会少一些,布局支持 flex 布局 小程序的整体框架采用面向状态编程方式,状态管理从 API 来看采用类似 Redux 的设计方式;单向数据绑定方式,当 View 在 Action 操作后,只能通过 Action 的业务处理来更新 View 页面组件模块上,WXML 提供了一整套的「自定义 UI 组件标签」,有些组件实际是 HTML5 实现的,有些组件为了解决权限、性能和适配等问题实际是 Native 实现的(如 map、input、canvas、video)

小程序生命周期包括应用的生命周期(逻辑层 App Service)和页面的生命周期(视图层 View),两者支持的事件不同,详见官方文档中的这张配图。

掌握了上面小程序实现原理的内容,再来看小程序的生命周期就很好理解了。 小程序启动时,会同时启动两个线程,一个负责页面渲染的 WebView(实际不止一个,后面讲解),一个负责逻辑的 JavaScriptCore。逻辑层初始化后会将初始化数据(app.js 中的 global data)通过 JSBridge 传递给渲染层进行渲染,渲染层 WebView 页面渲染完之后又会跟逻辑层通信。 理解了小程序架构和启动流程,小程序整个生命周期的流程只需要对着上面的流程图就可以很容易理解。

文章内容参照 https://juejin.im 掘金

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 微信小程序入门

    登录微信,点击发现操作栏进入的页面,在页面的最下方,有个小程序,点击进去,有很多的小程序列表。对于每一个小程序,直接点击就可以使用,不需要下载。不像A...

    用户2305175
  • 微信小程序布局

    开始我们的入门后,接下来就可以开始创建我们的第一个demo页面了。按照官网的步骤,在pages模块下新建我们自己的模块demo,添加好对应的文件,然后在app....

    用户2305175
  • 小程序事件

    当用户点击该组件的时候会在该页面对应的Page中找到相应的事件处理函数,跳转到demo页面。然后在对应的js中写出事件的具体实现方法

    用户2305175
  • 浅谈小程序运行机制

    接触小程序有一段时间了,总得来说小程序开发门槛比较低,但其中基本的运行机制和原理还是要懂的。“比如我在面试的时候问到一个关于小程序的问题,问小程序有window...

    Fundebug
  • 期待已久的直播能力开放了!年底之前来波大的

    哈喽艾瑞巴蒂~久违的小程序半夜更新又来啦~! 还是熟悉的时间,还是熟悉的躁动。 这次更新有些丰满,小程序更新更多连接能力—— 1、更多硬件连接功能开放 、小程序...

    企鹅号小编
  • 小程序里打开别的小程序

    如果是你自己公司的其他小程序,你当然可以很方便的获取到。但是如果是别人的小程序,你该如何获取appid呢,其实我上面的演示视频里有讲解,你仔细去看下就知道了。完...

    编程小石头
  • 林超:小程序云服务的发展探索

    12月15日,由腾讯云主办的首届“腾讯云+社区开发者大会”在北京举行。本届大会以“新趋势•新技术•新应用”为主题,汇聚了超40位技术专家,共同探索人工智能、大数...

    云加社区技术沙龙
  • 新浪微博小爬虫

    python的中文编码实在是非常麻烦,不光如此,因为有些用户的简介里有一些特殊符号,®或者笑脸之类的,于是在这里纠结了很久,好歹最后是成功了(其实也就是过滤掉了...

    机器学习AI算法工程
  • 小程序又又又……

    没错,让你夜不能寐的我们又来了! 这次更新有些丰满,小程序更新更多连接能力—— 1更多硬件连接功能等着你 小程序内支持搜索周边的 Wi-Fi,用户在知道密码后可...

    企鹅号小编
  • 微信小程序开放 Wi-Fi、NFC 连接能力,未来可直接刷地铁?

    以下为具体升级要点: 1、升级实时音视频录制及播放能力 为更高效地连接用户与商家,小程序提供了实时音视频录制及播放组件。开发者在小程序自建后台服务或接入任意的云...

    企鹅号小编

扫码关注云+社区

领取腾讯云代金券