Dart是否支持使用现有的JavaScript库?
我理解Dart编译成JavaScript,我阅读了关于库的文章,尽管我没有看到答案。此外,在搜索“现有”一词时,会发现3个不相关的结果Dart是否支持使用现有的JavaScript库?,javascript,libraries,dart,Javascript,Libraries,Dart,我理解Dart编译成JavaScript,我阅读了关于库的文章,尽管我没有看到答案。此外,在搜索“现有”一词时,会发现3个不相关的结果 有人知道Dart是否支持使用jQuery或Raphael等现有JavaScript库吗?您将无法直接从Dart代码调用JavaScript。本机指令是为dartc的核心库(dart:core、dart:dom、dart:html、dart:json等)保留的,它本身编译成javascript。现在答案是肯定的!Dart现在提供了一个JS互操作库,可以在Dart应
有人知道Dart是否支持使用jQuery或Raphael等现有JavaScript库吗?您将无法直接从Dart代码调用JavaScript。本机指令是为dartc的核心库(dart:core、dart:dom、dart:html、dart:json等)保留的,它本身编译成javascript。现在答案是肯定的!Dart现在提供了一个JS互操作库,可以在Dart应用程序中使用现有的JavaScript代码。在这里了解更多信息:还有一个
dart:js
库。这里解释了如何使用该库与JavaScript进行互操作。现在有了一种新的更简单的方法(当前版本为0.6.0-beta.6)
使JS类和函数可用于Dart,如:
@JS("JSON.stringify")
external String stringify(obj);
有关更多信息,请参阅软件包的自述文件,尽管我现在发布了。您对此有参考资料吗?我在dartc团队工作,内部有关于将本机指令和关键字限制为dart:库的讨论。您当然可以查看任何核心函数(例如,isolate.dart和isolate.js),并看到在函数签名后附加“native”关键字(注意:dart版本中没有主体)将允许您调用损坏的javascript函数;但是我们没有承诺我们不会在未来打破你。我理解和尊重给网络一个干净的和思考的语言的理想,但是我恳求你考虑一个互操作层。Microsoft提供了一个从Com到.Net的版本,以帮助确保项目可以增量迁移。这丝毫没有妨碍.Net的成功;我相信这有助于它的采用,尽管他们确实随着时间的推移有所改进。如果打破是一个严重的问题,考虑一个邀请计划的主要图书馆,如jQuery,MOOTooS和Script。谢谢。我邀请您通过我们的问题追踪器@提出功能请求。我不相信这个决定已经成为定局。我只是指出这又是一个问题:@Seth我有一个后续问题。当Dart最终取代Javascript时,使用Dart中的Javascript库真的有意义吗?Dart是否内置了可视化功能?@AmitTomar社区无法立即移植所有JS库,因此使用大量JS库是有意义的。至于图表(可视化),我只知道与基于JS的库的互操作。感谢Seth,我还演示了如何在这方面使用它。注意链接不准确。Dart/JS是主要Dart库的一部分,使用它与javascript接口更容易、更清晰。我没有看到关于这个主题的任何官方消息,但它是SDK的一部分:
@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);
}