当前位置: 首页 > 知识库问答 >
问题:

这种奇怪的JavaScript语法似乎将HTML标记与JavaScript混合在一起,这是什么?

陶星渊
2023-03-14

我已经看到了一个有趣的javascript代码和平,但不明白这意味着什么,以及为什么当我试图在控制台中测试它时,它会返回一个错误。

下面是一个代码示例:

const Component = ({name}) => (<div>Hello {name}</div>)

它是符合ES6还是什么?

PS:我想我可以用这种方式在渲染函数中使用它:

<Component name={'John'} />

对吧?

共有3个答案

戚俊美
2023-03-14

这不是普通的javascript。这是JSX代码,它是特定于ReactJS框架的。通常这个代码是在一个扩展名为. jsx的文件中找到的。如果你设置了一个ReactJS开发环境,这个代码将从JSX编译(或转置)到普通的javascript。

ReactJS. org建议您使用Babel编译器,但是请注意,仅仅编译代码片段在完整的反应设置之外是行不通的。

戚建德
2023-03-14

不能在浏览器控制台中测试JSX语法。

JSX只是为React提供语法上的支持。createElement(component,props,…children)函数,因此编译器(我认为您的例子是Babel)将jsx转换为JS代码(请看这里)--

龙繁
2023-03-14

就像Vladu Ionut指出的-

不管怎样,你的问题是:const是ES6https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/const

(foo)=

({name})=

正如Vladu Ionut再次正确指出的,这不能直接用在你的浏览器中,因为你的浏览器可能不支持它,这就是为什么你必须先用Babel等工具来传输它https://babeljs.io

 类似资料:
  • 问题内容: 我正在使用Python 3.6.1,但遇到了一些非常奇怪的事情。我有一个简单的字典作业错字,花了很长时间才找到。 输出量 代码在做什么?IMO应该什么时候都没有提出。起初,我认为它正在创建一个切片。但是,键入会引发一个。我也输入了控制台,但控制台没有打印任何内容。我以为也许它回来了,但是我不太确定。 我还认为这可能是单行if语句,但这也不应该是正确的语法。 此外,应提出一个。 我很困惑

  • 问题内容: 当您将JavaScript代码包装在这样的函数中时: 我注意到,这为许多网页上的我解决了范围界定问题。这种做法叫什么? 问题答案: 该模式称为 自我调用 ( self-invocation) ,一种 自我调用功能 。它可以创建一个闭包,但这是模式的效果(也许是预期的效果),而不是模式本身。

  • 问题内容: 据说Javascript的主要优点之一是它是一种基于原型的语言。 但是,Javascript是基于原型的,这意味着什么?为什么这是优点? 问题答案: 原型继承 是一种面向对象的 代码重用形式 。Javascript是使用原型继承的仅有的[主流]面向对象语言之一。几乎所有其他面向对象的语言都是经典的。 在 经典继承中 ,程序员编写一个类,该类定义一个对象。可以从同一类中实例化多个对象,因

  • 我正在学习JavaScript及其库jQuery。我不知道为什么允许这种类型的声明(snake.x)而没有“let”或任何东西。这是我的代码

  • 问题内容: 我有这段代码: 如您所见,我仅在columnRendered为true时才渲染该outputPanel。 好吧,在某些情况下(仅用于测试以批准其应做的事情): 为true,因此应在c:if中输入,并将columnRendered切换为false。但是事实并非如此,因此columnRendered永远是正确的… 你知道为什么吗? 问题答案: JSF和JSTL不会像您期望的那样同步运行。J

  • 问题内容: 我在es-discuss邮件列表中遇到了以下代码: 这产生 为什么这是代码的结果?这里发生了什么事? 问题答案: 了解此“ hack”需要了解几件事: 为什么我们不只是做 如何处理论点 如何处理多个参数 函数如何处理参数 是什么呢 它们是javascript中相当高级的主题,因此它的时间要长得多。我们将从顶部开始。系好安全带! 1.为什么不只是? 什么是数组,真的吗?包含整数键的常规对