Js interop avviato con package:js. E 'stato costruito con con window.postMessage.
Successivamente è stato aggiunto dart:js per fornire prestazioni migliori e ridurre la dimensione del file js compilato. Fondamentalmente l'obiettivo sono stati:
- rimozione scopi e movimentazione manuale del ciclo di vita
- evitando noSuchMethod mantenere dimensioni compilazione più basso possibile
- rinomina oggetti per fare api più comprensibile
volta dardo : js è pronto, pacchetto : js è stato riscritto per utilizzare freccia: js sotto la copertina.
pacchetto: js fornisce un'API più semplice che viene al costo di un aumento delle dimensioni js (perché pacchetto: js utilizza dardo: specchi e noSuchMethod).
Qui è la stessa cosa fatta con pacchetto: js e dardo: 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']);
}
fonte
2013-10-18 14:35:38