Rumah > hujung hadapan web > tutorial js > React中JSX 语法使用详解

React中JSX 语法使用详解

php中世界最好的语言
Lepaskan: 2018-05-24 14:41:04
asal
1847 orang telah melayarinya

这次给大家带来React中JSX 语法使用详解,React中JSX 语法使用的注意事项有哪些,下面就是实战案例,一起来看一下。

JSX 语法

一种特殊的 js 语法糖,可以在代码中把 html 标签当对象使用,其可以总结成以下几个特点:

不加任何引号

以前在 js 中使用 html 标签都是加上引号当成字符串使用,而在 jsx 语法中不用加引号,直接当对象使用

    var html = <h1>React</h1>;
Salin selepas log masuk

标签一定要有对应的结束标标签或结束标识:

有时候我们在写 html 结构的时候,都没有把对应的结束标识加上,但浏览器能正常解析,但在 jsx 语法当中,则要强制写标准的 html 结构
这一段 html 标签在浏览器是能正常解析

    <input type="text" value="React">
Salin selepas log masuk

这一段在 jsx 语法当中则会报错

    var html = <input type="text" value="React">;
Salin selepas log masuk

jsx 正确写法应该是这样的

    var html = <input type="text" value="React" />;
    var p = <p>React</p>;
Salin selepas log masuk

只能有一个根节点

在 jsx 语法当中,最顶层的结构一定只有一个节点,不能出现兄弟节点

    var html = 
    <p>
        <h1>Tom</h1>
        <h1>Lucy</h2>
    </p>
Salin selepas log masuk

不能在标签当中加注释

在 jsx 语法当中,html 标签是一个对象,是一种数据结构,而不是真实的 dom 节点,也不是字符串,所以在标签当中不能添加注释。
下面的代码是在标签当中添加了注释,所以会报错。

    var html = 
    <p>
        <!--不能添加注释,这里会报错-->
        <h1>Tom</h1>
        <h1>Lucy</h2>
    </p>
Salin selepas log masuk

jsx 语法允许 html 标签和 javascript 代码混写

在 jsx 语法当中,要在 html 标签中用到 js 代码,则用花括号({expression})括起来。

    var name = "DK";
    var style = {fontSize: '12px', color: 'red'};
    var html = <span style={style}>{name}</span>;
Salin selepas log masuk

最终上面的代码将会解析成

    <span style="font-size:12px; color:red">DK</span>
Salin selepas log masuk

React 使用

React 是一个第三方的框架库,所以在使用前要先把相关的库文件引入。

    <!--React 核心库-->
    <script src="../../../../libs/react/react.js"></script>
    <!--React 跟 Dom 相关的功能库-->
    <script src="../../../../libs/react/react-dom.js"></script>
    <!--babel 库,将 JSX 语法转为 JavaScript 语法-->
    <script src="../../../../libs/react/browser.min.js"></script>
Salin selepas log masuk

React 是基于 jsx 语法去实现,所以需要明确 script 的类型为 text/babel

    <script type="text/bebal"></script>
Salin selepas log masuk

使用 React 的核心对象和方法ReactDOM.render进行将 html 标签渲染到指定的容器

    <body>
        <p id="p1"></p>
        <p id="p2"></p>
        <p id="p3"></p>
        <!--jsx 语法-->
        <script type="text/babel">
            //将标签直接渲染到容器 p1 当中
            ReactDOM.render(<h1>DK</h1>, document.getElementById('p1'));
            var _style = {fontSize: '12px', color: 'red'};
            var _name = "Tom";
            var _obj = {name: "DK", age: 18};
            //标签与 js 代码混写
            ReactDOM.render(<h1 style={_style}>{_obj.age + (1 + 2)}</h1>, document.getElementById('p2'));
            var array = ["Tom", "Lucy", "Lily"];
            //多级标签和 js 代码混写
            ReactDOM.render(
                <p>
                    <ul>
                        {
                            array.map(function(arg1, arg2){
                                return <li key={arg2}>{arg1}</li>;
                            })
                        }
                    </ul>
                    <ul><li>Sam</li></ul>
                    <ul><li><input type="text" /></li></ul>
                </p>,
                document.getElementById('p3')
            );
        </script>
    </body>
Salin selepas log masuk

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

JS中使用接口步骤详解

PromiseA+的实现步骤详解

Atas ialah kandungan terperinci React中JSX 语法使用详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan