繁体   English   中英

dart最新的js-interop库最近引发了一些问题

[英]dart's latest js-interop library causes some issues lately

我在最新的js-interop库中看到了一些奇怪的变化,我想知道是否有人可以给出一些澄清。

升级到最新版本后,我注意到dart2js不再起作用了。 经过一番调查后,我得出结论,原因是js-interop库中的@proxy注释( 这里也提到 )。

因此,我在几个版本之间切换,我注意到一些像scoped这样的函数已经在几天内被弃用了,之后几天就被完全删除了! 如果您错过了将此函数标记为已弃用的版本之间的错误,则会错过提供有关它的一些信息的提示。 另请注意,关于dartlang.org上的js库的主要教程甚至没有暗示它的大部分已经过时的事实。

我决定回到版本0.0.26,尽管它似乎像以前一样工作......我注意到在一个实例中,当从dart中的javascript上下文中检索变量时,我收到了一个dart DateTime对象而不是js.Proxy对象。

回到之前的版本(v0.0.25)我在使用js上下文中的变量时得到了我的js.Proxy,正如预期的那样。

奇怪的是,在github上 ,版本一直到0.0.25(按预期工作),而pub上的那个版本有3个版本,这些版本都有很多后向兼容性(有时需要),没有明确的指示在(我发现轻微沮丧)。

有人可以澄清一下正在发生的事情以及我对未来时期的期望吗?

http://pub.dartlang.org/packages/js

所有这些重大变化已在包装中的未来重大变化中公布:jsBREAKING CHANGE:包:js已弃用的功能被删除

基本上,从0.0.26开始, package:js现在用dart:js烘焙。 这种变化有几个方面:

  • 不再需要范围/保留/释放
  • 现在有几种类型直接在Dart和Js之间转移而不是代理
    • nullboolnumStringDateTime
    • Blob
    • KeyRange
    • ImageData
    • TypedData ,包括其子类,如Int32List ,但不包括ByteBuffer
    • Node
  • 阴影dom中的元素现在也可以传输
  • 现在需要更长时间的Callback
  • 一个非常大的性能提升

这是一个快速迁移指南:

  • 范围:删除js.retainjs.releasejs.scoped
  • 更换new Callback.xxxx(f)f和删除callback.dispose()
  • 根据上面的列表替换具有可转移类型的Proxy

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM