React 45 道面试题解析及Keys和setState函数用法详解

需积分: 0 3 下载量 15 浏览量 更新于2024-04-13 收藏 135KB DOCX 举报
React中的Keys是用于跟踪列表中元素的修改、添加或移除的辅助标识。在开发中,确保每个元素的key在同级元素中是唯一的是非常重要的。在React的Diff算法中,React使用元素的key来区分新创建的元素和移动的元素,从而减少不必要的重渲染。此外,React还需要key来判断元素与本地状态的关联关系。因此,在转换函数中忽视key的重要性是不可取的。 在调用setState函数时,第二个参数是一个回调函数,该函数会在setState完成并且组件开始重新渲染时被调用。我们可以利用这个函数来监听渲染是否完成,如下所示: ```jsx this.setState({username:'tylermcginnis33'},()=>console.log('setState has finished and the component has re-rendered.')) ``` 另外,setState函数还可以接受一个函数作为参数,该函数会传入先前的状态和属性,并返回新的状态,如下所示: ```jsx this.setState((prevState,props)=>{return {streak:prevState.streak + props.count}}) ``` 在React中,ref是用来获取对DOM节点或React元素的引用的。通过ref,我们可以直接访问、操作或者修改对应的DOM节点或React元素。ref可以通过字符串传递给ref属性,也可以通过回调函数传递给ref属性。如下所示: ```jsx // 字符串形式 <input ref="myInput" /> // 回调函数形式 <input ref={(input)=> this.input = input} /> ``` 这样,我们就可以通过this.refs.myInput或this.input来获取到对应的DOM节点。 总而言之,Keys在React中是用来标识列表中元素的变化的,setState的第二个参数可以用来监听渲染完成的回调函数,而ref则是用来获取DOM节点或React元素的引用的。合理使用这些特性可以让我们更好地开发和优化React应用。