怎么理解: JSX 是在 JavaScript 内部实现的?

怎么理解:

JSX 是在 JavaScript 内部实现的.
阅读 1.8k
2 个回答

JSX就是用js重新编译解析了一遍而已.

对楼上的说法不敢苟同,因为使用构建工具的时候,模板语言(Vuetemplate部分)也是会编译成JS描述的AST,最终还是要用JS来解析的。要理解作者说这句话的含义,得看上下文。

题主引用的句子,完整版应该是百度百科:JSX 里面这一句:

……其格式比较像是模版语言,但事实上完全是在JavaScript内部实现的。

这句话前面提到了模板语言,极大概率指的是“其他框架”的template了,template的的特点在于其本身与JS形式上是各自独立的两部分。
前半句话说完,笔锋一转,来了个“但事实上”,说明他要开始讲JSX不同于template的地方了。
JSX与template不一样的地方在于: JSX的XML部分与JS部分可以写在同一上下文,而不是分为两部分,这应该就是所谓的“完全是在JavaScript内部”。
但是这里的说法总感觉怪怪的,可以看一下React官方文档里的描述:

JSX 可能会使人联想到模板语言,但实际上它具有 JavaScript 的全部功能。

也就是告诉你:在JSX里面你完全可以写JS,然后需要描述UI的地方写XML就行。
所以你纠结的这一点,可能是某个译者表达不到位而已。在遇到此类问题的时候,可以参考官方文档,不必去抠那一两个字眼,因为有些作者的表达方式可能产生迷惑性。
这里貌似已经不是 React 文档第一次暗戳戳地拿 React 跟“其他框架”作比较了,我记得在某个版本的文档里,React 为了强调自己是个库而不是框架,就差把 Vue 的大名挂出来了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题