一统天下 flutter https://github.com/webabcd/flutter_demo
作者 webabcd
一统天下 flutter - dart: 库的开发和使用
示例如下:
lib\dart\package\demo.dart
/*
* dart 库的开发和使用(import, export)
*
* import 用于从其他 .dart 文件中导入(_ 开头的是私有的不会被导入,非 _ 开头的会被导入)
* export 用于在一个 .dart 文件中定义需要导出的其他多个 .dart 文件,这样你只用 import 这一个 .dart 文件即可导入此文件中定义的多个 .dart 文件
*
* 注:目录名、文件名以及导入时定义的前缀建议用 snake_case 规范命名(避免不同文件系统是否区分大小写的问题),比如 import 'aaa_bbb_ccc.dart' as xxx_yyy_zzz;
*/
import 'package:flutter/material.dart';
import 'package:flutter_demo/helper.dart';
import 'lib1.dart'; // lib1.dart 中定义的非 _ 开头的类或函数等都会被导入
import 'lib2.dart' as lib2; // 通过前缀 lib2. 调用 lib2.dart 中的的非 _ 开头的类或函数等
import 'lib3.dart' show lib3_f1, lib3_f2; // 只导入 lib3.dart 的 lib3_f1, lib3_f2 其他都不导入
import 'lib4.dart' hide lib4_f1, lib4_f2; // lib4.dart 中定义的非 _ 开头的类或函数等都会被导入,但是不包括 lib4_f1, lib4_f2
import 'mylib.dart'; // 导入 mylib.dart 中的 export 内容
class DartPackage extends StatelessWidget {
const DartPackage({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
sample1();
return const MyWidget(text: "dart_package_demo");
}
void sample1() {
lib1_f1();
// _lib1_f2(); // _ 开头的无法导入
lib2.lib2_f1(); // 因为通过 as lib2 导入,所以需要通过前缀 lib2. 访问
lib3_f1();
lib3_f2();
// lib3_f3(); // 不在 import 的 show 里,所以无法访问
// lib4_f1(); // 在 import 的 hide 里,所以无法访问
// lib4_f2(); // 在 import 的 hide 里,所以无法访问
lib4_f3();
lib5_f1();
lib5_f2();
lib5_f3();
lib6_f1();
// lib6_f2(); // 不在 export 的 show 里,所以无法访问
// lib6_f3(); // 不在 export 的 show 里,所以无法访问
// lib7_f1(); // 在 export 的 hide 里,所以无法访问
lib7_f2();
lib7_f3();
}
}
lib\dart\package\lib1.dart
import 'package:flutter_demo/helper.dart';
void lib1_f1() {
log("lib1_f1");
}
void _lib1_f2() {
log("lib1_f2");
}
lib\dart\package\lib2.dart
import 'package:flutter_demo/helper.dart';
void lib2_f1() {
log("lib2_f1");
}
lib\dart\package\lib3.dart
import 'package:flutter_demo/helper.dart';
void lib3_f1() {
log("lib3_f1");
}
void lib3_f2() {
log("lib3_f2");
}
void lib3_f3() {
log("lib3_f3");
}
lib\dart\package\lib4.dart
import 'package:flutter_demo/helper.dart';
void lib4_f1() {
log("lib4_f1");
}
void lib4_f2() {
log("lib4_f2");
}
void lib4_f3() {
log("lib4_f3");
}
lib\dart\package\lib5.dart
import 'package:flutter_demo/helper.dart';
void lib5_f1() {
log("lib5_f1");
}
void lib5_f2() {
log("lib5_f2");
}
void lib5_f3() {
log("lib5_f3");
}
lib\dart\package\lib6.dart
import 'package:flutter_demo/helper.dart';
void lib6_f1() {
log("lib6_f1");
}
void lib6_f2() {
log("lib6_f2");
}
void lib6_f3() {
log("lib6_f3");
}
lib\dart\package\lib7.dart
import 'package:flutter_demo/helper.dart';
void lib7_f1() {
log("lib7_f1");
}
void lib7_f2() {
log("lib7_f2");
}
void lib7_f3() {
log("lib7_f3");
}
lib\dart\package\mylib.dart
export 'lib5.dart';
export 'lib6.dart' show lib6_f1; // export 支持 show(用法和 import 的一样)
export 'lib7.dart' hide lib7_f1; // export 支持 hide(用法和 import 的一样)
一统天下 flutter https://github.com/webabcd/flutter_demo
作者 webabcd