React的jsx的用法

React是一个流行的JavaScript库,用于构建用户界面。它使用一种名为JSX的语法扩展来描述组件的结构和样式。JSX是React的核心语言之一,它允许开发人员在JavaScript中编写HTML,从而使代码更加简洁和易于阅读。

JSX是一种语法扩展,它允许开发人员在JavaScript中编写类似于HTML的代码。它使用类似XML的标记来描述组件的结构和样式。例如,下面是一个简单的JSX组件:

js 复制代码
const MyComponent = () => {
  return (
    <div>
      <h1>Hello, World!</h1>
      <p>This is a JSX component.</p>
    </div>
  );
};

在这个例子中,我们定义了一个名为MyComponent的函数组件,它返回一个包含HTML标记的JSX元素。这个元素包含一个<div>标记,其中包含一个<h1>标记和一个<p>标记。这些标记被称为"元素",它们可以包含属性和子元素。

JSX的语法非常类似于HTML,但有一些重要的区别。首先,JSX元素必须使用尖括号< >来包围。其次,JSX属性必须使用双引号"来包围。最后,JSX元素必须以分号;结尾。

除了HTML标记外,JSX还支持JavaScript表达式。这意味着我们可以在JSX中使用变量、函数和算术运算符等JavaScript语法。例如,下面是一个使用JavaScript表达式的JSX组件:

js 复制代码
const MyComponent = () => {
  const name = "John";
  const age = 30;
  return (
    <div>
      <h1>Hello, {name}!</h1>
      <p>You are {age} years old.</p>
    </div>
  );
};

在这个例子中,我们定义了两个变量nameage,然后在JSX中使用它们来显示用户的姓名和年龄。我们使用花括号{ }来将JavaScript表达式嵌入到JSX中。

JSX还支持JavaScript的条件语句和循环语句。例如,下面是一个使用条件语句的JSX组件:

js 复制代码
const MyComponent = ({ isLoggedIn }) => {
  return (
    <div>
      {isLoggedIn ? (
        <p>Welcome back!</p>
      ) : (
        <p>Please log in.</p>
      )}
    </div>
  );
};

在这个例子中,我们定义了一个名为isLoggedIn的属性,它表示用户是否已登录。然后,我们使用条件运算符? :来根据用户是否已登录显示不同的消息。

JSX还支持JavaScript的循环语句。例如,下面是一个使用循环语句的JSX组件:

js 复制代码
const MyComponent = ({ items }) => {
  return (
    <ul>
      {items.map((item) => (
        <li key={item.id}>{item.name}</li>
      ))}
    </ul>
  );
};

在这个例子中,我们定义了一个名为items的属性,它是一个包含多个对象的数组。然后,我们使用Array.map()方法来遍历数组,并为每个对象创建一个<li>元素。我们还使用key属性来指定每个元素的唯一标识符,以提高性能。

jsx的{}能够放什么---表达式---值

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!--使用react的环境-->
    <script src="./js/babel.min.js"></script>
    <script src="./js/react.development.js"></script>
    <script src="./js/react-dom.development.js"></script>

    <!--
        babel的作用就是把 react的语法转为 js语言
        react-dom的作用就是把 虚拟dom转为dom
        react.development 开发环境下的react源码
    -->
</head>
<body>
<!--真是的dom-->
<div id="app"></div>

<script type="text/babel">
    let classNameVal = "content"
    let text="刘明飞快的在回你眼前的这个未婚妻是什么情况"
    function add(){
        return "真的让人无法自拔啊!!!"
    }
    let list=["心海","甘雨","艳菲","八重"]
    let VDOM = (
        <div className={classNameVal}>
            <p style={{color:"red",fontSize:"29px"}}>你好{classNameVal}</p>
            <img src="./1.jpg" alt="" width="239" height="159"/>
            {
                //这里是注释
                /*
                多行注释
                多行注释
                * */
            }
            <p>{text}</p>
            <p>{text+"看着他布灵布灵的大眼睛"}</p>
            <p>{add()}</p>
            <div>
                我的老婆们:
                {
                    list.map(ele=>{
                        return <h2>{ele}</h2>
                    })
                }


            </div>
        </div>
    )

    ReactDOM.render(VDOM, document.querySelector("#app"))
    /*
         在 {} 里能写什么   ---表达式---也就是值
         js代码 和 js表达式

         a. 表达式: 一个表达式会产生一个值,可以在任意需要值的地方 使用
             a
             a+520
             fn()
             list.map

         b. 流程控制语句
             if
             for
             switch

      */
</script>


</body>
</html>

总之,JSX是一种非常强大和灵活的语法扩展,它使React开发人员能够更轻松地编写和组织代码。通过使用JSX,我们可以将HTML、JavaScript和CSS等不同类型的代码组合在一起,从而创建出美观、灵活和易于维护的用户界面。

相关推荐
Martin -Tang25 分钟前
vite和webpack的区别
前端·webpack·node.js·vite
迷途小码农零零发25 分钟前
解锁微前端的优秀库
前端
王解1 小时前
webpack loader全解析,从入门到精通(10)
前端·webpack·node.js
我不当帕鲁谁当帕鲁1 小时前
arcgis for js实现FeatureLayer图层弹窗展示所有field字段
前端·javascript·arcgis
那一抹阳光多灿烂1 小时前
工程化实战内功修炼测试题
前端·javascript
放逐者-保持本心,方可放逐2 小时前
微信小程序=》基础=》常见问题=》性能总结
前端·微信小程序·小程序·前端框架
毋若成4 小时前
前端三大组件之CSS,三大选择器,游戏网页仿写
前端·css
红中马喽4 小时前
JS学习日记(webAPI—DOM)
开发语言·前端·javascript·笔记·vscode·学习
Black蜡笔小新5 小时前
网页直播/点播播放器EasyPlayer.js播放器OffscreenCanvas这个特性是否需要特殊的环境和硬件支持
前端·javascript·html
秦jh_6 小时前
【Linux】多线程(概念,控制)
linux·运维·前端