7
在Dart文檔中的任何地方,建議使用js
包進行javascript互操作。dart:js和js包的區別是什麼?
但是,我最近發現在SDK中存在dart:js
包似乎有類似(但不相同)的接口。
這些軟件包有什麼不同嗎?它們的功能是否相同?哪一個被推薦?
在Dart文檔中的任何地方,建議使用js
包進行javascript互操作。dart:js和js包的區別是什麼?
但是,我最近發現在SDK中存在dart:js
包似乎有類似(但不相同)的接口。
這些軟件包有什麼不同嗎?它們的功能是否相同?哪一個被推薦?
Js interop以package:js開頭。它與window.postMessage一起建造。
後來增加了dart:js以提供更好的性能並減小了編譯後的js文件的大小。基本目標是:
一旦鏢:js已經準備好,包:js已被改寫爲使用dart:js下封面。
包:JS提供正值增加了JS大小的成本的簡單的API(因爲包:JS使用鏢:鏡和noSuchMethod)。
這裏是包做同樣的事情: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']);
}