• 技术文章 >web前端 >js教程

    React中JSX 语法使用详解

    php中世界最好的语言php中世界最好的语言2018-05-24 14:41:04原创919
    这次给大家带来React中JSX 语法使用详解,React中JSX 语法使用的注意事项有哪些,下面就是实战案例,一起来看一下。

    JSX 语法

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

    不加任何引号

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

        var html = <h1>React</h1>;

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

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

        <input type="text" value="React">

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

        var html = <input type="text" value="React">;

    jsx 正确写法应该是这样的

        var html = <input type="text" value="React" />;
        var p = <p>React</p>;

    只能有一个根节点

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

        var html = 
        <p>
            <h1>Tom</h1>
            <h1>Lucy</h2>
        </p>

    不能在标签当中加注释

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

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

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

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

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

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

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

    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>

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

        <script type="text/bebal"></script>

    使用 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>

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

    推荐阅读:

    JS中使用接口步骤详解

    PromiseA+的实现步骤详解

    以上就是React中JSX 语法使用详解的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:javascript React 详解
    上一篇:React中组件定义使用详解 下一篇:jquery1.8版本使用ajax实现微信调用出现的问题分析及解决办法
    php培训_php实战培训【立即报名】-php中文网第20期

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• 一篇搞定JavaScript DOM详细操作• 深入聊聊JavaScript• JavaScript迭代器知识点总结• 11个可以提升效率的chrome调试技巧• 简单了解JavaScript数据结构与算法之栈
    1/1

    PHP中文网