Will Dart support the use of existing JavaScript libraries?

邮差的信 提交于 2019-12-17 17:26:25

问题


I understand Dart compiles to JavaScript, and I read the Dart Language Spec on Libraries, although I didn't see an answer there. Also a search on their discussion form for the word 'existing' turns up 3 results that are not related.

Does anyone know if Dart will support the use of existing JavaScript libraries such as jQuery or Raphael?


回答1:


The answer is now Yes! Dart now ships a JS-interop library to use existing JavaScript code with your Dart app. Learn more here: https://www.dartlang.org/articles/js-dart-interop/




回答2:


You will not be able to call javascript directly from dart code. The native directive is reserved for the core libraries of dartc (dart:core, dart:dom, dart:html, dart:json, etc), which itself compiles to javascript.




回答3:


There is now a new simpler way https://pub.dartlang.org/packages/js (currently version 0.6.0-beta.6)

Make JS classes and functions available to Dart like:

@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);
}

for more see the readme of the package




回答4:


See this thread from the discussion forum: Calling old javascript code.




回答5:


There is also a dart:js library. And here is an article explaining how to use this library for interoperating with JavaScript.



来源:https://stackoverflow.com/questions/7716004/will-dart-support-the-use-of-existing-javascript-libraries

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!