// BootstrappingconstmountNode=document.getElementById('example');constelement=<HelloMessage/>;ReactDom.render(element,mountNode);// short: ReactDom.render(<HelloMessage />, document.getElementById('example'));// KomponenteclassHelloMessageextendsReact.Component{render(){returnReact.createElement('h1',null,'Hello World!');}}// Komponente als Funktion ohne JSXfunctionHelloMessage(){returnReact.createElement('h1',null,'Hello World!');}// Komponente als Funktion mit JSXfunctionHelloMessage(){return<h1><Messagename='World'/></h1>;}// Komponente mit Properties als FunktionfunctionMessage(props){return<span>{'Hello, '+props.name}</span>;}// Komponente mit Properties als KlasseclassMessageextendsReact.Component{constructor(props){super(props);this.state={name:props.name};}render(){return(<div>Hello{this.state.name}!</div>);}}
this.state ist per default undefined und kann erst verwendet werden, wenn dieser gesetzt wurde
im Konstrukor mit this.state = {...}
in Funktionen mit this.setState(...)
this.setState(...) darf nicht im Konstruktor aufgerufen werden
Aufruf von this.setState(...) erfolgt asynchron und rendert den DOM neu
wenn this.state direkt gesetzt wird, wird der DOM nicht neu gerendert
Beispiele
// setting state directlythis.setState({title:'Hello World',underline:false});// setting state with lambda method this.setState((currentState,currentProperties))=>...);// callback when state got changedthis.setState(...,()=>OnStateChangedCompleted());// may use lifecycle method 'componentDidUpdate' instead