JSX语法

文章目录

    • 1.JSX是什么
    • 2.JSX书写规范
    • 3.JSX中显示数据
    • 4.添加样式
      • 隔离作用域
    • 5.条件渲染
    • 6.列表渲染
    • 7.响应事件
    • 8.更新页面

1.JSX是什么

  • JSX是一种JavaScript的语法扩展
  • 用于描述页面,并且可以和JavaScript融合在一起
  • 不同于Vue的模板语法,没有Vue中的一些指令(v-if,v-show,v-for)
  • 在react 中直接将 JSX 语法和 HTML 语法书写在了一起,这种写法就是JSX

2.JSX书写规范

  • JSX只能有一个根元素
  • 为了方便阅读,通常在JSX的外层包裹一个小括号()
  • 在JSX中的标签可以是单标签也可以是双标签

3.JSX中显示数据

JSX中使用大括号,把变量嵌入到代码中展示给用户

let title = "标题"
return (<div title={title}>{user.name}</div>)

4.添加样式

<div className={divStyle}>div</div>
.divStyle{color:red;
}

隔离作用域

import less from "./index.less"function App =()=>{return (<div className={less.divStyle}>div</div>)
}	
// index.less
.divStyle{color:red;
}

5.条件渲染

function App(){const divTitle = "标签标题",const flag = true,let divContent = "",if(flag) {divContent = <div>flag == true</div>}else{divContent = <div>flag == false</div>}return (<div title={divTitle}>{divContent}{flag ? "男":"女"}</div>)  
}

6.列表渲染

react 中渲染列表使用 JS的map函数,不同于Vue的v-for,
需要注意的是,通过map函数返回的标签元素,都应该有一个key属性.对于列表中的每一个元素,都应该传入一个字符串或者数字给key,用于在其兄弟节点中唯一标识该元素

function App(){const list = [{name:"张三",id:1},{name:"李四",id:2},{name:"王五",id:3},{name:"赵六",id:4}],const listContent = list.map((item)=> <li key={item.id}>{item.name}</>)return (<ul>{listContent}</div>)  
}

7.响应事件

在 jsx 中属性通常是以小驼峰形式命名
注意,onClick={handleClick} 的结尾没有小括号,不要调用 事件处理函数,只需要把函数传递给事件即可 .但用户点击按钮时React 会调用传递的事件处理函数

function App(){function handleClick(){console.log("点击了按钮")}return (<button onClick={handleClick}>按钮</button>)
}

8.更新页面

在页面将一些信息展示出来,例如一个按钮被点击的次数,这时候就需要添加state

  1. 从react 中引入useState
  2. useState:当前的state(count),以及用于更新它的函数(setCount)
  3. 当需要更改的时候,调用更新函数,将新的值传递给它
