前言
正文
存储数据使用索引对象.读取时使用选择器
索引对象存储数据
将数据的id作为键,数据本身作为值组合成一个对象
模拟一个从服务端请求到的用户数据
使用索引对象存储在state中像这样:
|
|
选择器读取
好处非常明显,当想要通过id获取数据时,用选择器来获取数据.非常便捷:
而如果未使用索引对象存储,就需要遍历用户列表,性能开销相对而言就大很多.
单独保存原始数据
原始数据就是在数据库中存放的数据,未经任何加工(前端没加工,服务端加工不算).将原始数据单独保存,如果需要修改应该创建一个副本(例如创建一个索引对象),在副本上修改.
比如编辑功能,在编辑时可能会修改原有的属性以及添加新的属性;保存到服务器,有些新创建的属性可能不会保存,那么服务器返回保存后的数据;如果直接替换原有的对象的话,一些新添加的属性就会丢失;再比如取消编辑,如果新创建了一个副本数据对象,取消就直接干掉这个对象就好了.
我的思考
编辑功能时我的做法是:将要编辑的数据与当前组件的state关联起来,保存或取消之前都不会dispatch给store;这样在保存后数据的重新赋值以及取消编辑上也能达到以上效果.
提取公用的reducer
例如每个应用中都会有大量的切换loading状态的场景,可以提取出来:
结语
这篇译文本来是打算作五次翻译的,但是译着译着,就发现译不下去了.原文的废话太多,逐句翻译真的是折磨人啊.还是提取出一些重点出来吧,有点像是做笔记的味道.以后得风格也会是精简突出的.