Skip to main content
Version: Next

不可变类型

什么是不可变类型?

这些类型是您可以实例化但永远不会更改值的类型。为了更新值,您必须实例化一个新值。

为什么使用不可变类型?

与 React 一样,属性是从祖先传播到子代的。这意味着属性在每个组件更新时必须存在。这就是为什么属性应该——理想情况下——很容易克隆。为了实现这一点,我们通常将事物包装在 Rc 中。

不可变类型非常适合保存属性的值,因为它们可以在从组件传递到组件时以很低的成本克隆。

常见的不可变类型

Yew 推荐使用来自 implicit-clone crate 的以下不可变类型:

  • IString(在 Yew 中别名为 AttrValue)- 用于字符串而不是 String
  • IArray<T> - 用于数组/向量而不是 Vec<T>
  • IMap<K, V> - 用于映射而不是 HashMap<K, V>

这些类型是引用计数(Rc)或静态引用,使它们的克隆成本非常低。

进一步阅读