react组件写法1——函数式
import React from 'react'; import ReactDOM from 'react-dom'; function Header() { return <h1>I am header</h1> } function Footer() { return <h1>I am footer</h1> } ReactDOM.render( <div> <Header /><Footer /> </div>, document.getElementById('app') );
react组件写法2——es6提供的class类
使用class关键字定义一个HeaderEs6类,并通过extends表示继承自React.Component父类,
constructor用来初始化组件属性,this.state定义数据,super()为了接收到父类的this指针
import React from 'react'; import ReactDOM from 'react-dom'; class HeaderEs6 extends React.Component { constructor(props) { super(props); this.state = { name: 'header' } } render() { return <h1>I am {this.state.name}</h1> } } class Footer extends React.Component { constructor(props) { super(props); this.state = { name: 'footer' } } render() { return <h1>I am {this.state.name}</h1> } } ReactDOM.render( <div> <HeaderEs6 /><Footer /> </div>, document.getElementById('app') );
另外,不管你使用上面哪一种组件方法,都需要在外层用一个div包裹起来,否则会报错,提示目标容器不是DOM元素
如果错误提示为相邻的JSX元素必须包装在一个封闭的标记中,同样需要在组件外层用一个div包裹
有需要的朋友可以领取支付宝到店红包,能省一点是一点