摇树与 Flutter 中的选择性导入?

Tree-shaking vs selective import in Flutter?

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


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

...但是 Flutter 进行了 tree-shaking。 show 关键字在 Flutter 中有任何好处还是完全没有意义?

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

show/hide/as 用于不污染自动完成,保留一些 classes "private",或解决冲突.

假设您同时使用 RxDart 和 Mobx:这两个包都定义了一个 Observable class.

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

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

可能是:

  • "I don't care about Mobx's Observable":
import 'package:rxdart/rxdart.dart';
import 'package:mobx/mobx.dart' hide Observable;
  • "I want only Mobx's "反应":
import 'package:rxdart/rxdart.dart';
import 'package:mobx/mobx.dart' show reaction;
  • "I'll use an alias because I may use both"
import 'package:rxdart/rxdart.dart' as rxdart;
import 'package:mobx/mobx.dart' as mobx;