import {useState} from "react";function App(){const [count,setCount] = useState(0)function handleClick(){setCount(count+1)}return (<><div>{count}</div><button onClick={handleClick}>按钮</button><>)
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/195788.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot嵌入式容器(自动配置原理、自定义嵌入式容器)

目录 1. 自动配置原理2. 自定义嵌入式容器3. 最佳实践 Servlet容器&#xff1a;管理、运行Servlet组件&#xff08;Servlet、Filter、Listener&#xff09;的环境&#xff0c;一般指服务器 1. 自动配置原理 SpringBoot默认嵌入Tomcat作为Servlet容器自动配置类是ServletWebSer…

抽象类与接口

抽象类&#xff1a; 父类某些方法需要声明&#xff0c;但又不确定如何实现&#xff0c;可将其声明抽象方法&#xff0c; 【抽象类主要是为了防止创建父类对象】 抽象类与抽象方法 抽象方法没有方法体 类中有抽象方法&#xff0c;类必须声明为抽象类 …

java开发之个微机器人的实现

简要描述&#xff1a; 二次登录 请求URL&#xff1a; http://域名地址/secondLogin 请求方式&#xff1a; POST 请求头Headers&#xff1a; Content-Type&#xff1a;application/jsonAuthorization&#xff1a;login接口返回 参数&#xff1a; 参数名必选类型说明wcId…

k8s之Pod常用命令详解、镜像拉取策略(imagePullPolicy)

常用命令 kubectl get pod #查看默认命名空间下所有pod kubectl describe pod podname #获取默认命名空间下POD详情# 如果要查看制定命名空间则使用 -n nsname kubectl get pod -n ns kubectl describe pod podname -n ns# 以YAML格式提供比 kubectl describe pod 更加详细的信…

【每日一题】从二叉搜索树到更大和树

文章目录 Tag题目来源题目解读解题思路方法一&#xff1a;中序遍历的反序方法二&#xff1a;后缀数组 写在最后 Tag 【中序遍历】【二叉树】【2023-12-04】 题目来源 1038. 从二叉搜索树到更大和树 题目解读 在二叉搜索树中&#xff0c;将每一个节点的值替换成树中大于等于该…

DDR详解

DDR也就是常称的内存在一般使用过程中都是透明的&#xff0c;此文从多方面对DDR进行详解。 DDR训练 高可靠性是系统级芯片SoC重要的质量和性能要求之一。SoC的复杂在于各个IP模块都对其产生至关重要的影响。从芯耀辉长期服务客户的经验来看&#xff0c;在客户的SoC设计中&…

根文件系统lib库添加与初步测试

一. 简介 我们在编译 busybox源码时&#xff0c;选择的是动态编译&#xff0c;所以&#xff0c;制作生成的 根文件系统中/bin或 /sbin目录下软件运行时会调用到一些库文件的。库文件就是交叉编译器的库文件。 前面我们编译 busybox源码时&#xff0c;选择动态编译&#xff0…

NPS内网穿透教程

1.简介 nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持tcp、udp流量转发&#xff0c;可支持任何tcp、udp上层协议&#xff08;访问内网网站、本地支付接口调试、ssh访问、远程桌面&#xff0c;内网dns解析等等……&#xff09;&#xff0c;此外还支持内网ht…

【python爬虫】设计自己的爬虫 2. 数据保存封装 mongodb,mysql和elasticsearch

mongodb, mysql和elasticsearch 功能较相似&#xff0c;所以打算用一套接口将它们封装起来 基类StorageBase 如下&#xff1a; class StorageBase:def __init__(self, hostNone, portNone, databaseNone, tableNone, locationNone, accountNone, passwordNone,urlNone):self…

安卓1.0明显是基于linux内核开发的,安卓1.0是不是linux套壳?

安卓1.0明显是基于linux内核开发的&#xff0c;安卓1.0是不是linux套壳&#xff1f; 在开始前我有一些资料&#xff0c;是我根据自己从业十年经验&#xff0c;熬夜搞了几个通宵&#xff0c;精心整理了一份「安卓开发资料从专业入门到高级教程工具包」&#xff0c;点个关注&…

141. 环形链表

141. 环形链表 设置一个fast指针&#xff0c;一个slow指针&#xff0c;fast一次走两步&#xff0c;slow一次走一步。如果fast和slow相遇&#xff0c;则说明有环。反之没相遇则无环。 注意快慢指针的while循环条件是fast.next ! null && fast.next.next ! null /*** …

大数据集群增加数据盘,平衡数据盘HDFS Disk Balancer

大数据集群增加数据盘&#xff0c;平衡数据盘HDFS Disk Balancer 官网&#xff1a;https://hadoop.apache.org/docs/r3.3.6/hadoop-project-dist/hadoop-hdfs/HDFSDiskbalancer.html hdfs diskbalancer -execute /system/diskbalancer/nodename.plan.jsonhdfs diskbalancer -q…

StringJoiner使用详解

关于StringJoiner 1.介绍2.源码2.1 属性2.2 方法 3 举例StringJoiner做法3.1 只含间隔符3.2 含间隔符和前后缀3.3 merge合并两个joiner3.4 stringJoiner.setEmptyValue("xxx");3.5 综合举例length()方法 1.介绍 在JDK1.8之后&#xff0c;提供了一个StringJoiner类用来…

简谈oracle数据库的归档模式

一、oracle数据库归档模式简介 Oracle数据库归档模式是一种数据备份和恢复策略,它允许数据库记录所有数据库的更改操作(包括已提交和未提交的事务)并将其存储在归档日志中。这些归档日志可以用于在数据库发生故障时进行恢复,并提供点时间恢复(PITR)的能力。 在Oracle数…

ruoyi-vue 整合netty实现TCP/IP协议数据接收

支持持续接收数、可发送数据、可多端口连接。 废话少说&#xff0c;直接上代码&#xff01; 如果写的可以&#xff0c;记得点个赞~ import com.alibaba.fastjson.JSON; import lombok.AllArgsConstructor; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; imp…

PHP 刷新缓存区的问题!

PHP流式输出&#xff0c;在Nginx下可以正常刷新缓存区 &#xff0c; 但是在Apache下会等待循环全部执行完&#xff0c;才会刷新&#xff01;有怎么解决&#xff1f; header(X-Accel-Buffering: no); // Nginx情况下必须加这一行header(Content-type: text/event-stream);header…

【刷题】【力扣牛客】反转链表的五种方式——Java

文章目录 前言方法一&#xff1a;构造新链表&#xff08;构造新节点&#xff09;方法二&#xff1a;构造新链表&#xff08;不构造新节点&#xff09;方法三&#xff1a;递归方法四&#xff1a;双指针方法五&#xff1a;遍历总结 力扣题目链接&#xff1a;206. 反转链表 牛客题…

IDEA2023找不到 Allow parallel run

我的idea版本&#xff1a;2023.1.4 第一步&#xff1a;点击Edit Configrations 第二步&#xff1a;点击Modify options 第三步&#xff1a;勾选Allow multiple instances 最后点击Apply应用一下 ok,问题解决&#xff01;

SSM项目实战-登录验证成功并路由到首页面,Vue3+Vite+Axios+Element-Plus技术

1、util/request.js import axios from "axios";let request axios.create({baseURL: "http://localhost:8080",timeout: 50000 });export default request 2、api/sysUser.js import request from "../util/request.js";export const login (…

Mysql日志

文章目录 1. 日志类型2. bin log2.1 写入机制2.2 binlog与redolog对比2.3 两阶段提交 3. 中继日志 1. 日志类型 这 6 类日志分别为&#xff1a; 慢查询日志&#xff1a; 记录所有执行时间超过long_query_time的所有查询&#xff0c;方便我们对查询进行优化。 通用查询日志&am…