How this code will be looked when i call wp.element?
class Clock extends React.Component {
constructor(props) {
super(props);
this.state = {date: new Date()};
}
componentDidMount() {
this.timerID = setInterval(
() => this.tick(),
1000
);
}
componentWillUnmount() {
clearInterval(this.timerID);
}
tick() {
this.setState({
date: new Date()
});
}
render() {
return (
<div>
<h1>Hello, world!</h1>
<h2>It is {this.state.date.toLocaleTimeString()}.</h2>
</div>
);
}
}
ReactDOM.render(
<Clock />,
document.getElementById('root')
);
wp.element
is basically a React wrapper. Your code can look like this if you use wp.element
const { Component, render } = wp.element;
class Clock extends Component {
...rest of the code
}
render(
<Clock />,
document.getElementById('root')
);
Or you can keep using React too as it already ships with WordPress, in which case set it as an external in webpack so it isn’t bundled with your build and instead takes it from the WP Core.
Hope this helps!
Ref: https://wordpress.org/support/topic/reactjs-in-wpwp-elemet/