这些 Microsoft 文档在 JS 文件中包含 JSX 是不是错误?

Posted

技术标签:

【中文标题】这些 Microsoft 文档在 JS 文件中包含 JSX 是不是错误?【英文标题】:Are these Microsoft docs wrong for having JSX in a JS file?这些 Microsoft 文档在 JS 文件中包含 JSX 是否错误? 【发布时间】:2021-08-30 00:19:47 【问题描述】:

在下面的Microsoft doc(以及许多其他)中,他们将有一个明确称为App.js 的文件,但随后的代码如下:

    return (
    <>
        <h5 className="card-title">Welcome name</h5>
        accessToken ? 
            <p>Access Token Acquired!</p>
            :
            <Button variant="secondary" onClick=RequestAccessToken>Request Access Token</Button>
        
    </>
);

这不是JSX吗?我注意到这已经做了很多,它开始让我对 JS 和 JSX 有何不同感到困惑。

【问题讨论】:

这能回答你的问题吗? ReactJS - .JS vs .JSX @MattU 谢谢,但我之前读过,不,它没有回答我的问题。那里的最佳答案指出“任何不是“普通” javascript 的东西都应该进入它自己的扩展中”。 &lt;h5 绝对不是普通的 JS,但根据微软的说法,它应该放在一个 JS 文件中。 它说“有人可以争论”这一点,答案并没有说明这一点。该答案的关键实际上是“您的捆绑器/转译器/负责解决存在什么类型的文件内容的任何东西。” 您是在问 JS 和 JSX 在概念上有何不同,还是仅仅是文件扩展名?扩展只是方便。 【参考方案1】:

这里的 AirBNB 仓库中有一个关于 JSX vs JS 的很好的讨论:https://github.com/airbnb/javascript/pull/985

本质上,尤其是在较大的 React 项目中,区分 .jsx 文件和 .js 文件可以归结为识别什么用作 React 组件,什么可能只是普通的 Javascript 逻辑。当涉及到读取 .jsx 和 .js 文件时,您无需担心扩展名是 .jsx 还是 .js - 它会正常运行。

所以从技术上讲,扩展名应该是.jsx,但最终没关系。

【讨论】:

以上是关于这些 Microsoft 文档在 JS 文件中包含 JSX 是不是错误?的主要内容,如果未能解决你的问题,请参考以下文章

如何从js文件中包含qml文件

在 HTML 文档中包含不同的字体

在 vue cli3 项目中包含我自己的 js 和 css 文件

如何在 Cordova / Phonegap 的远程 html 文件中包含本地脚本?

如何在 Typescript 1.8 中包含无类型节点模块?

如何在 vuejs 组件中包含 js 文件?