react和vue作为目前最主流的前端框架,都采用了虚拟dom的方式来提高对页面更新的效率。
对于react而言,setSta使得每一次更新state中的数据时都会使得页面重新render
在处理循环列表时为了使得dom高效更新,react会使用内置的key值识别列表元素。将该key值的旧视图与新试图对比,当二者不同的会删除掉该元素并重新创建,因此使用的key值应该保证其唯一性
使用index作为key 使用index标记元素,如果列表没有发生逆序插入等操作时不会产生影响,但如果发生了以上操作,react自身的diff算法在对比元素时会得到错误的结果,从而重新渲染页面,造成不必要的性能消耗
在使用列表时,应该给予每个元素在兄弟组件之间唯一的key,以此达到高效渲染的结果。