web-dev-qa-db-ja.com

Dartは既存のJavaScriptライブラリの使用をサポートしますか?

私はDartがJavaScriptにコンパイルすることを理解しており、ライブラリで Dart言語仕様 を読みましたが、そこには答えがありませんでした。また、 discussion form でWord 'existing'を検索すると、関係のない3つの結果が見つかります。

DartがjQueryやRaphaelなどの既存のJavaScriptライブラリの使用をサポートするかどうかを知っている人はいますか?

104
TMB

答えは今はいです! Dartは、既存のJavaScriptコードをDartアプリで使用するためのJS-interopライブラリを出荷するようになりました。詳細はこちら: https://www.dartlang.org/articles/js-Dart-interop/

95
Seth Ladd

Dartコードから直接JavaScriptを呼び出すことはできません。ネイティブディレクティブは、dartcのコアライブラリ(Dart:core、Dart:dom、Dart:html、Dart:jsonなど)用に予約されており、それ自体がjavascriptにコンパイルされます。

15
jtmcdole

新しいシンプルな方法があります 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);
}

詳細については、パッケージのreadmeを参照してください

8

ディスカッションフォーラムのこのスレッドを参照してください: 古いJavaScriptコードの呼び出し

4
Lukas Renggli

Dart:jsライブラリもあります。そして、JavaScriptと相互運用するためにこのライブラリを使用する方法を説明する 記事 があります。

4
Shailen Tuli