在React 16中使用require和npm而不使用npm的create-react-class

Ani*_*ngh 2 reactjs

我正在尝试创建一个独立的示例,而不使用webpack,npm,JSX或babel。由于React v16中已删除React.createClass,因此如何在不使用require.js和npm的情况下使以下代码正常工作:

<html>

<head>
    <title>React Hello World</title>

    <script crossorigin src="https://unpkg.com/react@16/umd/react.production.min.js"></script>
    <script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.production.min.js"></script>
</head>

<body>
    <div id="root"></div>

    <script>
        window.onload = function () {
            var Greetings = React.createClass(
                {
                    render: function () {
                        return React.createElement('h1', null, 'Greetings, ' + this.props.name + '!');
                    }
                });
            ReactDOM.render(
                React.createElement(Greetings, { name: 'World' }),
                document.getElementById('root')
            );
        };
    </script>
</body>

</html>
Run Code Online (Sandbox Code Playgroud)

Joe*_*lay 5

create-react-class也可以从unpkg获得UMD构建,就像您对其他库所做的那样:

<script crossorigin src="https://unpkg.com/react@16/umd/react.production.min.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.production.min.js"></script>
<script crossorigin src="https://unpkg.com/create-react-class@15.6.2/create-react-class.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

您还需要更换的任何实例React.createClasscreateReactClass,详见这里

就是说,我会考虑您是否真正需要create-react-class-除IE之外的每个主流浏览器现在都支持ES6类,因此您实际上并不需要Babel来使用它们。