当前位置:   article > 正文

Flutter 组件化

flutter 组件化

最近搞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.png',
  fit: BoxFit.fitWidth,
),

注意:isRunAlone:true则是模块独立运行直接访问资源;false则是集成主工程访问图片;

4、依赖的第三方依赖可以传递a->b->c ,a模块的yaml文件中的插件依赖,可以被c中访问;所以当一些公用的第三方插件依赖可以放到common模块里面去统一管理;

5、对于公共的图片比如返回箭头图片等icon(每个很多模块会用到),也可以放到公共模块image里面,对于访问方式参考3中方式;

6、最后就是组件之间通信,flutter通过路由方式访问,彻底解耦flutter组件间、主工程和组件模块间的页面访问,fluro或者flutter自带的都可以;解耦尽量做到主工程不要有模块业务的引用;

总结:flutter组件化比原生组件化干净利落,天生支持组件化。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/289686
推荐阅读
相关标签
  

闽ICP备14008679号