weex 源码目录说明
weex-vue-framework
weex-vue-framework-directory.pngframeworks
驱动 weex 的 framework 代码,
- legacy: weex 在使用 vue 之前的 代码
- vanilla:
Vanilla JS 是一个快速、轻量级和跨平台的框架用来构建强大的 JavaScript 应用程序。
JavaScript 框架,weex 版本里面没有实现。
目前版本打包好的 framework 有四个,在 index.js 中看到,
import * as Vanilla from './vanilla/index'
import * as Vue from 'weex-vue-framework'
import * as Weex from './legacy/index'
import Rax from 'weex-rax-framework'
export default {
Vanilla,
Vue,
Rax,
Weex
}
-
weex-vue-framework: 就是 vue 驱动 weex 的 framework,源码字 vue 仓库。
-
rax :容器
render
渲染引擎
1、 native:
native 上的 weex 渲染引擎, 这里只是初始化入口,源文件: html5/frameworks/legacy
,这个也是 在.we 使用的
framework,vue2.0 使用的 是 node_modules/weex_vue_framework/。
2、 weex-web-render
web 平台 weex 渲染引擎, .we 在 web 平台使用的 framework。
3、 weex-vue-render
web 平台 vue weex 的组件库
runtime
关键代码,
1、初始化 framework
2、负责和 native 交互
3、vdom,定义 dom 节点,各个 framework 都是 适配这个 来驱动 weex。
4、注册 组件 和 module
1、vdom
定义 dom 节点,各个 framework 都是 适配这个 来驱动 weex。
2、init.js
初始化 方法, 初始化 framework,createInstance,createServices
3、task-center
vdom 和 native 交互的代码
4、config
将 Document,Element,Comment,Listener,TaskCenter,sendTasks 封装到一个对象,传入 framework 使用。
5、callback-manager
callback 管理类。js 调用 native 时,如果需要回调,则回调方法会暂时存放在 这里,
native 调用 callback 回调时,vue-framework 的 callback 方法会调用 task-center 中的 callback,
这时候就从callback-manager 中取出对应的 callback 执行。
4、listener
weex 1.0 时代 的方法,现在已废弃。
5、handler
Listener 对象的 handler,也是废弃的。
services
1、broadcast-channel
全局广播(才有 vue 之后,也废弃了)
shared
公用代码
vue
vue 源码在 这里
vue-framework-directory.pngsrc/core
里面都是 vue 的核心代码,渲染算法,vdom ,数据绑定 等等都在这里,
components
global-api
instance
observer
util
vdom
platforms/web
web 平台 入口
platforms/weex
weex 平台 入口
1.runtime
定义的 组件,模块,初始化 Vue的入口。
-
components
-
directives
-
modules
-
node-ops.js
操作 node 的类。vue 核心库中会调用 操作 node 会调用这里的方法,通过这个 node-ops 再把消息传递到 weex 中。
patch.js
封装 node-ops
、modules
,传递到 vue/core 中
text-node.js
文本节点。
2. util
3. entry-compiler.js
weex-vue build入口
4. entry-framework.js
weex 平台
5. entry-runtime-factory.js
vue 核心库的入口