JSX代表什么?
我指的是JSX,它被定义为ECMAScript的类似于XML的语法扩展,随着ReactJS的日益流行,它已变得非常流行。
JSX代表 _ Ĵ AVA 小号 CRIPT X ML_。使用React,它是元素和组件的类似XML的代码的扩展。根据React文档,正如您提到的:
JSX是ECMAScript的类似于XML的语法扩展,没有任何定义的语义
从上面的引用中,您可以看到JSX没有定义的语义,它只是对JavaScript的扩展,可以简化和优雅地编写类似XML的代码,然后将JSX转换为带有的纯JavaScript函数调用React.createElement。根据React教程:
React.createElement
JSX是将XML语法添加到JavaScript的预处理步骤。您可以在没有JSX的情况下使用React,但是JSX使React更加优雅。 就像XML一样,JSX标记具有标记名称,属性和子代。如果属性值用引号引起来,则该值为字符串。否则,将值括在大括号中,并且该值是随附的JavaScript表达式。
JSX是将XML语法添加到JavaScript的预处理步骤。您可以在没有JSX的情况下使用React,但是JSX使React更加优雅。
就像XML一样,JSX标记具有标记名称,属性和子代。如果属性值用引号引起来,则该值为字符串。否则,将值括在大括号中,并且该值是随附的JavaScript表达式。
JSX中的任何代码都将转换为纯JavaScript / ECMAScript。考虑一个名为的组件Login。现在我们用JSX渲染它:
Login
<Login foo={...} bar={...} />
如您所见,JSX仅允许您使用类似于XML的标记语法,以表示React中的组件和元素。它被转换为纯JavaScript:
React.createElement(Login, { foo: ..., bar: ... });
您可以在docs上阅读更多内容。