最近搞flutter组件化感觉比原生香多了,记录一下。
1、flutter组件化通过创建module模块来形成业务模块,module模块天生可以直接孤立运行,并且可以被主工程依赖;
2、flutter的插件也可以形成插件功能和独立运行和module功能类似(方便和原生交流);
3、模块间的资源可以被依赖共享,但是访问方式需要注意(其他json等文件类似)
用login_module登录模块举例:
login_module模块图片资源: images/test.png
当模块独立运行时候是:
Image.asset('images/test.png'fit: BoxFit.fitWidth)
当集成到主工程运行时候需要改变路径:
Image.asset('packages/login_module/images/test.png',fit: BoxFit.fitWidth,)
注意packages:是固定打头
为了切换方便,可以在studio增加运行变量控制:
运行添加参数软件上直接:--dart-define=IS_RUN_ALONE=true
模块代码中接收变量:
static const isRunAlone = bool.fromEnvironment('IS_RUN_ALONE', defaultValue: false);
于是模块中资源访问代码变成: Image.asset(isRunAlone ? 'images/test.png' : 'packages/login_module/images/test