JSX简介

1 JSX是什么?

1.1 JSX 是一个基于 JavaScript + XML 的一个扩展语法。可以使用babel.js在浏览器中处理JSX。
  • 它可以作为值使用
  • 它并不是字符串
  • 它也不是HTML
  • 它可以配合JavaScript 表达式一起使用
1.2 JSX本质

JSX本质是React.createElement(component,props,children)函数的语法糖。
React17和17之前的差异

  1. 在 React 17 新增了 JSX-runtime,可以将 JSX 直接编译成 虚拟DOM;
  2. 在 React 17 之前,JSX 将会被编译成 React.createElement();

所以,在 17 及之后,如果模块中,只用到了 React 的 JSX ,则不需要引入 React 依赖

1.3 插值表达式:在JSX中可以使用{表达式}嵌入表达式。表达式指的是:产生值的一组代码的集合,例如:
  • 变量
  • 算术运算
  • 函数调用
  • ......

注意:分清楚表达式与语句的区别,if、for、while这些都是语句,JSX不支持语句。

2 各种类型内容在插值中的使用

2.1 JSX中的注释
{/*注释*/}
{/*
            多行注释
*/}
2.2 JSX输出数据类型

2.2.1 JSX嵌入变量
1.基本类型:

  • Number、String、Array类型时,可以直接显示;
  • null、undefined、Boolean类型时,内容为空;(如果希望可以显示null、undefined、Boolean,那么需要转成字符串;转换的方式有:toString方法、空字符串拼接、String(变量)等方式;)

2.复合类型:

  • 对象 --- 报错
  • 数组 -- 数组展开之后,每一位都是一个子元素
  • 函数 -- 报错

2.2.2 JSX嵌入表达式
运算表达式、三元运算符、执行一个函数

2.3 JSX使用

2.3.1 列表渲染

  • 数组:将原有数据转换成数组,利用JSX可以插入数组的特性,映射出新数组
  • 对象扩展:虚拟DOM和diff

2.3.2 条件渲染

  • 三元运算符(?:)
  • 与或运算符(|| &&)

2.3.3 在属性上使用表达式
JSX 中的表达式也可以使用在属性上,但是使用的时候需要注意:当在属性中使用 {} 的时候,不要使用引号包含。属性名使用驼峰命名。

3 JSX使用注意事项

  • 必须有,且只有一个顶层的包含元素 - React.Fragment,即文档碎片,用于充当包含容器,并不会在DOM解析出来,react17之后也可以使用空标签(<></>)充当包含容器。
  • JSX 不是html,也不是字符串,很多属性在编写时不一样
    • className
    • style
  • 列表渲染时,必须有 key 值
  • 在 jsx 所有标签必须闭合
  • 组件的首字母一定大写,标签一定要小写
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容