微信小程序架构解析,工作原理解析

一、小程序介绍

1、小程序特点

微信小程序架构解析,工作原理解析_第1张图片

2、小程序演示


视频地址:https://v.qq.com/x/page/w0353d7co6y.html

3、小程序为什么那么快

微信小程序架构解析,工作原理解析_第2张图片
Page Frame

Native预先额外加载一个WebView
当打开指定页面时,用默认数据直接渲染,请求数据回来时局部更新
返回显示历史View
退出小程序,View状态不销毁

4、小程序入口

微信小程序架构解析,工作原理解析_第3张图片

扫码进入小程序

搜索小程序

小程序发送到桌面(Android)

发送给朋友

二、小程序架构

微信小程序的框架包含两部分View视图层、App Service逻辑层,View层用来渲染页面结构,AppService层用来逻辑处理、数据请求、接口调用,它们在两个线程里运行。

视图层使用WebView渲染,逻辑层使用JSCore运行。

视图层和逻辑层通过系统层的JSBridage进行通信,逻辑层把数据变化通知到视图层,触发视图层页面更新,视图层把触发的事件通知到逻辑层进行业务处理。

微信小程序架构解析,工作原理解析_第4张图片

 

小程序启动时会从CDN下载小程序的完整包

微信小程序架构解析,工作原理解析_第5张图片

 

三、View (页面视图)

视图层由 WXML 与 WXSS 编写,由组件来进行展示。

将逻辑层的数据反应成视图,同时将视图层的事件发送给逻辑层。

1、View – WXML

WXML(WeiXin Markup Language)

支持数据绑定

支持逻辑算术、运算

支持模板、引用

支持添加事件(bindtap)

微信小程序原理解析

wxml编译器:wcc  把wxml文件 转为 js   执行方式:wcc index.wxml

2、View – WXSS

WXSS(WeiXin Style Sheets)

支持大部分CSS特性

添加尺寸单位rpx,可根据屏幕宽度自适应

使用@import语句可以导入外联样式表

不支持多层选择器-避免被组件内结构破坏

微信小程序原理解析

wxss编译器:wcsc 把wxss文件转化为 js 执行方式: wcsc index.wxss

3、View – WXSS Selectors

WXSS目前支持如下选择器:

微信小程序架构解析,工作原理解析_第6张图片
4、View – Component

小程序提供了一系列组件用于开发业务功能,按照功能与HTML5的标签进行对比如下:

微信小程序架构解析,工作原理解析_第7张图片

小程序的组件基于Web Component标准

使用Polymer框架实现Web Component

微信小程序架构解析,工作原理解析_第8张图片

 

5、View – Native Component

目前Native实现的组件有