2013-10-18 2 views
7

다트 문서에서는 어디서나 자바 스크립트 상호 운용성을 위해 js 패키지를 사용하는 것이 좋습니다.dart : js와 js 패키지의 차이점은 무엇입니까?

그러나 비슷한 (비슷한 것은 아니지만) 인터페이스가있는 것으로 보이는 SDK에 dart:js 패키지가 있다는 것을 최근 알게되었습니다.

이러한 패키지간에 차이점이 있습니까? 그들은 동등한 특징이 있습니까? 어떤 것이 좋습니다?

답변

8

js interop는 package:js으로 시작되었습니다. 그것은 window.postMessage으로 지어졌습니다.

나중에 더 나은 성능을 제공하고 컴파일 된 js 파일의 크기를 줄이기 위해 dart:js이 추가되었습니다. 기본적 목표는 같다 : 범위 및 라이프 사이클 수동 처리를 제거

  • 다트 일단

API가 더 이해할 수 있도록 개체의 이름을 변경

  • 가능한 한 낮게 컴파일 크기를 유지하기 위해 noSuchMethod을 피하고
  • : js 준비되었습니다, 패키지 : js은 덮개 아래에 다트 : js을 사용하도록 다시 작성되었습니다.

    패키지 :는 JS 크기의 증가의 비용으로 제공되는 간단한 API를 제공 JS (패키지 이유는 거울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']); 
    } 
    
    다음

    같은 패키지와 함께 할 것입니다
  • 관련 문제