web-dev-qa-db-fra.com

Pourquoi React nécessite-t-il que Babel et Webpack fonctionnent?

Je regardais la page wiki de vue.js et j'ai vu ceci:

Par rapport à React development, Vue peut être intégré à une application Web existante beaucoup plus facilement. Normalement, une application Web peut commencer à utiliser Vue immédiatement en incluant simplement la bibliothèque JavaScript Vue.js. L'utilisation avec Webpack ou Browserify, n'est pas strictement nécessaire. Ceci est en contraste frappant avec React développement où Utilisation avec Webpack et Babel est inévitable, ce qui rend la conversion des applications Web existantes beaucoup plus difficile.

Quelqu'un peut-il expliquer pourquoi React a besoin de webpack et de babel? Je pensais que vous pouvez simplement déposer le lien vers le CDN de React et cela fonctionnera?

15
stackjlei

Non, Babel et Webpack ne sont pas nécessaires pour la pile React. Vous pouvez toujours trouver d'autres alternatives pour créer votre pile préférée telles que Browserify et Gulp.

Cependant, si vous voulez rendre les choses plus faciles, je vous recommande d'apprendre et d'utiliser Babel et Webpack avec React parce que:

  • Vous pouvez utiliser des modules.
  • Vous pouvez utiliser JSX avec ES6.
  • Il prend en charge de nombreux navigateurs
  • Vous pouvez utiliser des fonctionnalités plus avancées (asynchrone/attendre), etc.

Avec webpack

  • Vous pouvez utiliser différents chargeurs pour sass, less, postcss, etc.
  • Vous pouvez utiliser différents plugins pour optimiser votre build tels que Uglify, HotModuleReplacement, Chunks etc.

Il y a beaucoup plus d'avantages à utiliser webpack que vous pouvez trouver ici

17
MattYao

Quelqu'un peut-il expliquer pourquoi React a besoin de webpack et de babel? Je pensais que vous pouvez simplement déposer le lien vers le CDN de React et cela fonctionnera?

React n'a pas "besoin" de babel ou de webpack mais la bibliothèque est construite sur le concept d'utilisation de la syntaxe javascript ES6 et de JSX (essentiellement HTML en JS).

React peut cependant être utilisé sans ES6 et JSX ce qui supprimerait le besoin initial de Babel mais vous perdriez les avantages potentiels d'ES6 et JSX.

Webpack est distinct de React mais couramment utilisé dans les projets React pour les raisons MattYao mentionnées).

Par rapport à Vue, JSX m'apporte les avantages de contenir html, css et JS dans un fichier/composant, ce que les composants de fichier unique dans Vue tentent également de réaliser. Ceux-ci nécessiteraient également un étape de construction en utilisant également quelque chose comme webpack.

5
Daniel