不可變型別
什麼是不可變型別?
這些類型是您可以實例化但永遠不會更改值的類型。為了更新值,您必須實例化一個新值。
為什麼使用不可變型別?
與 React 一樣,屬性是從祖先傳播到子代的。這意味著屬性在每個元件更新時必須存在。這就是為什麼屬性應該——理想情況下——很容易克隆。為了實現這一點,我們通常將事物包裝在 Rc 中。
不可變類型非常適合保存屬性的值,因為它們可以在從組件傳遞到組件時以很低的成本克隆。
常見的不可變型別
Yew 推薦使用來自 implicit-clone crate 的以下不可變型別:
- IString(在 Yew 中別名為- AttrValue)- 用於字串而不是- String
- IArray<T>- 用於陣列/向量而不是- Vec<T>
- IMap<K, V>- 用於映射而不是- HashMap<K, V>
這些型別是引用計數(Rc)或靜態引用,使它們的克隆成本非常低。