JavaScript 进阶实战课
石川
JavaScript Patterns and Anti-Patterns 等开源项目创建者,O'Reilly 技术评审
15066 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 47 讲
开篇词 (1讲)
JavaScript 进阶实战课
15
15
1.0x
00:00/00:00
登录|注册

39|语法扩展:通过JSX来做语法扩展

你好,我是石川。
在前面一讲中,我们提到了 React 也有一个 JavaScript 的语法扩展,叫做 JSX。它的全称是 JavaScript XML,顾名思义,它是以 XML 为格式设计的。它最主要的目的是与 React 框架结合,用于应用中 Web UI 相关的开发。在 React 中,DOM 树是通过 JSX 来定义的,最终会在浏览器中渲染成 HTML。基于 React 的普及率,即使你没有用过 React,估计对 JSX 也有所耳闻。
今天,我们就来看看 JSX 是如何用在 Web UI 开发中的。即使你不使用 React,这样的模版模式也有很大的借鉴意义。

类 HTML 的元素

首先,我们来看下 JSX 的基本使用,它是如何创建元素、相关的属性和子元素的。
你可以把 JSX 元素当成一种新的 JavaScript 语法表达。我们知道在标准的 JavaScript 中,字符串的字面量是通过双引号来分隔的,正则表达式的字面量是通过斜线号来分隔的。类似的,JSX 的字面量则是通过角括号来分隔的。比如下面的 <h1 /> 标签就是一个简单的例子,通过这种方式,我们就创建了一个 React 的标题元素。
var title = <h1 className="title">页面标题</h1>;
但是像上面这样的标签,我们知道 JS 引擎是没办法理解的,那它如何被运行呢?这时,我们可以通过我们在上一讲提到的 Babel 把 JSX 的表达先转译成标准的 JavaScript,然后才会给到浏览器做编译和执行。Babel 会把上面变量声明赋值中的 JSX 表达,转换成一个符合 JavaScript 规范的 createElement() 函数,来进行函数的调用。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

JSX是React中的JavaScript语法扩展,以XML格式设计,用于定义DOM树并最终渲染成HTML。通过JSX可以创建类HTML的元素,包括属性和子元素。JSX通过Babel转译成标准的JavaScript,然后由浏览器编译和执行。JSX元素可以嵌入标准的JavaScript表达式,并且可以包含JavaScript和CSS的表达。在React中,可以使用大括号嵌入JavaScript表达式,包括对象、数组和函数值。通过JSX,可以方便地创建React元素和定义其属性、子元素以及样式。JSX的使用有助于模块化和组件化的开发,并提高了安全性。相比传统的JavaScript模版引擎,JSX具有更好的赋能性,可以与JavaScript和CSS交叉使用,支持更多数据类型,同时在渲染前将内容转换成字符串,提高了安全性。欢迎留言分享经验和交流学习心得。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《JavaScript 进阶实战课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(1)

  • 最新
  • 精选
  • 陈英娜
    传统的模板引擎经常是要用字符串形式来拼接,可读性及复用性都非常差
    2023-06-01归属地:浙江
收起评论
显示
设置
留言
1
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部