微信小程序内部那些事

Posted 恪愚

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信小程序内部那些事相关的知识,希望对你有一定的参考价值。

  1. 微信小程序没有windowdocument,它更像是一个类似 Node.js 的宿主环境。因此在小程序内部不能使用 document.querySelector 这样的选择器,也不支持 XMLHttpRequestlocationlocalStorage 等浏览器 API,只能使用小程序自己提供的 API;
  2. 小程序不是直接 URL 访问的,而是通过信道服务进行通信和会话管理。所以不支持 Cookie!使用 wx.request 时不存在跨域问题;
  3. 和 Node 一样,小程序的 js 模块化加载采用 CommonJS 规范,通过 require 加载;
  4. 小程序是基于“数据驱动”模式的,但是它是“单向数据流”的绑定方式;

小程序架构

微信小程序分为“视图层”和“逻辑层”。视图层是在 webview 中渲染,逻辑层则用 javascriptCore 来渲染。其中视图层可以有多个,但逻辑层则只有一个。

小程序中视图层负责页面渲染,逻辑层负责逻辑处理、状态管理、请求和接口调用。逻辑层和视图层的通信是通过微信的 JSBridge 实现的。

Native 中有一个 WeixinJSBridge 模块。所以也可以说是通过 Native 通信的。

逻辑层数据变化通过 JSB 通知到视图层,触发视图层更新;当视图层触发事件则继续通过 JSB 将事件通知到逻辑层做处理。
WeixinJSB 在开发者工具、iosandroid 的实现机制不同。在调用 Native 能力时主要使用 <

以上是关于微信小程序内部那些事的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序内部那些事

微信小程序 webview缓存

微信小程序webview打开h5点击按钮无反应

微信小程序webview的缓存问题

PHP如何判断访问来源是微信小程序webview?

微信小程序webview内H5多级跳转没有返回键问题