首页 > 其他分享 >一统天下 flutter - dart: 库的开发和使用

一统天下 flutter - dart: 库的开发和使用

时间:2023-03-22 10:13:18浏览次数:54  
标签:f1 f2 package void dart 一统天下 import flutter

一统天下 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

标签:f1,f2,package,void,dart,一统天下,import,flutter
From: https://www.cnblogs.com/webabcd/p/flutter_lib_dart_package_demo.html

相关文章