根据Dart指南中的同样内容,他们进一步解释了相对导入的原因:
没有什么深刻的理由去更喜欢前者,只是它更短而已,我们希望保持一致。
个人而言,尽管绝对路径更冗长,但我更喜欢使用绝对路径,这意味着当我从不同文件夹中的不同dart文件中导入时,我不必计算出要导入的文件与当前文件的相对位置。以下是一个虚构的例子:
我有两个位于不同文件夹级别的dart文件需要导入themes/style.dart
:
其中一个是widgets/animation/box_anim.dart
,相对路径导入将如下所示:
import '../../themes/style.dart';
另一个是相对导入的 screens/home_screen.dart
:
import '../themes/style.dart';
这可能会让人感到混乱,因此我发现最好在两个文件中都使用绝对路径,保持一致:
import 'package:myapp/themes/style.dart';
保持这个规则的一致性非常重要。因此,无论你使用什么方法 - 一致性是关键!
Dart语言代码检查工具(Linter for Dart)包也谈到了避免在/lib文件夹中使用相对导入,但更多地关注于在'/lib'文件夹中混合使用时不应该做的事情:
避免在lib/中使用相对导入。
当混合使用相对和绝对导入时,可能会出现同一个成员以两种不同的方式导入的混淆情况。避免这种情况的简单方法是确保您没有在其路径中包括lib/的相对导入。
vscode-dart-import
扩展正常工作。谢谢。 - mahfuzbuild_runner
,那么你绝对应该使用相对导入(https://github.com/dart-lang/build/issues/3526#issuecomment-1576934849)。 - Flawnbuild_runner
,那么你肯定应该使用相对导入(https://github.com/dart-lang/build/issues/3526#issuecomment-1576934849)。 - undefined