2.JSX

news2024/12/23 9:50:22

JSX(JavaScript XML) 是 JavaScript 的语法扩展,格式上比较像模板语言。React支持JSX

下面两个代码可以实现相同的功能,JSX看起来要简洁一些

目录

1  使用环境

2  React中的JSX

2.1  特殊的属性

2.2  没有子节点的标签

2.3  小括号包裹

3  JSX使用JS表达式

3.1  直接写变量

3.2  调用函数

3.3  判断渲染

3.4  html字符

3.5  直接给对象

3.6  列表渲染

3.7  处理样式

3.7.1  style

3.7.2  className


 

1  使用环境

在默认情况下直接在html文件夹中用JSX是不行的

在脚手架中你直接就可以用。JSX一个变量中只能放一个元素,这个元素中可以有无数个子元素,但你直接并列放两个元素是不行的

原因是 JSX 需要使用babel编译处理后,才能在浏览器环境中使用,脚手架已经默认配置好了babel

2  React中的JSX

2.1  特殊的属性

在 React 中元素的属性名使用的是驼峰命名法,且与html的属性名有所区别,比如 class -> class name , for -> htmlFor , tabindex -> tabIndex

你如果沿用html的写法就会有warning

虽然有warning,但类名依然被挂载上了

最好是写成 className

这样就没有了className的warning

2.2  没有子节点的标签

在JSX中没有子节点的标签可以直接以 />收尾

2.3  小括号包裹

在使用JSX的时候最好在最外层加一层小括号

这样写有时会避免一些错误,如果最后找不到错误在哪,可以尝试这样定义JSX

3  JSX使用JS表达式

JSX很像一个模板引擎,在渲染页面的时候我们需要渲染一些变量

像 三元表达式,逻辑中断 这些很不常用的东西我就不写了,在实际生活中应该只有面试会用到,到时再看看也能懂

3.1  直接写变量

我们直接用 单大括号内加变量名 就可以搞进去了

3.2  调用函数

也可以直接调用函数

3.3  判断渲染

可以在函数中搞一些判断,然后return不同的东西,达到不同的条件渲染不同元素的效果

3.4  html字符

JSX本身也可以放入大括号中

3.5  直接给对象

但你不能直接写一个对象进去,写对象进去它不知道你是什么意思,在style属性中可以给对象,后面我们用到的时候再说

3.6  列表渲染

需要给遍历生成的每一个元素一个key属性,不然会出现一个warning

  • 用for循环我不知道该怎么搞,以后循环就用map()就完了

key属性的值需要唯一,不然还是有warning(给一个固定的字符串是不行的),一般我们会选择对象中有唯一标识性的属性,比如说id,如果没有id也可以选择其他的属性,只要key属性存在且都不相同就不会出现warning

一般我们不会使用列表的索引号作为key,因为列表的索引号可能会变化,如果使用索引号也是会给warning

3.7  处理样式

可以直接写style给样式,也可以通过给类名的方式写样式

3.7.1  style

  • 像font-size这种不能给横杠,大部分都是驼峰命名法
  • 两个连续的大括号实则是 style = {样式对象}

3.7.2  className

先在index.css中给一个test类名的样式

之后需要在index.js中引入index.css,在html中使用link引用是没有用的,最后用className给个test类名

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

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

相关文章

vue 实现动态路由

vue-router对象中的addRoutes&#xff0c;用它来动态添加路由配置格式&#xff1a;router.addRoutes([路由配置对象]) this.$router.addRoutes([路由配置对象])举个例子&#xff1a;// 按钮 <button click"hAddRoute">addRoute</button>// 回调 hAddRout…

感染了恶意软件怎么办?

近日&#xff0c;研究人员披露了一种恶意软件&#xff0c;这种恶意软件已经感染了一系列广泛的 Linux 和 Windows 设备。恶意软件攻击事件的频繁发生&#xff0c;除了黑客的恶意攻击外&#xff0c;还有企业内部自身的问题&#xff0c;下面列举了7种容易感染恶意软件的途径和解决…

2023年2月软考高级-信息系统项目管理师【报名入口】

信息系统项目管理师是全国计算机技术与软件专业技术资格&#xff08;水平&#xff09;考试&#xff08;简称软考&#xff09;项目之一&#xff0c;是由国家人力资源和社会保障部、工业和信息化部共同组织的国家级考试&#xff0c;既属于国家职业资格考试&#xff0c;又是职称资…

coresight(六) power requestor

power requestor power requestor属于coresight组件。这个组件用来控制系统的power domain&#xff0c;最多可以控制32个。 如果没有power requestor&#xff0c;通过DAP&#xff0c;只能对整个coresight系统进行上下电操作&#xff0c;但是有了power requestor&#xff0c;可…

2Pai半导体-推出π122E61双通道数字隔离器 智能分压技术 兼容代替Si8622ET-IS

2Pai半导体-推出π122E61双通道数字隔离器 智能分压技术 兼容代替Si8622ET-IS 电路简单、稳定性更高 &#xff0c;具有出色的性能特征和可靠性&#xff0c;整体性能优于光耦和基于其他原理的数字隔离器产品。 产品传输通道间彼此独立&#xff0c;可实现多种传输方向的配置&…

开源工作流可以解决什么问题?

要了解这个问题&#xff0c;就需要先弄清楚相关概念。为什么要使用开源工作流&#xff0c;可以解决什么问题&#xff1f;如果要实现某个业务目标&#xff0c;提高办公协作效率&#xff0c;就可以用开源工作流在多个参与者之间&#xff0c;借助计算机&#xff0c;按照某种预定规…

