React基本语法,注释、插值

本文深入讲解React中元素的渲染过程,包括如何使用ReactDOM.render方法将JSX语法的模板渲染到DOM节点,以及如何通过插值符号在元素中插入动态数据。同时,探讨了在JSX中使用注释的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

元素渲染

  • ReactDOM

render接收两个参数,一个jsX语法的节点模板,一个是渲染到那个元素对象上(会成为其子节点)


<script type="text/babel">
    const element = (
        <h1>hello React</h1>
    );
    ReactDOM.render(
        element,
        document.querySelector("#app")
    )
</script>

在这里插入图片描述

  • 通过其他任何方式获得jsx语法的模板给render函数即可:
<script type="text/babel">
    function fn() {
    	//当然,通过变量返回也是可以的,多种多样
        return <div>
                <h1>Hello React by return</h1>
            </div>
    }
    const element = fn();
    ReactDOM.render(
        element,
        document.querySelector("#app")
    )
</script>
//或者这样,注意,return后面没有东西就什么都不返回了,直接结束,因为js没有那么严格的分号结束机制;
<script type="text/babel">
    function fn() {
        return (
            //js注释
            <div>
                {/*jsx注释*/}
                <h1>Hello React by return</h1>
            </div>
        )
    }

    const element = fn();
    ReactDOM.render(
        element,
        document.querySelector("#app")
    )
</script>

注释

  • 如果是在节点外,属于js语法,在节点模板内,属于jsx语法:
<script type="text/babel">
   const element = (
        //单行注释
        /* 多行注释 */
        <div>
            //单行注释
            /* 多行注释 */
            <h1>
            hello React
            </h1>
        </div>
        
    );
    ReactDOM.render(
        element,
        document.querySelector("#app")
    )
</script>

在这里插入图片描述

  • 结合插值符号“{ }”写注释:
<script type="text/babel">
    const element = (
        //单行注释
        /* 多行注释 */
        <div>
            {
	            //单行注释
	            /* 多行注释 */
            }
            <h1>
            hello React
            </h1>
        </div>
        
    );
    ReactDOM.render(
        element,
        document.querySelector("#app")
    )
</script>

在这里插入图片描述

当然,为了好看,你可以格式化一下插值符号里的注释结构:

{/*单行注释内容*/}
{//错误的注释,斜杠会把后面的反大括号注释掉,然后匹配到函数或者对象的反大括号造成错误}
{/*
多行注释内容
* @Author: Ouyang 
* @Date: 2018-10-21 18:15:50 
* @Last Modified by:   Ouyang 
* @Last Modified time: 2018-10-21 18:15:50 
*/}

插值

  • 利用插值符号:
<script type="text/babel">
    let person = {
        name:"小明",
        age:"18",
        sex:"男"
    }
    const element = (
        <div>
            <h2>姓名:{person.name}</h2>
            <h2>年龄:{person.age}</h2>
            <h2>性别:{person.sex}</h2>
        </div>
    );
    ReactDOM.render(
        element,
        document.querySelector("#app")
    )
</script>

  • 在插值符号里使用函数:

<script type="text/babel">
    var Person = function(name,age,sex) {
        this.name = name,
        this.age = age,
        this.sex = sex,
        this.getName = function(){
            return this.name
        },
        this.getSex = function() {
            return this.sex
        }
    }
    let newPerson = new Person("小红","18","女");
    const element = (
        <div>
            <h2>姓名:{newPerson.getName()}</h2>
            <h2>年龄:{newPerson.age}</h2>
            <h2>性别:{newPerson.getSex()}</h2>
        </div>
    );
    ReactDOM.render(
        element,
        document.querySelector("#app")
    )
</script>

  • 在插值符号里使用三目运算符:

<script type="text/babel">
    var Person = function(name,age,sex) {
        this.name = name,
        this.age = age,
        this.sex = sex,
        this.getName = function(){
            return this.name
        },
        this.getSex = function() {
            return this.sex
        }
    }
    let newPerson = new Person("小红","18",1);//有些后台用0 1表示性别更加方便
    const element = (
        <div>
            <h2>姓名:{newPerson.getName()}</h2>
            <h2>年龄:{newPerson.age}</h2>
            <h2>性别:{newPerson.getSex()==1?"女":"男"}</h2>//完全可以插入三目运算符,但是可惜的是,这里不能直接写函数体,也不能用if判断等
        </div>
    );
    ReactDOM.render(
        element,
        document.querySelector("#app")
    )
</script>

在这里插入图片描述

  • 但是可以在插值符号里写闭包自执行函数:

<script type="text/babel">
    var Person = function(name,age,sex) {
        this.name = name,
        this.age = age,
        this.sex = sex,
        this.getName = function(){
            return this.name
        },
        this.getSex = function() {
            return this.sex
        }
    }
    let newPerson = new Person("小红","18",1);
    const element = (
        <div>
            <h2>姓名:{newPerson.getName()}</h2>
            <h2>年龄:{newPerson.age}</h2>
            <h2>性别:{
                (function(sex) {
                    if(sex == 1){
                        return "女,1"
                    }else{
                        return "男,2"
                    }
                })(newPerson.getSex())
            }</h2>
        </div>
    );
    ReactDOM.render(
        element,
        document.querySelector("#app")
    )
</script>

在这里插入图片描述

这样我们就可以根据需要将数据渲染到对应节点里,而且通过函数等,不管是准备的静态数据,还是请求的动态数据,都可以较好的渲染进元素里!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奔跑的飞牛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值