摇树与 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;
在 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;