taro 的打包产物中,每一个页面都是由三个文件组成:
所以感觉奇怪,小程序是 spa 还是 mpa?
由微信文档得知:
小程序运行在微信客户端 Native 中
WXML 和 WXSS 工作在渲染层,JS 脚本工作在逻辑层,两个层分别由两个线程运行
小程序存在多个界面,所以渲染层存在多个 WebView 线程,这两个线程的通信会经由 Native 中转
由上面的 3 就能得知小程序是 mpa 了
微信小程序主要分为 逻辑层 和 视图层,以及在他们之下的原生部分。逻辑层主要负责 JS 运行,视图层主要负责页面的渲染,它们之间主要通过 Event 和 Data 进行通信,同时通过 JSBridge 调用原生的 API。这也是以微信小程序为首的大多数小程序的架构