58同城的开源动态化方案,目前市面上比较完善的开源方案。
将build方法内的代码使用dart2dsl转化成json,将非build方法里的代码使用dart2js转化成js。
环境配置
FlatBuffers
将js转化成bin文件,好处是不用反序列化,大大提升Fair解析、加载资源的速度
faircli
用来快捷创建动态化工程和载体工程
1 |
|
开发流程
pubspec.yaml中配置依赖
入口添加FairApp
1 | void main() { |
使用 @FairPatch() 注解标记需要动态化的 Widget
执行 build_runner 命令,编译生成下发产物
使用 FairWidget 加载 bundle 资源
教程
FairBinding的作用
在某个 Widget 中引用了另一个本地自定义的 Widget。对于这样的情况,我们需要使用 @FairBinding 注解,为本地 Widget 生成映射关系。
FairWell注解和FairDelegate
问题
如何运行js代码的?