2017-08-16 202 views
1

立足這個問題上this TypeScript official documentationJSX模式應該反應還是反應原生?

反應模式將發出React.createElement,不使用前需要去 通過JSX改造,輸出會有一個 .js文件擴展名。

反應本地模式是 相當於保留,因爲它使所有JSX,但輸出,而不是有一個 .js文件擴展名。

但是,所有我見過的教程有它的反應模式:

"jsx": "react" 

雖然這完美的作品,我甚至不看到一個警告,我想了解如何/爲什麼React Native編譯TSX並且能夠毫無問題地加載它們。

基本上是:

  1. 爲什麼開創了react-native模式,如果REACT本地支持react模式?
  2. 會有任何性能的原因使用一個在另一個?

回答

4

反應過來之前母語來了,世界是非常乾淨的:

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

當打字稿看到.tsx文件,它可以決定是否要發出.jsx文件(jsx: preserve下)或.js文件(下jsx: react)。不可能在其中發佈帶有JSX語法的.js文件(因爲JSX不是合法的JavaScript語法)。

然後React Native說「我們將在.js文件中使用JSX語法!」,這很奇怪,因爲它是非法的,但無論如何。因此,如果您在TypeScript中編寫React Native代碼,您有時希望TS採取.tsx輸入文件並生成.js文件,這些文件仍然具有JSX語法。因此JSX模式react-native誕生了。

+0

愛上JavaScript意大利麪世界(來自C#)......雖然這確實回答了第一個問題,但是你能解釋在react-native中使用'react'模式是否會有任何性能問題嗎? –