react创建组件的3种方式以及区别

文章类型:React

发布者:hp

发布时间:2023-02-21

react种有三种方式创建组件,分别是函数式(无状态组件)、es5原生方式React.createClass(16版本以后弃用)、es6种class类方式extends React.Component(有状态组件)

注意点:

1:组件名称必须大写

三者区别:

1:createClass方式创建的组件,会自动绑定this,会导致不必要性能开销,并且不可使用constructor,默认使用props,数据私有可读可写

2:函数式组件不会被实例化,渲染性能好,没有state,不能访问this对象,只能访问输入props,并且只可读,不能访问生命周期方法

3:React.Component方式创建的组件不会自动绑定this,需要手动绑定。state在constructor中进行初始化

第一种:函数式定义(无状态组件)

function MyComponent(props){
  return(
<h1>mycomponent</h1>
)
}
render(<MyComponentname='yf' />,document.getElementById('root'))

第二种:es5原生方式(React.createClass

const MyComponent=React.createClass({
render:function () {
return <h1>mycomponent</h1>
}
})

第三种:es6class类方式(有状态组件)

class MyConponent extends React.Component{
constructor(props){
super(props);
}
render() {
return (
<h1>mycomponent</h1>
);
}
}