不可变类型
什么是不可变类型?
这些类型是您可以实例化但永远不会更改值的类型。为了更新值,您必须实例化一个新值。
为什么使用不可变类型?
与 React 一样,属性是从祖先传播到子代的。这意味着属性在每个组件更新时必须存在。这就是为什么属性应该——理想情况下——很容易克隆。为了实现这一点,我们通常将事物包装在 Rc
中。
不可变类型非常适合保存属性的值,因为它们可以在从组件传递到组件时以很低的成本克隆。
常见的不可变类型
Yew 推荐使用来自 implicit-clone
crate 的以下不可变类型:
IString
(在 Yew 中别名为AttrValue
)- 用于字符串而不是String
IArray<T>
- 用于数组/向量而不是Vec<T>
IMap<K, V>
- 用于映射而不是HashMap<K, V>
这些类型是引用计数(Rc
)或静态引用,使它们的克隆成本非常低。