2016-06-25 76 views
15

Ho davvero bisogno che Babel o altri transporter utilizzino ES6 in React?Ho davvero bisogno che Babel o altri transporter utilizzino ES6 con React?

stavo guardando il grafico https://kangax.github.io/compat-table/es6/

Sembra come il mio attuale browser Chrome (ultima versione stabile) supporta quasi tutte le caratteristiche ES6 ...

Se posso usare ES6 senza Babel, come devo fallo?

+0

se si target electron o esplicitamente chrome; allora puoi lavorare direttamente con es6. Avrai comunque bisogno di un caricatore di moduli. –

+0

La spiegazione migliore che ho visto del motivo per cui praticamente tutti dovrebbero iniziare a utilizzare Babel per tutto immediatamente: http://codemix.com/blog/why-babel-matters – odigity

+0

Se si stanno prendendo di mira i browser moderni con la reazione, tecnicamente è sufficiente babele per traspare JSX. Mentre i grandi giocatori si prestano a garantire la retrocompatibilità per molti browser, a seconda del pubblico di destinazione, è possibile risparmiare tempo (e denaro) e solo programmi per i browser moderni. Native ES6 sarà più veloce del codice transpiled. Come usare ES6 ... basta usarlo come si farebbe prima del transpiled, – dprogramz

risposta

12

Se si desidera:

Devi usare Babel per essere sicuro che tutti saranno in grado di eseguire il tuo codice, altrimenti puoi svilupparlo senza di esso.

+0

esattamente quello che stavo chiedendo! – user3463521

+2

Non supporta già i moduli di supporto ES6 (importazione)? – lonelyloner

+3

confrontando JSX con le caratteristiche native di ES6 è fuorviante. Se il tuo browser supporta ES6, può fare moduli, richiedere, asincroni, ecc. Mi sento come se il tuo anser si stesse nutrendo della disinformazione che hai bisogno di un transpiler per usare ES6 – dprogramz

3

Senza babele si ottiene la compatibilità del grafico a cui si è collegati. Ma tieni presente che se vuoi usare JSX, dovrai usare babel per trascriverlo.

+1

C'è il plugin babel transform-react-jsx che consente di trasformare solo JSX (in React.createElement()) e mantenere il resto di codice intatto. Questo sarebbe il modo di usare ES6 con React nel browser. Ma sì, il suo plug-in ancora babel :) – Oleh

+0

questo dovrebbe essere il corretto anwser. – dprogramz

8

Assolutamente possibile e utilizzare ES6 W/O babele. Tutti i principali browser supportano la maggior parte delle funzionalità in modo nativo (vedi CanIUse.com), infatti l'unica funzionalità principale non supportata è l'importazione/esportazione di moduli.

Per questi è ancora necessario importare manualmente i moduli nell'ordine corretto utilizzando i tag di script nell'HTML. Solo lato client (il nodo ha bisogno dei moduli).

Tuttavia, si tenga presente che questo va bene per dev ma in produzione è necessario concatenare e minimizzare tutto il JS in un modulo comunque, quindi usare un Babel/Webpack o uno stile Babel/Browserify può essere in ultima analisi dove si finisce su.

+1

che dire di ? L'ho già provato e consente di utilizzare import/export in your.js e i browser eseguono i moduli di importazione/esportazione. – Oleh

+1

Assolutamente, a partire da ottobre 2017 Google e Firefox supportano l'uso nativo degli standard basati 'import {moduleName} da' filename.js ';' sintassi. La cosa bella con ECMAScript in questo momento è quanto velocemente evolve. Shims e transpilers sono in prestito in prestito - a parte la generazione di app distribuibili finali. –