Javascript 为什么';字符串道具在JSX元素中是否需要大括号?

Javascript 为什么';字符串道具在JSX元素中是否需要大括号?,javascript,reactjs,jsx,react-props,Javascript,Reactjs,Jsx,React Props,在JSX元素中,例如 <User name="Dave" age={34} /> 我试图理解为什么字符串只能被引用,而其他类型,例如数字或布尔值,必须用大括号括起来。我读过其他几篇文章,我知道花括号计算一个表达式,然后作为道具传递-但我找不到字符串不必在花括号内的具体原因 我应该仅仅接受它的工作方式,还是有更深层次的理由去理解它?很难说清楚为什么有些代码会以一种特殊的方式出现,特别是对于一个有这么多贡献者的大型项目,但也许我们可以做出一个很好的猜测 2017

在JSX元素中,例如

<User name="Dave" age={34} />

我试图理解为什么字符串只能被引用,而其他类型,例如数字或布尔值,必须用大括号括起来。我读过其他几篇文章,我知道花括号计算一个表达式,然后作为道具传递-但我找不到字符串不必在花括号内的具体原因

我应该仅仅接受它的工作方式,还是有更深层次的理由去理解它?

很难说清楚为什么有些代码会以一种特殊的方式出现,特别是对于一个有这么多贡献者的大型项目,但也许我们可以做出一个很好的猜测

2017年,ReactJS和JSX的创始人Jordan Walke被问到“你是如何想出React的想法的?”他的回答涵盖了许多要点,但仅简要列出了他对ReactJS的实际灵感

*“我们自然希望将UI部署到web浏览器上,而当时,编译到JS的环境还没有现在那么成熟——我甚至认为源地图还不存在

最后回答你的问题:是的,React的灵感来自于许多其他技术,包括我们当时使用的其他UI框架。最重要的是,React的灵感来自ML语言家族(包括SML/OCaml),它帮助我阐明了不变性的价值(并非双关语)。(来源:。]


在ReactJS中,
{}
花括号表示表达式,
引号表示字符串文字(来源:。但为什么两者都是?可能是为了使其具有通用的底层结构(HTML、XML)的灵活性)这被各种JavaScript UI框架所使用,它们通常以
的形式使用属性。但我只是在有限的信息下进行猜测。

你可以用大括号括起字符串:
。因为JSX就是这样定义的。
变成
随便什么(用户,{name:“Dave”,年龄:34})
-作为道具的值([X/HT]ML属性)字符串很常见,为什么总是需要大括号和引号呢?这是JSX的语法。请注意,你也可以做
@norbitrial谢谢,我知道你也可以把字符串放在大括号里,只是想知道为什么不需要大括号和引号。@jornsharpe很公平,只是想知道这是不是有更深层次的原因在接受之前,我想,最常见的字符串似乎是有意义的。