Хотите сделать это без JSX? Без JSX означает, что вам не нужен Babel et c.
Я предполагаю это, только потому, что вы настроили функцию для React.createElement
.
Если это так, вы можете сделать это:
const element = React.createElement;
class Menu extends React.Component {
render() {
return element('h1',null,'Hello World!');
}
}
const domContainer = document.querySelector('#menu_js');
ReactDOM.render(element(Menu), domContainer);
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
<div id="menu_js"></div>
ИЛИ - если вы хотите использовать JSX
Тогда вы можете сделать это так (просто включите Babel) :
const element = React.createElement;
class Menu extends React.Component {
render() {
return <h1>Hello World!</h1>;
}
}
const domContainer = document.querySelector('#menu_js');
ReactDOM.render(element(Menu), domContainer);
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
<div id="menu_js"></div>
PS Я работаю над библиотекой, которая позволяет создавать реактивные элементы без JSX и с синтаксисом "d3-like". (https://github.com/Alex-ley/react-kopplung)
Если вам интересно, ваш пример может выглядеть так:
const element = React.createElement;
class Menu extends React.Component {
render() {
const returnObj = new ReactKopplung();
returnObj
.setRoot('h1') /* Or .setRoot('<>') for a fragment */
.setText('hello world!');
return returnObj.rootNode().render();
}
}
const domContainer = document.querySelector('#menu_js');
ReactDOM.render(element(Menu), domContainer);
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
<script src="https://cdn.jsdelivr.net/gh/Alex-ley/react-kopplung@v.0.1.0/ReactKopplung.js"></script>
<div id="menu_js"></div>