当前位置: 首页 > 面试题库 >

react有几种构建组件的方式?可以写出来吗?

徐鸿达
2023-03-14
本文向大家介绍react有几种构建组件的方式?可以写出来吗?相关面试题,主要包含被问及react有几种构建组件的方式?可以写出来吗?时的应答技巧和注意事项,需要的朋友参考一下

1.无状态函数式组件
function HelloComponent(props, /* context */) {
return <div>Hello {props.name}</div>
}
ReactDOM.render(<HelloComponent name="Sebastian" />, mountNode)

2.React.createClass
var InputControlES5 = React.createClass({
propTypes: {//定义传入props中的属性各种类型
initialValue: React.PropTypes.string
},
defaultProps: { //组件默认的props对象
initialValue: ''
},
// 设置 initial state
getInitialState: function() {//组件相关的状态对象
return {
text: this.props.initialValue || 'placeholder'
};
},
handleChange: function(event) {
this.setState({ //this represents react component instance
text: event.target.value
});
},
render: function() {
return (
<div>
Type something:
<input onChange={this.handleChange} value={this.state.text} />
</div>
);
}
});
InputControlES6.propTypes = {
initialValue: React.PropTypes.string
};
InputControlES6.defaultProps = {
initialValue: ''
};

3.React.Component
class InputControlES6 extends React.Component {
constructor(props) {
super(props);

// 设置 initial state
this.state = {
text: props.initialValue || 'placeholder'
};

// ES6 类中函数必须手动绑定
this.handleChange = this.handleChange.bind(this);
}

handleChange(event) {
this.setState({
text: event.target.value
});
}

render() {
return (
<div>
Type something:
<input onChange={this.handleChange}
value={this.state.text} />
</div>
);
}
}
InputControlES6.propTypes = {
initialValue: React.PropTypes.string
};
InputControlES6.defaultProps = {
initialValue: ''
};

 类似资料:
  • 问题内容: 我正在关注一个React教程,这是作者提供的用于创建基本React组件的示例代码: 他声称这是ES6。 但是后来我看到了另一种创建组件的方法。 嗯,我现在很困惑。是否有任何标准的反应方式? 问题答案: 在React中,您可以创建所谓的有状态和无状态功能组件。无状态组件是不需要维护状态的简单可重用组件。这是一个简短的演示(http://codepen.io/PiotrBerebecki/

  • 本文向大家介绍Vue 中可以定义组件模版的几种方式,包括了Vue 中可以定义组件模版的几种方式的使用技巧和注意事项,需要的朋友参考一下 前端组件化开发已经是一个老生常谈的话题了,组件化让我们的开发效率以及维护成本带来了质的提升。 当然因为现在的系统越来越复杂庞大,所以开发与维护成本就变得必须要考虑的问题,因此滋生出了目前的三大前端框架 Vue、Angular、React。 那今天我们就来看看 Vu

  • 本文向大家介绍React-Router 4中` `组件有几种类型?相关面试题,主要包含被问及React-Router 4中` `组件有几种类型?时的应答技巧和注意事项,需要的朋友参考一下 HashRouter:老浏览器的history,主要通过hash来实现,对应 BrowserRouter:高版本浏览器,通过html5里面的history,对应 **MemeoryRouter:**node环境下

  • 本文向大家介绍Java创建数组的几种方式总结,包括了Java创建数组的几种方式总结的使用技巧和注意事项,需要的朋友参考一下 1、一维数组的声明方式: type[] arrayName; 或 type arrayName[]; 附:推荐使用第一种格式,因为第一种格式具有更好的可读性,表示type[]是一种引用类型(数组)而不是type类型。建议不要使用第二种方式 下面是典型的声明数组的方式: 注:J

  • 本文向大家介绍React-Router的路由有几种模式?相关面试题,主要包含被问及React-Router的路由有几种模式?时的应答技巧和注意事项,需要的朋友参考一下 1、BrowserRouter:浏览器的路由方式,也就是在开发中最常使用的路由方式 2、HashRouter:在路径前加入#号成为一个哈希值,Hash模式的好处是,再也不会因为我们刷新而找不到我们的对应路径 3、MemoryRout

  • 本文向大家介绍vue注册组件的几种方式总结,包括了vue注册组件的几种方式总结的使用技巧和注意事项,需要的朋友参考一下 1、全局注册(这种方式注册组件必须在vue实例化之前声明) 2、局部注册 3、扩展实例 以上这篇vue注册组件的几种方式总结就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。