30道常见React基础面试题(附答案),微信公众号前端开发

本文介绍了React中处理props.children对象的正确方式,避免在父组件内部使用props.children.map引发的错误。此外,解释了React事件处理的机制,包括SyntheticEvent的使用和事件委托。还讨论了setState方法的回调函数用途、React中事件处理的逻辑以及React组件开发中的作用域问题。同时,文章提到了React与其他框架如Vue的相似性和差异,以及在Redux中使用Action和Reducer的注意事项。
摘要由CSDN通过智能技术生成

有课前端网

在父组件内部,如果尝试使用 props.children. map映射子对象,则会抛出错误,因为props. children是一个对象,而不是一个数组。

如果有多个子元素, React会使 props.children成为一个数组,如下所示。

有课前端网

前端技术学习平台

不建议使用如下方式,在这个案例中会抛出错误。

class Parent extends Component {

render ( ) {

return (

{ this .props.children.map (obj = > obj ) }

)

}

}

建议使用如下方式,避免在上一个案例中抛出错误。

class Parent extends Component {

render ( ) {

return (

{ React.Children.map ( this .props.children, obj => obj) }

)

}

}

12、描述事件在 React中的处理方式。

为了解决跨浏览器兼容性问题, React中的事件处理程序将传递 SyntheticEvent的实例,它是跨浏览器事件的包装器。这些 SyntheticEvent与你习惯的原生事件具有相同的接口,它们在所有浏览器中都兼容。

React实际上并没有将事件附加到子节点本身。而是通过事件委托模式,使用单个事件监听器监听顶层的所有事件。这对于性能是有好处的。这也意味着在更新DOM时, React不需要担心跟踪事件监听器。

13、createElement和 cloneElement有什么区别?

createElement是JSX被转载得到的,在 React中用来创建 React元素(即虚拟DOM)的内容。cloneElement用于复制元素并传递新的 props。

14、setState方法的第二个参数有什么用?使用它的目的是什么?

它是一个回调函数,当 setState方法执行结束并重新渲染该组件时调用它。在工作中,更好的方式是使用 React组件生命周期之——“存在期”的生命周期方法,而不是依赖这个回调函数。

export class App extends Component {

constructor (props) {

super ( props )

this.state = {

username:“雨夜清荷”

}

}

render ( ) {

return (

{ this .state. username)

);

}

componentDidMount ( ) {

this .setstate ( {

username :‘有课前端网’

},( ) => console. log ( 're-rendered success. ’ ) )

15、这段代码有什么问题?

class App extends Component {

constructor ( props ) {

super ( props )

this .state = {

username:“有课前端网”,

msg:’ ’

}

}

render ( ) {

return (

{ this .state. msg }

);

}

componentDidMount ( ) {

this .setState ( ( oldState, props ) => {

retur

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值