Из тех же Указаний по дротикам , ниже они приводят причину относительного импорта:
Нет серьезных оснований отдавать предпочтение первому - оно просто короче, и мы хотим быть последовательными.
Лично я предпочитаю абсолютный метод, несмотря на то, что он более многословен, так как это означает, что когда я импортирую из разных файлов дротиков (в других папках), я не Необходимо выяснить, где находится импортируемый файл относительно текущего файла. Готовый пример:
У меня есть два файла 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';
И просто придерживайтесь этого правила повсюду. Так что, в принципе, какой бы метод вы ни использовали - согласованность является ключевой!
Пакет Linter for Dart также имеет , что сказать об этом , но больше о Нельзя смешивать в папке '/ lib':
НЕ избегать относительного импорта файлов в lib /.
При смешивании относительного и абсолютного импорта возможно создать путаницу, когда один и тот же элемент импортируется двумя разными способами. Самый простой способ избежать этого - убедиться, что у вас нет относительного импорта, который включает lib / в свои пути.