代替写作:
import 'package:flutter_platform_widgets/flutter_platform_widgets.dart';
它会导出十几个文件,我想写:
import 'package:flutter_platform_widgets/flutter_platform_widgets.dart'
show
PlatformAlertDialog,
PlatformCircularProgressIndicator,
PlatformDialogAction,
PlatformText,
showPlatformDialog;
因为我只使用这些组件。但是,这很麻烦(使我想起了Typescript的无尽输入),并且违反了Dart的简洁原则。
在VSCode中导入片段使用第一种解决方案,但是在性能方面是否有显着差异?有某种好的做法吗?我在official guidelines中找不到任何内容。
答案 0 :(得分:4)
对性能没有影响。使用show
的原因是为了减少从不同包中导入类时的混乱机会。
例如:
abc.dart
有2个课程
class One {}
class Two {}
xyz.dart
也有2个类:
class One {}
class Three {}
并且您正在将两个包都导入文件中
import 'abc.dart';
import 'xyz.dart';
说,您只想使用One
中的类abc.dart
,所以当您使用One
时,它可能来自abc.dart
或xyz.dart
。因此,为了防止One
来自xyz.dart
,您可以使用:
import `xyz.dart` show Three // which means only `Three` class can be used in your current file from xyz.dart package
答案 1 :(得分:2)
基本上,当您使用关键字show
时,您的意思是我只想使用来自docs的dart文件中此程序包中的特定类:
仅导入库的一部分
如果只想使用一部分库,则可以有选择地导入该库。例如:
// Import only foo.
import 'package:lib1/lib1.dart' show foo;
// Import all names EXCEPT foo.
import 'package:lib2/lib2.dart' hide foo;
现在,如果您尝试使用此软件包中除foo
以外的任何内容,则会出现错误,因为您指定只想使用foo
。