【问题标题】:Should JSX mode be react or react-native?JSX 模式应该是 react 还是 react-native?
【发布时间】:2018-01-25 04:35:57
【问题描述】:

这个问题基于this TypeScript official documentation

react模式会发出React.createElement,不需要去 在使用前通过 JSX 转换,输出会有一个 .js 文件扩展名。

react-native 模式相当于 保留,因为它保留所有 JSX,但输出将有一个 .js 文件扩展名。

但是,我看过的所有教程都有反应模式:

"jsx": "react"

虽然这可以完美运行,我什至没有看到警告,但我想了解 React Native 如何/为什么编译 TSX 并能够毫无问题地加载它们。

基本上:

  1. 当 React Native 支持 react 模式时,为什么要创建 react-native 模式?
  2. 是否有任何性能原因使用其中一种?

【问题讨论】:

    标签: typescript react-native


    【解决方案1】:

    在 React Native 出现之前,世界是美好而干净的:

    | File Extension |  Has JSX Syntax  |  Has Type Annotations  |
    --------------------------------------------------------------
    |   .tsx         |       Yes        |          Yes           |
    |   .ts          |       No         |          Yes           |
    |   .jsx         |       Yes        |          No            |
    |   .js          |       No         |          No            |
    

    当 TypeScript 看到.tsx 文件时,它可以决定是发出.jsx 文件(在jsx: preserve 下)还是.js 文件(在jsx: react 下)。不可能发出带有 JSX 语法的 .js 文件(因为 JSX 不是合法的 JavaScript 语法)。

    然后 React Native 说“我们将在 .js 文件中使用 JSX 语法!”,这很奇怪,因为它是非法的,但无论如何。因此,如果您在 TypeScript 中编写 React Native 代码,有时您希望 TS 获取 .tsx 输入文件并生成其中仍然具有 JSX 语法的 .js 文件。于是 JSX 模式react-native 诞生了。

    【讨论】:

    • 一定会喜欢 JavaScript 意大利面条世界(来自 c#)...虽然这确实回答了第一个问题,但您能否解释在 react-native 中使用 react 模式是否会对性能造成任何影响? ?
    猜你喜欢
    • 1970-01-01
    • 2021-04-10
    • 2018-03-19
    • 1970-01-01
    • 2019-10-09
    • 2016-09-12
    • 1970-01-01
    • 2020-11-05
    • 2021-07-19
    相关资源
    最近更新 更多