React入门系列二(React-JSX)

React入门系列二(React-JSX)

React 使用 JSX 来替代常规的 JavaScript。JSX 是一个看起来很像 XML 的 JavaScript 语法扩展。不一定非要使用 JSX,但它有以下优点:
1)JSX 执行更快,在编译为 JavaScript 代码后进行了优化。
2)它是类型安全的,在编译过程中就能发现错误。
3)使用 JSX 编写模板更加简单快速。

一、使用JSX

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>使用JSX</title>
    <!-- 引入React三个文件-->
    <script src="https://cdn.bootcss.com/react/15.4.2/react.min.js"></script>
    <script src="https://cdn.bootcss.com/react/15.4.2/react-dom.min.js"></script>
    <script src="https://cdn.bootcss.com/babel-standalone/6.22.1/babel.min.js"></script>
</head>
<body>
    <div id="example"></div>
    <script type="text/babel">
        ReactDOM.render(
                <div>你好哦,欢迎使用JSX</div>,
                document.getElementById('example')
        );
    </script>
</body>
</html>

关于ReactDOM.render
ReactDOM.render是react最基本的用法,用于将模板转化为HTML语言,并插入指定的DOM结点。
ReactDOM.render(template,targetDOM);接收两个参数,第一个参数用来创建模板,多个DOM元素外层需要使用一个标签进行包裹;第二个参数用来指定插入该模板的目标位置。

JSX允许JavaScript和HTML混写。

二、将JSX代码写入独立文件引入

HTML文件
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>将JSX写入独立文件引入</title>
    <!-- 引入React三个文件-->
    <script src="https://cdn.bootcss.com/react/15.4.2/react.min.js"></script>
    <script src="https://cdn.bootcss.com/react/15.4.2/react-dom.min.js"></script>
    <script src="https://cdn.bootcss.com/babel-standalone/6.22.1/babel.min.js"></script>
</head>
<body>
    <div id="example"></div>
    <script type="text/babel" src="js/hello_react.js"></script>
</body>
</html>

JS文件
ReactDOM.render(
    <div>你好哦,欢迎使用JSX</div>,
    document.getElementById('example')
);

三、在JSX中使用JavaScript表达式

  可以在 JSX 中使用 JavaScript 表达式,表达式写在花括号 {} 中。
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>在JSX中使用JavaScript表达式</title>
    <!-- 引入React三个文件-->
    <script src="https://cdn.bootcss.com/react/15.4.2/react.min.js"></script>
    <script src="https://cdn.bootcss.com/react/15.4.2/react-dom.min.js"></script>
    <script src="https://cdn.bootcss.com/babel-standalone/6.22.1/babel.min.js"></script>
</head>
<body>
    <div id="example"></div>
    <script type="text/babel">
        ReactDOM.render(
                <div>{20+25}</div>,
                document.getElementById("example")
        );
    </script>
</body>
</html>
在 JSX 中不能使用 if else 语句,但可以使用三元运算表达式来替代。
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>在JSX中使用三元运算表达式</title>
    <!-- 引入React三个文件-->
    <script src="https://cdn.bootcss.com/react/15.4.2/react.min.js"></script>
    <script src="https://cdn.bootcss.com/react/15.4.2/react-dom.min.js"></script>
    <script src="https://cdn.bootcss.com/babel-standalone/6.22.1/babel.min.js"></script>
</head>
<body>
    <div id="example"></div>
    <script type="text/babel">
        var a=1;
        ReactDOM.render(
                <div>{a==1?'true':'false'}</div>,
                document.getElementById("example")
        );
    </script>
</body>
</html>

四、React 推荐使用内联样式

可以使用 camelCase(驼峰命名) 语法来设置内联样式. React 会在指定元素数字后自动添加 px 。
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>React 推荐使用内联样式</title>
    <!-- 引入React三个文件-->
    <script src="https://cdn.bootcss.com/react/15.4.2/react.min.js"></script>
    <script src="https://cdn.bootcss.com/react/15.4.2/react-dom.min.js"></script>
    <script src="https://cdn.bootcss.com/babel-standalone/6.22.1/babel.min.js"></script>
</head>
<body>
    <div id="example"></div>
    <script type="text/babel">
        var myStyle={
            color:'green'
        };
        ReactDOM.render(
                <h1 style={myStyle}>React 推荐使用内联样式</h1>,
                document.getElementById("example")
        );
    </script>
</body>
</html>

五、React注释

在标签内部的注释需要花括号,在标签外的的注释不能使用花括号
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>注释</title>
    <!-- 引入React三个文件-->
    <script src="https://cdn.bootcss.com/react/15.4.2/react.min.js"></script>
    <script src="https://cdn.bootcss.com/react/15.4.2/react-dom.min.js"></script>
    <script src="https://cdn.bootcss.com/babel-standalone/6.22.1/babel.min.js"></script>
</head>
<body>
    <div id="example"></div>
    <script type="text/babel">
        ReactDOM.render(
                /*注释*/
                <div>
                    {/*注释*/}
                    <p>注释</p>
                </div>,
                document.getElementById('example')
        );
    </script>
</body>
</html>

六、数组

JSX 允许在模板中插入数组,数组会自动展开所有成员
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>数组</title>
    <!-- 引入React三个文件-->
    <script src="https://cdn.bootcss.com/react/15.4.2/react.min.js"></script>
    <script src="https://cdn.bootcss.com/react/15.4.2/react-dom.min.js"></script>
    <script src="https://cdn.bootcss.com/babel-standalone/6.22.1/babel.min.js"></script>
</head>
<body>
    <div id="example"></div>
    <script type="text/babel">
        var array=[<div>1</div>,<div>2</div>,<div>3</div>];
        ReactDOM.render(
                <div>{array}</div>,
                document.getElementById('example')
        );
    </script>
</body>
</html>

猜你喜欢

转载自blog.csdn.net/sinat_38328891/article/details/79458064