React学习之旅四:JSX的简单应用

目录

JSX是什么

JSX的优点

JSX可以做什么

注意点

实例:多层嵌套html

实例:JSX中写入javascript代码

实例:JSX中写入三元表达式

实例:内联式样

实例:数组


  • JSX是什么

JSX就是符合xml规范的JS,其语法格式比HTML严谨很多。React使用JSX来代替常规的JavaScript。

渲染的时候,JSX本质是先在内部转换为createElement的形式,再渲染到页面上。

  • JSX的优点

  1. JSX 执行更快,因为它在编译为 JavaScript 代码后进行了优化;
  2. 它是类型安全的,在编译过程中就能发现错误;
  3. 使用 JSX 编写模板更加简单快速;
  • JSX可以做什么

  1. 渲染数字
  2. 渲染字符串
  3. 渲染布尔值
  4. 为属性绑定值
  5. 渲染jsx元素
  6. 渲染jsx元素数组
  7. 将普通字符串数组,转为jsx数组并渲染到页面上

 JSX中可以直接写js,但是必须写在大括号{ }中!

  • 注意点

  1. JSX中添加属性时,分别使用 className htmlFor 代替 class 和 for;
  2. JSX创建DOM的时候,所有的节点,必须有唯一的根元素进行包裹 ;
  3. JSX语法中,标签必须成对出现,如果是单标签,则必须自闭和 ;

※ 当编译引擎在编译JSX代码的时候,如果遇到了 那么就把它当作HTML代码去编译,如果遇到了 {} 就把花括号内部的代码当作JS代码去编译。


  • 实例:多层嵌套html

<meta charset="UTF-8" />
<title>Hello React!</title>
<script src="https://cdn.bootcss.com/react/16.4.0/umd/react.development.js"></script>
<script src="https://cdn.bootcss.com/react-dom/16.4.0/umd/react-dom.development.js"></script>
<script src="https://cdn.bootcss.com/babel-standalone/6.26.0/babel.min.js"></script>
</head>
<body>
<div id="example"></div>

<script type="text/babel">

ReactDOM.render(
    <div>
        <h1>这是一个嵌套多层html的实例</h1>
        <p>当嵌套多个 HTML 标签时,需要使用一个 div 将多层标签包裹起来。</p>
        <p data-myattribute="attibute">当在标签中添加自定义属性时,需要再属性前面增加data前缀</p>
    </div>,
    document.getElementById("example")
);
</script>
</body>
</html>
  • 实例:JSX中写入javascript代码

<div id="example"></div>

<script type="text/babel">

ReactDOM.render(
    <div>
        <h1>js表达式要写在{}内</h1>
        <p>3 + 2*2 = {3 + 2*2}</p>
    </div>,
    document.getElementById("example")
);

运行结果:

  • 实例:JSX中写入三元表达式

在 JSX 中不能使用 if else 语句,但可以使用 conditional (三元运算) 表达式来替代。

ReactDOM.render(
    <div>
        <h1>JSX中可以使用三元表达式</h1>
        <p>3 是否大于 2*2 : {3 > 2*2 ? 'true' : 'false'}</p>
    </div>,
    document.getElementById("example")
);
  • 实例:内联式样

<div id="example"></div>

<script type="text/babel">

var myStyle = {
    fontSize: 60,
    color: '#FF0000'
};

ReactDOM.render(
    <div>
        <h1>JSX中可以使用内联式样,渲染时会自动在指定元素后面添加px。</h1>
        <p style={myStyle}>这是我的小实验</p>
    </div>,
    document.getElementById("example")
);
</script>

运行结果

  • 实例:数组

<script type="text/babel">

var myArr = [
        <h3>这是数组的第一个元素</h3>,
        <h3>这是数组的第二个元素</h3>,
        <h3>这是数组的第三个元素</h3>
];

ReactDOM.render(
    <div>
        <h1>JSX中可以插入数组,渲染时数组会自动展开。</h1>
        {myArr}
    </div>,
    document.getElementById("example")
);
</script>

运行结果


JSX的学习暂时就到这里了,这只是最基本的简单应用,至于如何更灵活高效的应用还需要在以后的实际工作中继续练习,接下来将学习:JSX的组件

猜你喜欢

转载自blog.csdn.net/XU906722/article/details/81156107