我在React.js中制作了一个简单的"Hello World"程序.我期待将"Hello World"打印在html的正文中.
的index.html
<html>
<head>
<script src="http://fb.me/react-0.12.2.min.js"></script>
<script>
var HelloWorld = React.createClass({
render: function() {
return <div>Hello, world!</div>;
}
});
React.render(new HelloWorld(), document.body);
</script>
</head>
<body>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
错误:
Uncaught SyntaxError: Unexpected token <
Run Code Online (Sandbox Code Playgroud)
有人能告诉我我在哪里弄错了吗?
won*_*ton 14
Sol的答案涵盖了简单的hello应用程序无法执行的原因.最新的React.js截至2017年1月的最佳做法是导入
<script src="https://unpkg.com/babel-standalone@6.26.0/babel.min.js"></script>
Run Code Online (Sandbox Code Playgroud)
并将脚本类型设置为text/babel
.
有了这个,你可以正常执行JSX,例如
class Greeting extends React.Component {
constructor(props) {
super(props);
}
render() {
return (
<p>Hello, Universe</p>
);
}
}
Run Code Online (Sandbox Code Playgroud)
Sol*_*Sol 12
你所缺少的是包含将JSX转换为JS的东西.您需要包含JSXTransformer.js.另请注意React.render不使用document.body,它应该是一个dom元素.这是一个应该有效的例子:
<!DOCTYPE html>
<html>
<head>
<title>My First React Example</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.13.3/react.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.13.3/JSXTransformer.js"></script>
</head>
<body>
<div id="greeting-div"></div>
<script type="text/jsx">
var Greeting = React.createClass({
render: function() {
return (
<p>Hello, Universe</p>
)
}
});
React.render(
<Greeting/>,
document.getElementById('greeting-div')
);
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
小智 5
我只是想与大家分享我的解决方案。我想建立一个没有所有 npm、node guff 的简单项目,就像我遇到问题的 OP,我花了三个小时才弄明白,下面是我的解决方案。
HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Boy</title>
<link rel="stylesheet" type="text/css" href="css/app.css">
<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 src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.24.0/babel.js"></script>
<script type ="text/babel" src="js/app.js"></script>
</head>
<body>
<div id="root">Loading...</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
关键是包含来自 React 和 Babel 的适当脚本文件。我正在使用外部 app.js 文件,如果您想这样做,请记住包含类型 ="text/babel"。
完成后,您可以从 React 执行 hello world 示例。我的 app.js 文件:
ReactDOM.render(
<h1>Hello, world!</h1>,
document.getElementById('root')
);
Run Code Online (Sandbox Code Playgroud)
CSS文件:
#root {
color: skyblue;
}
Run Code Online (Sandbox Code Playgroud)
我希望这有帮助。
归档时间: |
|
查看次数: |
10306 次 |
最近记录: |