Будет ли Dart поддерживать использование существующих библиотек JavaScript?
Я понимаю, что Dart компилируется в JavaScript, и я прочитал спецификацию Dart Language по библиотекам, хотя ответа там не увидел. Кроме того, поиск в их форме для обсуждения слова "существующий" обнаруживает 3 результата, которые не связаны между собой.
Кто-нибудь знает, будет ли Dart поддерживать использование существующих библиотек JavaScript, таких как jQuery или Raphael?
5 ответов
Ответ сейчас да! Теперь Dart поставляет библиотеку JS-interop для использования существующего кода JavaScript с вашим приложением Dart. Узнайте больше здесь: https://www.dartlang.org/articles/js-dart-interop/
Вы не сможете вызывать JavaScript непосредственно из кода дротика. Нативная директива зарезервирована для базовых библиотек dartc (dart:core, dart:dom, dart:html, dart:json и т. Д.), Которые сами компилируются в javascript.
Теперь появился новый более простой способ https://pub.dartlang.org/packages/js (в настоящее время версия 0.6.0-бета.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 пакета
Также есть dart:js
библиотека. И вот статья, объясняющая, как использовать эту библиотеку для взаимодействия с JavaScript.
Смотрите эту ветку на дискуссионном форуме: Вызов старого кода JavaScript.