1.在最新版本0.14中,JSX是否还在使用?
2.babel和jsx是什么关系?
3.这段代码无效,是什么问题?(v0.14)
index.html:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Hello React!</title>
<script src="./src/js/react.js"></script>
<script src="./src/js/react-dom.js"></script>
</head>
<body>
<div id="example"></div>
<script src="./src/js/helloworld.js"></script>
</body>
</html>
未通过babel生成的helloworld.js:
var style = {
color: "red",
border: "1px #000 dashed"
}
var rawHTML = {
__html: "<h1>I'm inner HTML</h1>"
}
var Hello = React.createClass({
render:function(){
return <p style={style} dangerouslySetInnerHTML={rawHTML}>123</p>;
}
});
React.render(<Hello/>,example);
问题三已经解决,下面是代码:
var style = {
color: "red",
border: "1px #000 dashed"
}
var Hello = React.createClass({
render:function(){
var rawHTML = {
__html: "<h1>I'm inner HTML</h1>"
};
return <p style={style} dangerouslySetInnerHTML={rawHTML} ></p>;
}
});
React.render(<Hello/>,example);
在用。
babel 是编译器,负责把 HTML 中
<script type='text/babel' src='app.js'></script>
中的JSX
代码编译成普通的JavaScript
代码。在 0.14 中,react 已经将
react.render
这个 DOM 渲染方法独立出去了。因此,必须要将react-dom.js
也引入进来才可以使用ReactDOM.Render
来渲染 DOM。
update: 包括 react.render 有一些方法在 0.14 中仍然可用,但在 0.15 时将会彻底分隔成两个。
推荐阅读:
React v0.14 概览 - undefined http://undefinedblog.com/react-v0-14/
引入 react.js、react-dom.js、babel 的浏览器版.js
<script src="build/react.js"></script>
<script src="build/react-dom.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.23/browser.min.js"></script>
0.14 下,使用独立的 ReactDOM.render
来渲染 DOM。
ReactDOM.render(
<h1>Hello, world!</h1>,
document.getElementById('example')
);