我是React(Angular背景)的新手,并尝试使用react进行客户端渲染。 在index.html之后,由明确的应用程序发送:
<html>
<head>
<title>My Web</title>
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css">
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/react/15.4.1/react.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/react/15.4.1/react-dom.min.js"></script>
<script type="text/javascript" src="/static/src/js/firstComponent.js"></script>
</head>
<body id="mainBody">
</body>
</html>
这是react组件文件(firstComponent.js):
var FirstComponent = React.createClass({
'render': function(){
return <h1> Hello</h1>;
}
});
ReactDOM.render(<FirstComponent />, document.getElementById('mainBody'));
但是在加载页面时,反应似乎不起作用。这有什么不对?
答案 0 :(得分:4)
你有几个问题。那些跳出来的人是:
type="text/js"
不是JS认可的MIME类型之一,因此浏览器将忽略该脚本元素firstComponent.js
是一个JSX文件,浏览器不支持,您需要transpile it into JavaScript 答案 1 :(得分:4)
终于让事情奏效了。以下是我采取的步骤:
HTML:
<html>
<head>
<title>My</title>
</head>
<body>
<div id="root"></div>
<script type="text/javascript" src="/static/src/webpack/bundle.js"></script>
</body>
</html>
组件:
import React from 'react'
import ReactDOM from 'react-dom'
class FirstComponent extends React.Component{
render(){
return (
<h1> Hello</h1>
);
}
}
if(typeof window !== 'undefined')
ReactDOM.render(<FirstComponent />, document.getElementById('root'));
答案 2 :(得分:-1)
就像那样简单
const FirstComponent = <h1> Hello</h1>;
}
});
ReactDOM.render(FirstComponent , document.getElementById('mainBody'));
这里有一些教程Tutorial