React面试题
1.ReactJS中渲染根组件的方式以及注意事项
答案:ReactDOM.render(A,B);将A渲染到B指定的容器中
注意事项:
不允许一次渲染多个标签,但是可以放在同一个顶层标签
每一个标记都要有对应的结束
2.ReactJS中父子组件通信的方式
(1)父与子通信
借助于属性 往下传值
传值:
<son myName="123"></son>
接收值:
this.props.myName
(2)子与父通信
通过属性传递有参数的方法,让子组件调用时传值
①定义有参数的方法
rcvMsg(msg){}
②传递给子组件
<son funcRcv={this.rcMsg}></son>
③子组件来调用
This.props.funcRcv(123)
3.如何在组件渲染时调用组件内部嵌套的子组件
This.props.children
4.组件的生命周期
mount:
componentWillMount
componentDidMount
update
componentWillUpdate
componentDidUpdate
componentWillReceiveProps
unmount:
componentWillUnmount
5.在组件渲染时 实现判断和循环功能
(1)判断
短路逻辑
{ expression && <Any></Any> }
(2)循环
遍历集合
this.state.list
.map((value,index)=>{
return <li key={index}>
{value}
</li>
})
6.描述ReactNative的特点和开发理念
ReactNative是实现原生开发的框架
可以使用react的语法和js来编写
开发理念:
Learn once,write anywhere
7.react中如何处理网络通信的
fetch(url).then((response)=>response.json()).then((result)=>{ })
8.react中循环创建多个组件时指定key的作用?
在dom变化时,快速定位元素 提升更新效率
9.react的生态圈(技术栈)中有哪些常见技术?
reactjs、reactNative、react360、flux、redux、ssr、reactNavigation
10.基于reactNative的reactNavigation中的基础用法?
跳转:
this.props.navigation.navigate()
传参:
this.props.navigation.navigate('detail',{id:10})
this.props.navigation.getParam('id');
11.reactNative中如何实现高性能列表
import { FlatList } from 'react-native'
showItem=(info)=>{
return ***
}
<FlatList data={[1,2,3]} renderItem="showItem">
</FlatList>
12.reactNative中如何完成自定义布局
可以使用c3中的flexbox