【问题标题】:Tree-shaking vs selective import in Flutter?Flutter 中的摇树 vs 选择性导入?
【发布时间】:2019-12-29 01:42:12
【问题描述】:

在 Dart 中,我们可以使用 show 关键字选择性地导入部分文件或库...


    import 'package:http/http.dart' show get;

...但是 Flutter 会摇树。 show 关键字在 Flutter 中有什么好处还是完全没有意义?

【问题讨论】:

    标签: flutter dart tree-shaking


    【解决方案1】:

    import/exports 指令与 tree-shaking 无关。

    show/hide/as 用于不污染自动完成、保持某些类“私有”或解决冲突。

    假设你同时使用 RxDart 和 Mobx:这两个包都定义了一个 Observable 类。

    如果您尝试在同一个文件中同时导入 package:rxdart/rxdart.dart;package:mobx/mobx.dart,则会发生冲突。

    因此,您需要使用show/hide/as 告诉编译器解决方案是什么。

    可能是:

    • “我不关心 Mobx 的 Observable”:
    import 'package:rxdart/rxdart.dart';
    import 'package:mobx/mobx.dart' hide Observable;
    
    • “我只想要 Mobx 的“反应”:
    import 'package:rxdart/rxdart.dart';
    import 'package:mobx/mobx.dart' show reaction;
    
    • “我将使用别名,因为我可能同时使用两者”
    import 'package:rxdart/rxdart.dart' as rxdart;
    import 'package:mobx/mobx.dart' as mobx;
    

    【讨论】:

    • 但是假设我有一个简单的问题,我需要知道我的平台是否是IOS。我导入 dart:io 以使用 Platform.isIOS 但包中没有其他内容。 tree-shaking 是否会使最终应用程序的大小与我所做的 import 'dart:io' show Platform 相同?
    • 是的。正如我在答案中所说,无需使用show & co
    猜你喜欢
    • 2019-04-24
    • 1970-01-01
    • 2023-02-06
    • 1970-01-01
    • 1970-01-01
    • 2020-02-28
    • 1970-01-01
    • 2021-11-26
    • 1970-01-01
    相关资源
    最近更新 更多