咋理解 \"JSX 表达式总是会当作 ReactElement 执行\" ?
意思就是,不管JSX怎么写,最后都是转化为React.createElement这样的表达式,产生的是一个对象。
比如JSX这么写\u0026lt;div\u0026gt;Hello world \u0026lt;span\u0026gt;React User\u0026lt;/span\u0026gt;\u0026lt;/div\u0026gt;最后实际产生的JavaScript是这样。React.createElement( "div", null, "Hello world ", React.createElement( "span", null, "React User" ));你看,是嵌套的React.createElement调用,所以啊,在JSX中不能写for或者while这样的语句,因为for/while没法插入到单纯的表达式中,只能用map产生数组。
■网友
翻译有点晕,不如看原文Note:
The JSX expression always evaluates to a ReactElement. The actual implementation details may vary. An optimized mode could inline the ReactElement as an object literal to bypass the validation code in React.createElement.
【咋理解 \"JSX 表达式总是会当作 ReactElement 执行\" ?】 这里描述的就很简单一个事实,jsx 会被转换成 React.createElement() 调用,而这个函数调用返回的是 js plain object,那么可以用 object literal 来代替函数调用来达到性能优化的目的。
具体见我的另一个答案。
https://www.zhihu.com/question/41900814/answer/92775518
■网友
JSX在react中,就是React.createElement这个API的语法糖。开发阶段,js中的JSX本质上是无法被识别执行的,是为了优化在js中编写类似html的模板代码而创造的一种DSL。最终被执行的react代码实际上是经过webpack之类的打包工具经过一系列工具转义后的js,css和html。其中就有负责转义JSX的工具。而在React中,JSX部分的代码就会被转义为一些列的React.createElement...,而这个API最终返回的就是ReactElement。所以,对于React而言,JSX表达式总是会当做ReactElement执行,JSX就是React.createElement的语法糖
推荐阅读
- 学图像处理有哪些不错的书推荐
- 应该怎样理解会员服务的法律性质
- 读书读到3分之一的时候感觉很难理解,要不要继续
- 怎样简洁到位地让外国人理解中文互联网文化中的「屌丝」、「喷子」、「五毛」、「水军」、「公知」等词
- ActiveMQ、MQTT的方式进行Android消息推送,我的理解是否正确
- 讲座|启东系统培训帮助老师和家长更好理解孩子
- 设计师应该咋快速理解程序,我很想学好程序,但没咋理解程序是咋实现的,大部分教程都是教写的过程
- 复习|七年级英语期末阅读理解专项复习5篇及答案解析
- 图像的傅里叶变换的理解问题
- 白夜追凶2|《白夜追凶》或没有第二部,导演透露不打算再拍了,网友:理解
