react入门(二)——jsx语法

概念及用法

demo需要的js文件我不在这里声明了,若有需要js的,可以去我上一个博客上面复制cdn的地址进行下载 https://blog.csdn.net/qq_40566547/article/details/91425577
首先我来解释一下jsx:
jsx全称JavaScript Xml,大家都知道xml和html,在html中我们只能使用固定的标签,在xml中我们可以使用自定义的标签,jsx就是将xml的标签写法加入进js写法而已,和平常写html标签没什么区别。
在jsx中,我们可以直接以写html代码的形式进行js的书写,不过需要babel进行转换语法,当我们需要在jsx中书写动态的内容,可以通过 {} 进行js动态的值或表达式(三目表达式)。

例子1

<script type="text/babel">
const msg = 'I LIKE YOU';
const myId = 'testid';
//创建虚拟dom(jsx),  {}  里面写入js表达式
const vDom1 = <h3 id={myId.toUpperCase()}>{msg.toLowerCase()}</h3>;
ReactDOM.render(vDom1 , document.getElementById('test1'))
</script>

我们需要知道的是,在jsx中,如果你想要写动态的值,就必须要加{},然后再里面书写js的内容。
有了上面的思想,我们现在做一个复杂点的。

例子2
/*
需求:动态展示列表数据
大多数的react小白会想到用一个数组来存储需要动态展示的数据,这没错很正确
但是当大家在不知道语法的情况下,很容易书写成以下情况
不多说,我们先看下效果
*/
<script type="text/babel">
    const datas = ['jQuery', 'zeptoo', 'React', 'Vue','Vue全家桶'];
    const vDom = (
        <ul>
          <li>{datas}</li>
        </ul>
    );
    ReactDOM.render(vDom, document.getElementById('example'))
</script>

在这里插入图片描述
我们可以看到上面只是将数组进行了遍历,然后将每一位分别插入到一个li标签中,所以我们需要转换一下思想:如何将一个数据的数组转换为一个标签的数组。这个时候我们想到了用数组的map方法。

<script type="text/babel">
    /*
        动态展示列表数据,问题:如何将一个数据的数组转换为一个标签的数组(使用map)
     */
    const datas = ['jQuery', 'zeptoo', 'React', 'Vue','Vue全家桶'];
    //由于遍历的时候若不加一个唯一的key加以区分,控制台会报错,所以这里我们需要将key加上,我建议以后进行相类似的操作都加上key
    const vDom2 = (
        <ul>
            {datas.map((item, index) => <li key={index}>{item}</li>)}
        </ul>
    );
    ReactDOM.render(vDom2, document.getElementById('example'))
</script>

通过上面的操作我们就能得到想要的效果
在这里插入图片描述
这里用了很多ES6的写法,若有不懂得请看阮一峰的《ES6标准入门》一书,网址http://es6.ruanyifeng.com/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值