ChangJoo-Park / what-to-do

앞으로 해야할 일 또는 생각하는 걸 보관하기 위함
6 stars 0 forks source link

Dart 라이브러리 #53

Closed ChangJoo-Park closed 6 years ago

ChangJoo-Park commented 6 years ago
ChangJoo-Park commented 6 years ago

라이브러리

자바스크립트 개발할 때 모듈 번들러인 webpack을 이용해 외부 라이브러리를 사용하려면 import를 사용합니다. Node.js의 경우엔 require를 사용합니다. Dart는 import 키워드를 외부 라이브러리를 가져오는데 사용합니다. Dart로 웹 개발시 일반적으로 사용하는 dart:html을 프로젝트에서 사용하려면 다음과 같이 합니다.

import 'dart:html';

파일 시스템 경로 또는 다른 라이브러리를 가져오려면 package:를 사용할 수 있습니다. package: schemepub 같은 패키지 매니저가 제공하는 라이브러리르 가리킵니다.

여기서 pub은 자바스크립트 개발에 사용하는 npm 같은 역할을 합니다.

import 'package:test/test.dart';

Prefix 이용하기

import 'package:lib1/lib1.dart';
import 'package:lib2/lib2.dart' as lib2;

// Uses Element from lib1.
Element element1 = new Element();

// Uses Element from lib2.
lib2.Element element2 = new lib2.Element();

lib1.dart에서 가져온 파일 내용은 바로 접근할 수 있지만 lib2.dartlib2 prefix가 있어야만 내부의 코드에 접근할 수 있습니다.

라이브러리 일부만 사용하기

여러 기능을 가진 라이브러리의 경우 자바스크립트는 일부만 import 할 수 있습니다. (웹팩을 사용한다고 가정) Dart는 일부만 가져올수도 일부만 제외할수 있습니다.

// Import only foo.
import 'package:lib1/lib1.dart' show foo;

// Import all names EXCEPT foo.
import 'package:lib2/lib2.dart' hide foo;

라이브러리 레이지로딩

Dart는 라이브러리를 처음부터 불러오지 않고 필요할 때 불러오는 방법도 지원합니다. 레이지로딩은 다음 장점이 있습니다.

레이지로드를 하려면 deferred as 키워드를 이용합니다

import 'package:greetings/hello.dart' deferred as hello;
Future greet() async {
  await hello.loadLibrary();
  hello.printGreeting();
}