而不是写:
import 'package:flutter_platform_widgets/flutter_platform_widgets.dart';
Run Code Online (Sandbox Code Playgroud)
导出十几个文件,我想写:
import 'package:flutter_platform_widgets/flutter_platform_widgets.dart'
show
PlatformAlertDialog,
PlatformCircularProgressIndicator,
PlatformDialogAction,
PlatformText,
showPlatformDialog;
Run Code Online (Sandbox Code Playgroud)
因为我只使用这些组件。然而,这很乏味(让我想起 Typescript 无穷无尽的导入)并且违背了 Dart 的简洁原则。
在 VSCode 中导入片段使用第一种解决方案,但有什么显着差异,例如在性能方面?有什么好的做法吗?我在官方指南中找不到任何内容。
对性能没有影响。使用的原因show是为了减少从不同包导入类时混淆的机会。
例如:让我们说
abc.dart 有 2 个班级
class One {}
class Two {}
Run Code Online (Sandbox Code Playgroud)
并且xyz.dart还有2个类:
class One {}
class Three {}
Run Code Online (Sandbox Code Playgroud)
并且您正在文件中导入这两个包
import 'abc.dart';
import 'xyz.dart';
Run Code Online (Sandbox Code Playgroud)
比如说,你只想使用 class Onefrom abc.dart,所以当你使用One它时可以是 fromabc.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
Run Code Online (Sandbox Code Playgroud)
当您show基本上使用关键字时,您所说的我只想在您的 dart 文件中使用此包中的此特定类,来自文档:
仅导入库的一部分
如果只想使用库的一部分,可以有选择地导入库。例如:
// Import only foo.
import 'package:lib1/lib1.dart' show foo;
// Import all names EXCEPT foo.
import 'package:lib2/lib2.dart' hide foo;
Run Code Online (Sandbox Code Playgroud)
现在,如果你尝试使用这个包中的任何东西,foo你会得到一个错误,因为你指定你只想使用foo.
| 归档时间: |
|
| 查看次数: |
2337 次 |
| 最近记录: |