怎么封装react组件
1、封装自己的组件
使用es6的扩展类的方式,在基类中扩展组件。
import React, { Component } from 'react'; class ClickCounter extends Component{ constructor(props){ //当父组件向子组件传递数据时,需要在这里传入props。 super(props); //由于事件函数onClickButton不是在render函数中定义的, //所以需要通过bind绑定this指向。 this.onClickButton=this.onClickButton.bind(this); //通过state来定义当前组件内部自己的数据 this.state={count:0}; } onClickButton(){ //通过setState方法 来改变state对象中的值。 this.setState( { count:this.state.count+1 } ); } render(){ //在render中定义样式,必须使用对象的方式。 const counterStyle={ margin:'16px', fontSize:'24px' }; return ( {/*在jsx中,使用这个方式进行注释 */} {/*在jsx中,使用在render函数中,定义的样式*/} <div style={counterStyle}> {/*在jsx中,使用onClick方式进行事件绑定, 不同于html行内事件绑定,原理参考jsx文章*/} <button onClick={this.onClickButton}> Click me </button> <div> Click Count: <span id="clickCount"> {this.state.count} </span> </div> </div> ); } } //导出当前定义的组件 export default ClickCounter;
2、使用自定义组件
引入react,使用es6的import...from...方式导入,对应着需要使用export default... 导出。
另外,如果需要dom操作,需要引入react-dom。
使用es6的解构赋值,单独引入Component。
注意:
(1)React必须引入,由于JSX最终会被转译成依赖React的表达式。
(2)Component 是所有组件的基类。
import React, { Component } from 'react'; import ClickCounterfrom './ClickCounter/ClickCounter' class App extends Component { render() { return ( <div className="App"> <h2>标题</h2> <ClickCounter></ClickCounter> </div> ); } } export default App;
本文来自React答疑栏目,欢迎学习!
以上就是怎么封装react组件的详细内容,更多请关注易知道|edz.cc其它相关文章!