如何像普通的JavaScript / Vue.js一样使用CDN链接从另一个.js文件中使用React.js?



我正在尝试从.js文件中导入 React.js 代码并将其用于我的索引.html与 react cdn 导入。我需要完成非常小的任务,所以我不想使用"创建反应应用程序"。

有没有可能的方法使用 React.js就像我们可以使用 jQuery/Vue 一样.js只使用 cdn 导入并从单独的.js文件导入它们?

如果我想在现有项目中使用react.js以及另一个javaScript框架,而不使用create-react-app,因为它有自己的项目结构,该怎么办?

//my_react.js:
class Greeting extends React.Component {
state={
name: 'Deutschland'
}

render() {
return (<h1>Hello {this.state.name}</h1>);
}
}

ReactDOM.render(<Greeting />, document.getElementById('root') );
//index.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script crossorigin src="https://unpkg.com/react@16/umd/react.development.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
<script src="https://unpkg.com/babel-standalone@6/babel.min.js">          </script>

<script src="js/my_react.js"></script>
</head>

<body>

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

</body>
</html>

TL;DR 浏览器不理解 React 用于将 HTML 与 JavaScript 混合在一起的 JSX 格式。您需要使用babel将 JSX 代码转换为 JS,然后才能直接包含它。或者你需要在不使用 JSX 的情况下编写 React 代码。继续阅读。

在JavaScript程序中自由使用html的明显功能实际上并不存在于任何浏览器中。对于大多数人来说,这种与JS和HTML的混合代码经历了转换,结果是可以在任何浏览器中运行的纯JS代码。浏览 React 入门指南,了解如何实现此 https://reactjs.org/docs/getting-started.html。

例如,以下代码段的转换将按这种方式进行:

render() {
return <div />;
}

将被 Babel 转换为:

render() {
return React.createElement('div', {});
}

第二个代码段是浏览器可以理解和执行的内容。显然,您可以直接以第二种格式编写代码,在这种情况下,不需要构建过程。

React 确实(正式)支持没有 JSX 的使用,在这里查看更多关于它的信息:https://reactjs.org/docs/react-without-jsx.html。但请注意,以这种方式编写的 React 组件往往有点冗长。仅当您绝对无法拥有构建系统时才使用此选项。

最新更新