首页 文章

Will Dart是否支持使用现有的JavaScript库?

提问于
浏览
100

我理解Dart编译为JavaScript,我在库上阅读Dart Language Spec,虽然我没有看到答案 . 另外,在discussion form上搜索单词'existing'会发现3个与之无关的结果 .

有没有人知道Dart是否支持使用现有的JavaScript库,如jQuery或Raphael?

5 回答

  • 92

    答案现在是的! Dart现在提供了一个JS-interop库,可以在Dart应用程序中使用现有的JavaScript代码 . 在这里了解更多:https://www.dartlang.org/articles/js-dart-interop/

  • 8

    您将无法直接从dart代码调用javascript . 本机指令保留给dartc的核心库(dart:core,dart:dom,dart:html,dart:json等),它本身编译为javascript .

  • 4

    现在有了一种更简单的新方法https://pub.dartlang.org/packages/js(目前版本为0.6.0-beta.6)

    使Dart的JS类和函数可用:

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

    有关更多信息,请参阅封装的自述文件

  • 15

    请参阅讨论论坛中的此主题:Calling old javascript code .

  • 4

    还有一个 dart:js 库 . 这里有an article解释如何使用此库与JavaScript进行互操作 .

相关问题