哪个 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 【问题描述】:如果我有一个组件并且我已经绑定了一些变量 - 忽略单向和双向流的用例 - 哪个计算成本更高? =
或 <
?
我最初认为 <
会更便宜,因为我们不需要向上传播更改,但考虑到肯定需要的副本 =
在大多数情况下都是有益的,因为它只会传递引用?
还是只是与$onChanges
的需求有关?
【问题讨论】:
'=' 更便宜,' 如果你知道自己在做什么,你会说使用'='吗? “考虑需要的副本” 哪个副本? 当使用 【参考方案1】:在我看来,存储比处理能力更便宜,所以对象的副本比另一个观察对象属性的成本更低,每个摘要周期。
【讨论】:
但它会是另一块手表吗?不是每个案例都会在不同的范围内观看参考吗? (我认为更改深层属性仍会反映在父级中,但只有在 = 中才会被检测到)【参考方案2】:'=' 传递链接,当然这是最便宜和最简单的方式。 (在即 Java 中,您总是传递链接。)
问题是你不能使这个对象或它的一些属性不可修改,你不能创建接口或smth。想象层次结构:<component-a object="object"><component-b object="object"><component-c object="object">
现在你想了解 wtf 正在这里——谁在设置或使用什么属性——而你根本做不到。
我现在的感受: - 对于简单的对象使用'
【讨论】:
有趣。仅供参考,您可以使用 const 在 es6 中实现不可修改,甚至可以使用 typescript 接口!=
和<
之间的唯一区别是<
不会向上传播更改。
错误:plnkr.co/edit/vsFh3icprGZlxrJomfmS?p=preview 正如我所说的 onChanges 不会触发 '=' 绑定以上是关于哪个 Angular 1.5 组件绑定类型更昂贵? '=' 还是'<'?的主要内容,如果未能解决你的问题,请参考以下文章
Angular 1.5 组件通过 ngRoute 更新父控制器
在 Angular 1.5 中绑定组件函数时如何利用打字稿?