共计 1727 个字符,预计需要花费 5 分钟才能阅读完成。
简介
Library 是 dart 用来组织代码的一种十分有用的形式,通过定义不同的 Library,能够将十分有用的 dart 代码进行封装,从而提供给其余的我的项目应用。尽管咱们能够自在应用 import 或者 export 来对 library 进行导入和导入。然而什么样的用法才是最合适的用法呢?一起来看看吧。
应用 part 和 part of
尽管很多程序员厌恶应用 part,然而 dart 的确提供了 part 这种性能用来将一个大的 lib 拆分成多个小的文件。
没错,和 part 的中文含意一样,part 就是将 lib 文件进行拆分用的。
part of 示意以后文件是另外一个主文件的一部分。part 示意主文件是由援用的文件组成的。
咱们举个例子,如果当初有三个文件 student_age.dart,student_name.dart 和 student.dart.
其中后面两个文件是前面一个文件的组成部分。
student_age.dart:
part of student;
int getAge(){return 18;}
student_name.dart:
part of student;
String getName(){return "jack";}
student.dart:
library student;
part 'some/other/student_age.dart';
part 'some/other/student_name.dart';
下面的代码有什么问题呢?
下面代码的问题在于对于 student_age.dart 来说,外面的 part of 只是指定了所属的 library, 然而咱们读起来会一头雾水,因为不晓得具体的 library 到底在什么中央。
所以应该这样写:
part of '../../student.dart';
src 中的文件
默认状况下 lib 目录下的 src 文件只是 package 外部应用的,不容许被内部的我的项目所调用。
所以咱们肯定不要间接引入 lib 包中的 src 文件。
package 中的 lib 文件
对于 package 来说,lib 中的文件是能够被导出的文件,然而咱们在引入 package 的时候最好不要应用绝对路径或者相对路径间接导入 lib 中的文件。
而是须要应用 import ‘package:’.
举个例子,如果咱们有上面构造的 library 文件:
my_package
└─ lib
└─ api.dart
test
└─ api_test.dart
api.dart 就是咱们要导出的文件。如果咱们在 api_test.dart 中须要援用 api.dart,则能够有上面两种形式:
import 'package:my_package/api.dart';
和:
import '../lib/api.dart';
其中下面一种形式是官网举荐的形式,为什么不应用上面一种形式呢?这是因为相对路径的形式只能在包外部应用。并且 dart 官网不倡议将 lib 放在援用门路中,如果要援用 lib 外部的文件,肯定要应用 package:。
当然,如果是 package 外部的援用,则优先应用相对路径,比方:
my_package
└─ lib
├─ src
│ └─ stuff.dart
│ └─ utils.dart
└─ api.dart
test
│─ api_test.dart
└─ test_utils.dart
那么对应 lib/api.dart 来说,能够这样援用:
import 'src/stuff.dart';
import 'src/utils.dart';
对于 utils.dart 来说,能够这样援用:
import '../api.dart';
import 'stuff.dart';
对于 test/api_test.dart 来说,能够这样援用:
import 'package:my_package/api.dart';
import 'test_utils.dart';
总之,不要在 import 的门路中呈现 lib。
总结
以上就是 dart 中 Library 编写最佳实际。
本文已收录于 http://www.flydean.com/28-dart-libraries-effective/
最艰深的解读,最粗浅的干货,最简洁的教程,泛滥你不晓得的小技巧等你来发现!
欢送关注我的公众号:「程序那些事」, 懂技术,更懂你!