我正在尝试创建一个独立的 React 示例,而不使用 webpack、npm、JSX 或 babel。由于 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>
最佳答案
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-r<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="d4b1b5b7a0f9b7b8b5a7a794e5e1fae2fae6" rel="noreferrer noopener nofollow">[email protected]</a>/create-react-class.min.js"></script>
您还需要将 React.createClass
的任何实例替换为 createReactClass
,详细信息 here .
也就是说,我会考虑一下您是否真的需要 create-react-class
- 除 IE 之外的每个主要浏览器现在都支持 ES6 类,因此您并不真正需要Babel 不再使用它们。
关于reactjs - 在 React 16 中使用 require 和 npm 在没有 npm 的情况下创建react-class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47809720/