We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
拿 vue-template-complier 分析出来的 AST,一一映射成小程序语法,拆分成小程序的文件结构
核心能力/难点:
vue 中的 script 部分,则在运行时进行处理。VNode diff 后,不再进行 patch 操作, 小程序隔离了渲染进程(渲染层)和逻辑进程(逻辑层),我们不需要处理渲染层,只需要调用 setData() 方法,更新一份最新的数据就可以了。
类React 小程序,难点在于如何将 jsx 转换为小程序模板,JSX 过于灵活,单纯基于 AST(抽象语法树)技术很难进行一对一转换。
在初始化阶段以及第一次 mount 时,我们通过 setData() 方法初始化小程序。具体是通过递归数据结构,渲染小程序页面。接着,在数据发生变化时,我们通过 React reconciler (负责 diff 算法)阶段的计算信息,以及自定义配置的 HostConfig 衔接函数,更新数据,并通过 setData() 方法触发小程序的渲染更新。
HostConfig 是宿主环境配置,不同平台的 renderers 在 HostConfig 中内置基本方法(比如 appendChild、removeChild、insertBefore),就可以构造自己的渲染逻辑
React 支持多端小程序的架构设计
Taro next 如何实现的? Taro 团队提供 taro-react 包,用来连接 React reconciler 和 taro-runtime,它主要负责:
trao next 架构图
The text was updated successfully, but these errors were encountered:
No branches or pull requests
思想
拿 vue-template-complier 分析出来的 AST,一一映射成小程序语法,拆分成小程序的文件结构
核心能力/难点:
mpvue 结合了编译时和运行时的方案;编译时主要处理 template、style,具体的编译过程依赖 AST 技术。
vue 中的 script 部分,则在运行时进行处理。VNode diff 后,不再进行 patch 操作,
小程序隔离了渲染进程(渲染层)和逻辑进程(逻辑层),我们不需要处理渲染层,只需要调用 setData() 方法,更新一份最新的数据就可以了。
taro
类React 小程序,难点在于如何将 jsx 转换为小程序模板,JSX 过于灵活,单纯基于 AST(抽象语法树)技术很难进行一对一转换。
在初始化阶段以及第一次 mount 时,我们通过 setData() 方法初始化小程序。具体是通过递归数据结构,渲染小程序页面。接着,在数据发生变化时,我们通过 React reconciler (负责 diff 算法)阶段的计算信息,以及自定义配置的 HostConfig 衔接函数,更新数据,并通过 setData() 方法触发小程序的渲染更新。
HostConfig 是宿主环境配置,不同平台的 renderers 在 HostConfig 中内置基本方法(比如 appendChild、removeChild、insertBefore),就可以构造自己的渲染逻辑
React 支持多端小程序的架构设计
Taro next 如何实现的?
Taro 团队提供 taro-react 包,用来连接 React reconciler 和 taro-runtime,它主要负责:
trao next 架构图
The text was updated successfully, but these errors were encountered: