【前端】JSX 和 HTML 的区别

简介: 【前端】JSX 和 HTML 的区别

正文


首先看一个例子:


HTML版本:

<button onclick="alert('七镜')">七镜</button>


JSX版本:

<button onClick={() => {alert('七镜')}}>七镜</button>


上面这个例子有两个地方不一样:

  1. HTML版本的属性名全是小写的,而在 JSX 里的属性是驼峰式命名(camel case);
  2. 两者的onclick属性值不一样。

之所以有上面的两点区别,是因为 JSX 标签本质上就是 JavaScript 代码。如果把按钮的 JSX 输出成 JavaScript,就真相大白了:

let jsx = <button onClick={()=>alert('七镜')}>七镜</button>
        console.log("jsx is: ", jsx)
        console.log("jsx is: ", JSON.stringify(jsx))

2234.webp.jpg

输出结果


JSX 和 HTML的常见区别:


项目 JSX HTML
闭合要求 所有标签都必须闭合,比如 <br /><div></div> 有一些标签可以不闭合,比如 <br>
属性命名标准 驼峰式命名,如:<button onClick={()=>{alert('七镜')}}> 全小写,如: <button onclick="alert('七镜')">
自定义标签 支持。自定义组件名可直接用作标签名,如 <MyComponent /> 无(除非使用 web component)
模板支持 在标签特定的位置可使用 大括号{} 插入动态内容
引用 CSS 类 使用 className 属性,如:<div className="container"> 使用 class 属性
内嵌样式 使用 style 属性,如:<div style={{ background: "red" }}> 使用 class 属性,如:<div style="background: red;">
textarea <textarea value="文本框内容" /> <textarea>文本框内容</textarea>
label <label htmlFor="input-id"> <label for="input-id">
select 使用 select 标签的 value 属性标识当前选项,如:<select value="七镜">...</select> 使用 option 标签的 selected 属性标识当前选项,如:<option selected>七镜</option>


目录
相关文章
|
18天前
|
监控 前端开发 JavaScript
前端工程化和传统前端开发的区别是什么?
前端工程化相比传统前端开发,在开发模式、代码组织与管理、构建与部署流程、团队协作、性能优化以及技术选型等方面都有了显著的改进和提升,能够更好地应对现代前端应用开发的复杂性和高要求。
|
2月前
|
XML 前端开发 JavaScript
前端开发进阶:从HTML到React.js
【10月更文挑战第9天】前端开发进阶:从HTML到React.js
|
3月前
|
Web App开发 存储 移动开发
前端基础(十七)_HTML5新特性
本文概述了HTML5的关键新特性,包括canvas图形绘制、多媒体的`video`和`audio`元素、本地存储功能、语义化标签(如`header`、`footer`、`nav`等)及其新增表单控件和属性(如`url`、`email`、`date`类型输入框等)。这些改进增强了网页的功能性和用户体验。
44 1
前端基础(十七)_HTML5新特性
|
2月前
|
前端开发 JavaScript 数据安全/隐私保护
【前端基础篇】HTML零基础速通2
【前端基础篇】HTML零基础速通
20 2
|
2月前
|
Web App开发 移动开发 前端开发
【前端基础篇】HTML零基础速通1
【前端基础篇】HTML零基础速通
29 1
|
3月前
|
前端开发
HTML 颜色的不用写法和最终显示效果的区别
HTML 中色彩的指定有多种方式,包括十六进制(如 `#FF5733`)、RGB(如 `rgb(255, 87, 51)`)、RGBA(如 `rgba(255, 87, 51, 0.5)`)、HSL(如 `hsl(14, 100%, 60%)`)、HSLA(如 `hsla(14, 100%, 60%, 0.5)`)以及直接使用颜色名称(如 `orange`)。这些方法虽然最终显示效果可能相同,但在使用场景和灵活性上各具优势。十六进制和 RGB 更常用,HSL 则便于调整颜色属性,而 RGBA 和 HSLA 增加了透明度选项,颜色名称则提高了代码的可读性。
|
2月前
|
JavaScript 前端开发 应用服务中间件
Vue开发中,在实现单页面应用(SPA)前端路由时的hash模式和history模式的区别及详细介绍
Vue开发中,在实现单页面应用(SPA)前端路由时的hash模式和history模式的区别及详细介绍
29 0
|
2月前
|
存储 前端开发 API
前端开发中,Web Storage的存储数据的方法localstorage和sessionStorage的使用及区别
前端开发中,Web Storage的存储数据的方法localstorage和sessionStorage的使用及区别
102 0
WK
|
3月前
|
存储 移动开发 前端开发
HTML5和CSS5有什么区别
HTML5和CSS5在网页设计中扮演不同角色。HTML5是超文本标记语言的第五版,通过新特性如实时更新、跨平台运行及更好的安全性等,定义网页内容和结构。尽管常说CSS5,实际最新的CSS版本包含多个模块如CSS Grid和Flexbox,主要用于控制网页布局和样式,提供强大的选择器、动画支持和响应式设计,与HTML5相辅相成,共同构建现代网页的基础架构。
WK
52 3
|
3月前
|
前端开发
前端基础(二)_HTML常用标签(块级标签、行级标签、行块级标签)
本文详细介绍了HTML中的常用标签,包括块级标签(如`h1`至`h6`、`p`、`div`等)、行级标签(如`span`、`b`、`strong`、`i`、`em`、`sub`、`sup`、`del`、`a`等),以及行块级标签(如`img`)。文章解释了这些标签的用途、特点和基本用法,并通过示例代码展示了如何在HTML文档中使用它们。
128 1