react组件会被编译为React.createElement,在createElement中,它的this丢失了,并不是由组件实例调用的,因此需要手动绑定this
为什么不能通过return false阻止事件的默认行为
因为React基于浏览器的事件机制实现了一套自己的事件机制,和原生DOM事件不同,它采用了事件委托的思想,通过dispatch统一分发事件处理函数
React怎么阻止事件冒泡
阻止合成事件的冒泡用e.stopPropagation()
阻止合成事件和最外层document事件冒泡,使用e.nativeEvent.stopImmediatePropogation()
阻止合成事件和除了最外层document事件冒泡,通过判断e.target避免
document.body.addEventListener('click',e=>{ if(e.target && e.target.matches('div.stop')){ return } this.setState({active:false}) })
HOC和hooks的区别
useEffect和useLayoutEffect区别
React性能优化手段
shouldComponentUpdate
memo
getDerviedStateFromProps
使用Fragment
v-for使用正确的key
拆分尽可能小的可复用组件,ErrorBoundary
使用React.lazy和React.Suspense延迟加载不需要立马使用的组件
网友回答文明上网理性发言 已有0人参与
发表评论: