快捷搜索:  汽车  科技

一分钟看懂React的JSX语法(一分钟看懂React的JSX语法)

一分钟看懂React的JSX语法(一分钟看懂React的JSX语法)标签可以任意嵌套。例如:2.嵌套规则二、JSX基本规则1.基本规则 JSX 构建组件的规则和 XML 规则一致

一分钟看懂React的JSX语法(一分钟看懂React的JSX语法)(1)

学习react.js一般来说同时也要学会JSX语法,facebook官方推荐使用该语法代替javascript常规语法。下文详细讲解JSX在react中的相关用法。

一、What is JSX?

JSX 是Facebook为React开发的一套语法糖,创建JSX 语法的本质目的是为了使用基于 xml 的方式表达组件的嵌套 ,保持和 HTML 一致的结构 ,语法上除了在描述组件上比较特别以外, 其它和普通的Javascript没有区别 。并且最终所有的 JSX 都会编译为原生Javascript。

中文网参考 :https://doc.react-china.org/docs/jsx-in-depth.html

二、JSX基本规则

1.基本规则

JSX 构建组件的规则和 XML 规则一致

2.嵌套规则

标签可以任意嵌套。例如:

一分钟看懂React的JSX语法(一分钟看懂React的JSX语法)(2)

3.标签闭合

标签必须严格闭合,否则无法编译通过。

自闭合:

一分钟看懂React的JSX语法(一分钟看懂React的JSX语法)(3)

标签闭合:

一分钟看懂React的JSX语法(一分钟看懂React的JSX语法)(4)

4.JSX组件

JSX 组件分为 HTML 组件和 React 组件,HTML 组件就是 HTML 中的原生标签。例如:

一分钟看懂React的JSX语法(一分钟看懂React的JSX语法)(5)

React 组件就是自定义的组件,例如:

一分钟看懂React的JSX语法(一分钟看懂React的JSX语法)(6)

5.组件属性

和 HTML 一样,JSX 中组件也有属性,传递属性的方式也相同 ,对于HTML 组件:

一分钟看懂React的JSX语法(一分钟看懂React的JSX语法)(7)

如果是 React 组件可以定义自定义属性(Props),属性既可以是字符串,也可以是任意的 Javascript 变量 传递方式是将变量用花括号包裹:

一分钟看懂React的JSX语法(一分钟看懂React的JSX语法)(8)

注意: 属性的写法上和 HTML 存在区别 ,在写 JSX 的时候,所有的属性都是驼峰式(Webkit ms)写法

一分钟看懂React的JSX语法(一分钟看懂React的JSX语法)(9)

而原生的写法为:

一分钟看懂React的JSX语法(一分钟看懂React的JSX语法)(10)

这主要是标准的原因。驼峰式是 Javascript 的标准写法,并且 React 底层是将属性直接对应到原生DOM 的属性,而原生DOM 的属性是驼峰式的写法,这里也可以理解为什么类名不是 class 而是 className 了。

又因为 class 和 for 还是 js 关键字,所以 js中: class => calssName,for => htmlFor

除此之外比较特殊的地方是 `data-*` 和 `aria-*` 两类属性是和 HTML 一致的。

6.显示文本

很多情况下,我们需要将JS中的文本直接显示,做法和显示变量属性一样,用花括号包裹:

一分钟看懂React的JSX语法(一分钟看懂React的JSX语法)(11)

7.运算

花括号里边除了变量以外,还可以是一段JS表达式,我们可以利用花括号做简单的运算:

一分钟看懂React的JSX语法(一分钟看懂React的JSX语法)(12)

8.注释

注释写法如下:

一分钟看懂React的JSX语法(一分钟看懂React的JSX语法)(13)

注意:在标签内部的注释需要写在花括中,在标签外的的注释不使用花括号

9.限制规则

render 方法返回的组件必须有且只有一个根组件,错误情况的例子如下:

一分钟看懂React的JSX语法(一分钟看懂React的JSX语法)(14)

10.组件命名空间

JSX 可以通过命名空间的方式使用组件。

通过命名空间的方式可以解决相同名称不同用途组件冲突的问题:

一分钟看懂React的JSX语法(一分钟看懂React的JSX语法)(15)

如有疑问欢迎评论、留言联系作者,关注本头条号将有精彩视频资料赠送,欢迎私信来取~

猜您喜欢: