4

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


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

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

4

1 回答 1

11

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

show//而是用于不污染自动完成,保持某些类“私有”,或解决冲突hideas

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

如果您尝试在同一个文件中同时导入两者package:rxdart/rxdart.dart;package:mobx/mobx.dart那么您将遇到冲突。

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

它可能是:

  • “我不在乎 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;
于 2019-08-23T18:29:49.823 回答