【前端】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>


目录
相关文章
|
11月前
|
前端开发 安全 开发工具
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
728 90
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
监控 前端开发 JavaScript
前端工程化和传统前端开发的区别是什么?
前端工程化相比传统前端开发,在开发模式、代码组织与管理、构建与部署流程、团队协作、性能优化以及技术选型等方面都有了显著的改进和提升,能够更好地应对现代前端应用开发的复杂性和高要求。
|
9月前
|
移动开发 前端开发 安全
|
11月前
|
前端开发
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
331 1
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
|
9月前
|
前端开发
|
9月前
|
前端开发 JavaScript
|
移动开发 前端开发 搜索推荐
《前端技术基础》第01章 HTML基础【合集】
超文本标记语言(HyperText Markup Language,简称 HTML)是构建网页结构的基础标记语言。它与 CSS、JavaScript 协同,负责搭建网页“骨架”,用标签组织内容,像标题、段落、图片等元素,通过起始与结束标签(部分可单用,如`<img>`)界定层级与布局,将信息有序整合。标签含特定语义,向浏览器传达展示方式,为网页准确呈现及后续美化、交互筑牢根基。
437 25
|
人工智能 前端开发 JavaScript
前端基础之HTML
Web1.0、Web2.0 和 Web3.0 标志着互联网发展的三个阶段。Web1.0(静态互联网,1990年代初至2000年代初)以静态内容和单向信息流为主,用户仅能浏览。Web2.0(互动互联网,2000年代初至2010年代初)引入了用户生成内容和社交网络,内容动态且互动性强。Web3.0(语义互联网,2010年代至今)强调语义化、个性化、智能化及去中心化,结合AI、区块链等技术,提供沉浸式体验。HTTP和HTML作为互联网基础协议和技术,在各阶段不断演进,共同推动了现代互联网的发展。
前端基础之HTML
|
前端开发 JavaScript 搜索推荐
HTML与CSS在Web组件化中的核心作用及前端技术趋势
本文探讨了HTML与CSS在Web组件化中的核心作用及前端技术趋势。从结构定义、语义化到样式封装与布局控制,两者不仅提升了代码复用率和可维护性,还通过响应式设计、动态样式等技术增强了用户体验。面对兼容性、代码复杂度等挑战,文章提出了相应的解决策略,强调了持续创新的重要性,旨在构建高效、灵活的Web应用。
311 6
|
XML 前端开发 JavaScript
前端开发进阶:从HTML到React.js
【10月更文挑战第9天】前端开发进阶:从HTML到React.js