React基础语法

原生JS语法与React语法对比

  • 原生JS语法举例
<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8" />
    <title>Hello React!</title>
    
</head>

<body>

    <!-- 展开运算符的一些用法 -->
    <script type="text/javascript">
        let arraylist = [1,3,5,7,9]
        let arraylist2 = [2,4,6,8,10]
        console.log(...arraylist);


        //批量接收所有参数
        function sum(...numbers){
            console.log('@', numbers);//@ (4) [1, 2, 3, 4]
        }
        console.log(sum(1,2,3,4));//undefined  因为没有返回值吗?


        //数组身上的方法,累加求和
        function sum2(...numbers){
            return numbers.reduce((pre,curr)=>{
                return pre+curr
            })
        }
        console.log(sum2(1,2,3,4));//10

        //展开运算符不能展开对象,但是外面包一个花括号可以复制一个对象
        let person = {name:"tom", age:"18"}
        let person2 = {...person}
        console.log(person); 
        person.name = 'jerry'//因为是复制之后改变的name,所以person2没变,只有person变了
        console.log(person2);


        //复制对象的时候,修改了他的属性
        let person3 = {...person, name:"jack"}
        console.log(person3)

    </script>

</body>


</html>
  • React语法举例
<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8" />
    <title>Hello React!</title>
    <script src="https://cdn.staticfile.org/react/16.4.0/umd/react.development.js"></script>
    <script src="https://cdn.staticfile.org/react-dom/16.4.0/umd/react-dom.development.js"></script>
    <script src="https://cdn.staticfile.org/babel-standalone/6.26.0/babel.min.js"></script>

 
</head>

<body>

    <div id="example"></div>
    <script type="text/babel">
        const myData = ['a','b','c']

        const VDOM = (
            <div>
                <h1>标题</h1>

                <u1>
                    {
                        myData.map((item,index)=>{
                            return <li key={index}>{item}</li>
                        })
                    }    
                </u1>

            </div>
        )
        ReactDOM.render(VDOM, document.getElementById('example'));

    </script>

</body>


</html>
<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8" />
    <title>Hello React!</title>
    <script src="https://cdn.staticfile.org/react/16.4.0/umd/react.development.js"></script>
    <script src="https://cdn.staticfile.org/react-dom/16.4.0/umd/react-dom.development.js"></script>
    <script src="https://cdn.staticfile.org/babel-standalone/6.26.0/babel.min.js"></script>

    <style>
        .title {
            background-color: aqua;
            width: 200px;
        }
    </style>

</head>

<body>

    <div id="example" style="color: orange; width: 100px"></div>
    <script type="text/babel">
        const myData = 'hello,React'

        const VDOM = (
            <h1 className="title" id="test">
                <span style={{color:'white'}}>{myData.toLowerCase()}</span>
            </h1>
        )
        ReactDOM.render(VDOM, document.getElementById('example'));
        
    </script>

</body>


</html>
  • 区别:
  1. 需要引入react相关的js库
  2. script标签中,如果是原生js,写的是javascript,如果是react,写的是babel
  3. 内联样式:<span style={{color:‘white’}}>,需要加上两个花括号和一个单引号,不能像之前html中那样写
    ,直接在标签里面写
  4. JSX是一种用于描述UI的JavaScript扩展语法,React使用这种语法描述组件的UI。React认为,一个组件应该是具备UI描述和UI数据的完整体,不应该将它们分开处理,于是发明了JSX,作为UI描述和UI数据之间的桥梁。详细介绍;https://m.runoob.com/react/react-jsx.html
  5. JSX语法的标签里面还可以使用JS表达式,但是需要用花括号括起来,否则就会被当做字符串输出
  6. 由于 JSX 就是 JavaScript,一些标识符像 class 和 for 不建议作为 XML 属性名。作为替代,React DOM 使用 className 和 htmlFor 来做对应的属性,见react案例2
  7. 虚拟DOM:React元素本身就是一个虚拟DOM节点。例如,下面是一个DOM结构:
    在这里插入图片描述
  8. React的项目一般都是用ES 6语法来写的
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值