哪个 Angular 1.5 组件绑定类型更昂贵? '=' 还是'<'?

Posted

技术标签:

【中文标题】哪个 Angular 1.5 组件绑定类型更昂贵? \'=\' 还是\'<\'?【英文标题】:Which Angular 1.5 component binding type is more expensive? '=' or '<'?哪个 Angular 1.5 组件绑定类型更昂贵? '=' 还是'<'? 【发布时间】:2017-06-09 05:16:48 【问题描述】:

如果我有一个组件并且我已经绑定了一些变量 - 忽略单向和双向流的用例 - 哪个计算成本更高? =&lt;?

我最初认为 &lt; 会更便宜,因为我们不需要向上传播更改,但考虑到肯定需要的副本 = 在大多数情况下都是有益的,因为它只会传递引用?

还是只是与$onChanges的需求有关?

【问题讨论】:

'=' 更便宜,' 如果你知道自己在做什么,你会说使用'='吗? “考虑需要的副本” 哪个副本? 当使用 【参考方案1】:

在我看来,存储比处理能力更便宜,所以对象的副本比另一个观察对象属性的成本更低,每个摘要周期。

【讨论】:

但它会是另一块手表吗?不是每个案例都会在不同的范围内观看参考吗? (我认为更改深层属性仍会反映在父级中,但只有在 = 中才会被检测到)【参考方案2】:

    '=' 传递链接,当然这是最便宜和最简单的方式。 (在即 Java 中,您总是传递链接。)

    问题是你不能使这个对象或它的一些属性不可修改,你不能创建接口或smth。想象层次结构:&lt;component-a object="object"&gt;&lt;component-b object="object"&gt;&lt;component-c object="object"&gt;

    现在你想了解 wtf 正在这里——谁在设置或使用什么属性——而你根本做不到。

    我现在的感受: - 对于简单的对象使用'

【讨论】:

有趣。仅供参考,您可以使用 const 在 es6 中实现不可修改,甚至可以使用 typescript 接口! =&lt; 之间的唯一区别是&lt; 不会向上传播更改。 错误:plnkr.co/edit/vsFh3icprGZlxrJomfmS?p=preview 正如我所说的 onChanges 不会触发 '=' 绑定

以上是关于哪个 Angular 1.5 组件绑定类型更昂贵? '=' 还是'<'?的主要内容,如果未能解决你的问题,请参考以下文章

Angular 1.5+ 组件可选单向绑定

如何在 Angular 1.5 组件中使用绑定

Angular 1.5 组件通过 ngRoute 更新父控制器

在 Angular 1.5 中绑定组件函数时如何利用打字稿?

在 Angular 1.5 中使用“单向绑定”(<) 有啥意义?

Angular 1.5 组件路由器兄弟组件