2016-06-25 14 views
15

Czy naprawdę potrzebuję Babel lub innych transpilerów do korzystania z ES6 w React?Czy naprawdę potrzebuję Babel lub innych transpilerów do korzystania z ES6 z React?

Szukałem na wykresie https://kangax.github.io/compat-table/es6/

wydaje się moim obecnym przeglądarce Chrome (najnowsza wersja stabilna) obsługuje prawie wszystkie funkcje ES6 ...

Jeśli mogę użyć ES6 bez Babel, jak powinienem Zrób to?

+0

jeśli celujesz elektronem lub wyraźnie chromujesz; wtedy możesz pracować bezpośrednio z es6. Nadal będziesz potrzebował modułu ładującego moduły. –

+0

Najlepsze wytłumaczenie, dlaczego prawie wszyscy powinni zacząć od razu używać Babel: http://codemix.com/blog/why-babel-matters – odigity

+0

Jeśli kierujesz reklamy do nowoczesnych przeglądarek, technicznie potrzebujesz Babel do transpozycji JSX. Podczas gdy wielcy gracze zostali przyciśnięci, aby zapewnić kompatybilność wsteczną dla wielu przeglądarek, w zależności od grupy docelowej, możesz zaoszczędzić czas (i pieniądze) dewelopera i tylko program dla nowoczesnych przeglądarek. Natywne ES6 będzie szybsze niż kod transpiled. Informacje na temat korzystania z ES6 ... po prostu użyj go tak, jak przed transmilacją, – dprogramz

Odpowiedz

12

Jeśli chcesz:

  • użycie modules (z require() lub import ...)
  • użytku JSX
  • wsparcie wielu przeglądarek
  • korzystać z bardziej zaawansowanych funkcji (async/await), niektóre jeszcze w propozycje (decorators, class properties ..)

Musisz używać Babel, aby mieć pewność, że każdy będzie mógł uruchomić twój kod, inaczej będziesz mógł się rozwijać bez niego.

+0

dokładnie to, co się zastanawiałem! – user3463521

+2

Czy ES6 już nie obsługuje modułów (import)? – lonelyloner

+3

porównanie JSX z natywnymi funkcjami ES6 jest mylące. Jeśli twoja przeglądarka obsługuje ES6, może tworzyć moduły, wymagać, asynchronizować itp. Czuję, że twój anewser podaje informacje, że POTRZEBUJESZ transpilatora do korzystania z ES6 – dprogramz

3

Bez programu babel uzyskasz kompatybilność wykresu, z którym się łączyłeś. Ale pamiętaj, że jeśli chcesz korzystać z JSX, użyj babel, aby to przenieść.

+1

Istnieje wtyczka transform-react-jsx babel, która pozwala przekształcić tylko JSX (do React.createElement()) i zachować resztę kod nietknięty. To byłby sposób użycia ES6 z React w przeglądarce. Ale tak, to nadal babel plugin :) – Oleh

+0

to powinien być poprawny anwser. – dprogramz

8

Absolutnie można i nie używamy Babel ES6 W/O. Wszystkie główne przeglądarki obsługują większość funkcji natywnie (patrz CanIUse.com), w rzeczywistości jedyną ważną funkcją nieobsługiwaną jest import/eksport modułów.

Aby to zrobić, należy ręcznie importować moduły we właściwej kolejności, używając znaczników skryptów w kodzie HTML. Tylko po stronie klienta (Węzeł potrzebuje modułów).

Należy jednak pamiętać, że jest to w porządku dla programistów, ale w produkcji należy połączyć i zminimalizować wszystkie JS w jeden moduł, tak więc przy użyciu pakietu narzędzi Babel/Webpack lub Babel/Browserify może ostatecznie dojść do końca. w górę.

+1

co z ? Już go wypróbowałem i pozwala to na import/eksport w your.js i przeglądarek do modułów importu/eksportu. – Oleh

+1

Oczywiście od października 2017 r. Google i Firefox obsługują natywne używanie opartego na standardach "importu {moduleName} z pliku" filename.js "; składnia. Najpopularniejszą rzeczą w ECMAScript jest to, jak szybko ewoluuje. Podkładki i transpilatory są w wypożyczonym czasie - wyjątkiem jest generowanie gotowych aplikacji, które można rozmieszczać. –

Powiązane problemy