首页 > 关于React的几个入门级问题

关于React的几个入门级问题

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);

  1. 在用。

  2. babel 是编译器,负责把 HTML 中 <script type='text/babel' src='app.js'></script> 中的JSX 代码编译成普通的 JavaScript 代码。

  3. 在 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')
);
【热门文章】
【热门文章】