简介
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/
最艰深的解读,最粗浅的干货,最简洁的教程,泛滥你不晓得的小技巧等你来发现!
欢送关注我的公众号:「程序那些事」,懂技术,更懂你!