나는 Dart가 JavaScript로 컴파일된다는 것을 이해하고 , 거기에서 답을 보지 못했지만 라이브러리 의 Dart 언어 사양 을 읽었 습니다. 또한 토론 양식 에서 '기존'이라는 단어를 검색 하면 관련없는 3 개의 결과가 나타납니다.
Dart가 jQuery 또는 Raphael과 같은 기존 JavaScript 라이브러리의 사용을 지원하는지 아는 사람이 있습니까?
나는 Dart가 JavaScript로 컴파일된다는 것을 이해하고 , 거기에서 답을 보지 못했지만 라이브러리 의 Dart 언어 사양 을 읽었 습니다. 또한 토론 양식 에서 '기존'이라는 단어를 검색 하면 관련없는 3 개의 결과가 나타납니다.
Dart가 jQuery 또는 Raphael과 같은 기존 JavaScript 라이브러리의 사용을 지원하는지 아는 사람이 있습니까?
답변:
대답은 이제 예입니다! Dart는 이제 Dart 앱에서 기존 JavaScript 코드를 사용하는 JS-interop 라이브러리를 제공합니다. 여기에서 자세히 알아보세요 : https://www.dartlang.org/articles/js-dart-interop/
dart 코드에서 직접 javascript를 호출 할 수 없습니다. native 지시문은 자체적으로 javascript로 컴파일되는 dartc의 핵심 라이브러리 (dart : core, dart : dom, dart : html, dart : json 등) 용으로 예약되어 있습니다.
이제 더 간단한 방법 https://pub.dartlang.org/packages/js (현재 버전 0.6.0-beta.6)가 있습니다.
다음과 같이 JS 클래스와 함수를 Dart에서 사용할 수 있도록합니다.
@JS("JSON.stringify")
external String stringify(obj);
@JS('google.maps')
library maps;
// Invokes the JavaScript getter `google.maps.map`.
external Map get map;
// `new Map` invokes JavaScript `new google.maps.Map(location)`
@JS()
class Map {
external Map(Location location);
external Location getLocation();
}
// `new Location(...)` invokes JavaScript `new google.maps.LatLng(...)`
//
// We recommend against using custom JavaScript names whenever
// possible. It is easier for users if the JavaScript names and Dart names
// are consistent.
@JS("LatLng")
class Location {
external Location(num lat, num lng);
}
자세한 내용은 패키지 읽어보기를 참조하십시오.
토론 포럼에서이 스레드를 참조하십시오 : Calling old javascript code .
dart:js
도서관 도 있습니다. 그리고 여기에 기사 자바 스크립트와 상호 운용이 라이브러리를 사용하는 방법을 설명가.