关于key的问题

来源:3-5 拆分组件与组件之间的传值

THEEND0123

2021-04-20

老师,您好,为什么li拆分为TodoItem后就不需要key属性了?不是在React中遍历出来的每一项都需要加key,方便底层diff算法的运算效率。

<ul>
	{
		this.state.list.map((item, index) => {
			return (
				<div>
					<TodoItem 
						content={item} 
						index={index}
						deleteItem={this.handleItemDelete.bind(this)}
					/>
				</div>
			)
		})
	}
</ul>

子组件里也没在div上加key

render() {
	return (
		<div onClick={this.handleClick}>
			{this.props.content}
		</div>)
}

老师,如果要加key的话,是加在父级上的div还是TodoItem,还是加在子级的div标签上好呢?实际key这三个地方都可以加吧?

写回答

1回答

Dell

2021-04-20

key 加载 循环 内部的第一个dom 元素上,或者第一个组件上

1
1
THEEND0123
非常感谢!
2021-04-25
共1条回复

React零基础入门到实战,完成企业级项目简书网站开发

主流新技术 React-redux,React-router4,贯穿基础语法

5275 学习 · 2496 问题

查看课程