Grab recent copies of React and Axios:
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/18.0.0-rc.3-next-3f8990898-20220323/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/18.0.0-rc.3-next-3f8990898-20220323/umd/react-dom.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/axios/0.26.1/axios.min.js"></script>
Add an element to hold the rendered view:
<div id="app"></div>
Grab the model from a JSON API and render the view from a template:
<script type="text/javascript">
class App extends React.Component {
constructor(props) {
super(props);
this.state = props;
}render() {
return React.createElement(
'table',
null,
[.createElement('tr', null, [
React.createElement('th', null, 'Name:'),
React.createElement('td', null, this.state.name),
React,
]).createElement('tr', null, [
React.createElement('th', null, 'Handle:'),
React.createElement('td', null, this.state.nick),
React,
]).createElement('tr', null, [
React.createElement('th', null, 'Email:'),
React.createElement('td', null, [
React.createElement('a', { href: this.state.mbox, }, this.state.mbox),
React,
]),
]).createElement('tr', null, [
React.createElement('th', null, 'Website:'),
React.createElement('td', null, [
React.createElement('a', { href: this.state.homepage, }, this.state.homepage),
React,
]),
]).createElement('tr', null, [
React.createElement('th', null, 'Depiction:'),
React.createElement('td', null, [
React.createElement('img', { class: 'thumbnail', src: this.state.depiction, }),
React,
]),
])
];
)
}
}
axios.get('/james.json')
.then(function (response) {
.render(
ReactDOM.createElement(App, response.data),
Reactdocument.querySelector('#app')
;
)
}).catch(function (error) {
console.error(error.message);
;
})</script>