【问题标题】:create-react-class without npm using require and npm in React 16在 React 16 中使用 require 和 npm 创建没有 npm 的 react-class
【发布时间】:2017-12-14 09:16:39
【问题描述】:

我正在尝试在不使用 webpack、npm、JSX 或 babel 的情况下创建一个独立的 react 示例。由于 React.createClass 已在 React v16 中删除,我怎样才能在不使用 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>

【问题讨论】:

    标签: reactjs


    【解决方案1】:

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

    <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>
    

    您还需要将React.createClass 的任何实例替换为createReactClass,详细说明为here

    也就是说,我会考虑一下你是否真的需要 create-react-class - 除了 IE 之外的所有主流浏览器现在都支持 ES6 类,所以你不再需要 Babel 来使用它们了。

    【讨论】:

    • 旁注 ie 不是唯一的问题;较旧的安卓平板电脑和手机也是如此。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-04
    • 2018-03-17
    • 1970-01-01
    • 1970-01-01
    • 2021-03-04
    • 1970-01-01
    相关资源
    最近更新 更多