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等不同类型的代码组合在一起,从而创建出美观、灵活和易于维护的用户界面。

相关推荐
JIngJaneIL9 分钟前
助农惠农服务平台|助农服务系统|基于SprinBoot+vue的助农服务系统(源码+数据库+文档)
java·前端·数据库·vue.js·论文·毕设·助农惠农服务平台
云外天ノ☼14 分钟前
待办事项全栈实现:Vue3 + Node.js (Koa) + MySQL深度整合,构建生产级任务管理系统的技术实践
前端·数据库·vue.js·mysql·vue3·koa·jwt认证
一位搞嵌入式的 genius17 分钟前
前端实战开发(三):Vue+Pinia中三大核心问题解决方案!!!
前端·javascript·vue.js·前端实战
塞纳河畔的歌18 分钟前
保姆级教程 | 麒麟系统安装Edge浏览器
前端·edge
多睡觉觉20 分钟前
数据字典:从"猜谜游戏"到"优雅编程"的奇幻之旅
前端
嗝屁小孩纸23 分钟前
开发集成热门小游戏(vue+js)
前端·javascript·vue.js
赛博切图仔28 分钟前
深入理解 package.json:前端项目的 “身份证“
前端·javascript
UIUV31 分钟前
JavaScript 学习笔记:深入理解 map() 方法与面向对象特性
前端·javascript·代码规范
太平洋月光41 分钟前
MJML邮件如何随宽度变化动态切换有几列📮
前端·css
AAA不会前端开发43 分钟前
TypeScript核心类型系统完全指南
前端·typescript