2013-10-18 9 views
7

Dartのドキュメントのどこでも、javascriptの相互運用性のためにjsパッケージを使用することをお勧めします。dart:jsとjsパッケージの違いは何ですか?

しかし、私は最近、類似した(しかし同じではない)インターフェイスを持つと思われるSDKにdart:jsパッケージが存在することを発見しました。

これらのパッケージに違いはありますか?彼らは同等の機能はありますか?どれがお勧めですか?

答えて

8

Js interopがpackage:jsで開始しました。それはwindow.postMessageで構築されました。

後でdart:jsが追加され、コンパイルされたjsファイルのパフォーマンスが向上し、サイズが小さくなりました。基本的な目標は以下の通りであった。スコープとライフサイクルマニュアルの取り扱いを取り除く

  • ダーツ一度

APIがより理解しやすくするために、オブジェクトの名前を変更

  • できるだけ低いコンパイルサイズを維持するためにnoSuchMethodを回避
  • :jsは準備ができました、パッケージ:jsは、カバーの下にダーツ:jsを使用するように書き直されました。

    パッケージ: JS JSサイズの増加を犠牲にしていますシンプルなAPI(ミラーとnoSuchMethod: JS ダーツを使用していますのでパッケージ)を提供します。ここで

    パッケージで行わ同じものです:ダーツJS: JS:

    import 'package:js/js.dart' as js; 
    
    main() { 
        var pixi = new js.Proxy(js.context.PIXI.Stage, 0xffffff); 
        var renderer = js.context.PIXI.autoDetectRenderer(400, 400); 
        document.body.append(renderer.view); 
    } 
    

    import 'dart:js' as js; 
    
    main() { 
        var pixi = new js.JsObject(js.context['PIXI']['Stage'], [0xffffff]); 
        var renderer = js.context['PIXI'].callMethod('autoDetectRenderer', [400, 400]); 
        document.body.append(renderer['view']); 
    } 
    
  • 関連する問題