今天我们就详解一下在react中注册组件的两种方法,组件的类型有两种,一种是函数式组件,一种是class组件。
注意:
(1)定义组件名字的时候需要大写开头字母
(2)render()函数里面必须返回有且只有一个唯一的父元素,这个根元素可能是div,可能是其他的元素,官方不建议使用div作为根元素。。。为什么?因为用div作为根元素就需要加载多余的与div有关的属性或者DOM节点,这些属性用的又比较少,div加载多了容易浪费内存,所以官方出了一个<> sdsa</>根元素 或者 <Fragment>asdasdasd</Fragment>,使用这两个根节点就能够解决此类的问题。从react里面解构出来Fragment技能使用了。
函数式组件
import React, { Component } from 'react'
const Child = (props) =>{
return(
<>
我是App里面的child组件
</>
)
}
export default class App extends Component {
render() {
return (
<div>
<Child></Child>
</div>
)
}
}
class组件
import React, { Component } from 'react'
class Brother extends Component{
render(){
return(
<div>
我是Brother组件
</div>
)
}
}
export default class App extends Component {
render() {
return (
<div>
<Brother></Brother>
</div>
)
}
}
面试官:
1.函数式组件与class组件有什么区别?
- 函数式组件没有实例化,占用内存较少,故而能够提升性能。
- 函数式组件没有状态,没有独立的state,所有数据传入都依赖props,所以它是无状态组件
- 函数式组件没有this指向
- 函数式组件没有生命周期管理