Oracle重写sql经典50题

Oracle重写sql经典50题oracle与mysql还是有区别的表的数据只能一条一条的插日期的插入不能想mysql一样直接插&#xff0c;得转换格式mysql里的ifnull&#xff0c;oracle里没有这个函数&#xff0c;用nvl代替mysql里的limit在oracle里也没有&#xff0c;要用rownum查询&#xff…

力扣 76. 最小覆盖子串

一、题目 二、 示例 三、提示 四、 思路与代码实现 1. 思路 本题&#xff0c; 套用的是滑动窗口算法模板;初始化左右窗口边界指针&#xff08;要方便源串取值&#xff09; left 0, right 0&#xff0c; 为什么这样初始化&#xff1f; 若设置窗口索引为左闭右闭区间&#xf…

英语学习打卡day8

2023.1.29 1. affluent adj.富裕的&#xff0c;富足的&#xff0c;流畅的n.支流&#xff0c;富人 flu交通流动、发达-流畅的 affluent society affluent neighborhood 2.conception 概念&#xff0c;观念;受孕&#xff0c;怀孕 conceive v.构思&#xff0c;设想;使受孕&…

【Redis | 黑马点评】短信登陆

文章目录项目概述项目前置准备短信登陆基于Session实现登录流程实现发送短信验证码功能实现短信验证码登录和注册功能实现登录校验拦截器隐藏用户敏感信息集群的Session共享问题基于Redis实现共享Session登录登录拦截器的优化项目概述 短信登录 这一块我们会使用redis共享sess…

ExecutorService线程池

文章目录ExecutorService线程池1 ExecutorService API 介绍1.1 api1.1.1 awaitTermination 方法1.1.2 invokeAll 方法1.1.3 invokeAny方法1.1.4 shutdown 方法1.1.5 shutdownNow方法1.1.6 isShutdown方法1.1.7 submit方法1.1.8 isTerminated方法ExecutorService线程池 1 Execu…

Makefile学习笔记(一)

背景 最近在看ATF代码的时候&#xff0c;想要编译下&#xff0c;实施起来遇到一些问题&#xff0c;其中makefile有些命令&#xff0c;语法不是很清晰&#xff0c;故希望重新系统学习下。学习主要参考跟我一起写Makefile-陈皓.pdf。 第一部分、概述 makefile解决的问题&#…

周期矩形波的傅里叶级数展开(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f468;‍&#x1f4bb;4 Matlab代码 &#x1f4a5;1 概述 当脉冲信号周期不变&#xff0c;脉冲宽度变大时&#xff0c;相邻谱线间隔不变&#xff0c;频谱包络线的零点频率逐渐变小&…

git查看分支、创建分支、合并分支

一、查看的git命令如下&#xff1a; git branch 列出本地已经存在的分支&#xff0c;并且当前分支会用*标记 git branch -r 查看远程版本库的分支列表 git branch -a 查看所有分支列表&#xff08;包括本地和远程&#xff0c;remotes/开头的表示远程分支&#xff09; git bran…

9、位和逗号的运算符与表达式

目录 一、位逻辑运算符与位逻辑表达式 1. 位逻辑运算符 2. 位逻辑表达式 二、逗号运算符与逗号表达式 一、位逻辑运算符与位逻辑表达式 1. 位逻辑运算符 位逻辑运算符包括位逻辑与、位逻辑或、位逻辑非和取补 注意&#xff1a;表中除了最后一个运算符是单目运算符外&…

PC 性能自动化工具技术方案及说明

● 需求背景 Kim PC端在每一个版本的迭代过程中&#xff0c;由于各版本的功能改动较多&#xff0c;为了避免在发布新版本时性能不会出现“大跳水”的情况&#xff0c;需要针对每一个版本进行性能测试。由于人工手动测试所需时间较长&#xff0c;且存在参数不准确、时间不可控等…

基于Java+SpringBoot+vue+element驾校管理系统设计和实现

博主介绍&#xff1a;✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

详解vue组件(属性、事件和插槽)

一、属性 1.自定义属性props 可以得出props 可以显示定义一个或一个以上的数据&#xff0c;对于接收的数据&#xff0c;可以是各种数据类型&#xff0c;同样也可以传递一个函数。通过一般属性实现父向子通信&#xff1b;通过函数属性实现子向父通信 2.inheritAttrs 3. data与…

十、顺序存储二叉树、线索化二叉树

1、二叉树顺序存储 1.1 特点 顺序二叉树通常只考虑完全二叉树第n个元素的左子节点为2*n1第n个元素的右子节点为2*n2第n个元素的父节点为(n-1)/2 n&#xff1a;表示二叉树中的第几个元素&#xff08;按0开始编号&#xff09;&#xff0c;也可以理解为n为数组下标。 1.2、基本…

力扣刷题记录——804. 唯一摩尔斯密码词、806. 写字符串需要的行数、824. 山羊拉丁文

本专栏主要记录力扣的刷题记录&#xff0c;备战蓝桥杯&#xff0c;供复盘和优化算法使用&#xff0c;也希望给大家带来帮助&#xff0c;博主是算法小白&#xff0c;希望各位大佬不要见笑&#xff0c;今天要分享的是——《力扣刷题记录——804. 唯一摩尔斯密码词、806. 写字符串…