React Components mit .jsx oder .js endung?
Ich sehe bei manchen die Endung für JSX anstatt .'js'
aber ändert das überhaupt was ? Oder ist das nur Schönheit.
2. Frage)
Kann ich irgendwie konfigurieren was genau mit
npx create-react-app
alles erstellt werden soll ?
Denn App.js App.css und App.test.js Stören mich und sie zu löschen ist auch aufwendig. Lieber eine Leere Seite von anfang an statt dem drehenden React Logo.
ich hätte gerne schon unterordner unter 'src' wie zb img, audio, style,components,video usw.
2 Antworten
Du kannst den Dateinamen auch mit ".pdf" oder ".mp3" enden wenn du willst, das ist dem Bundler / Transpiler völlig schnuppe (sofern er entsprechend konfiguriert ist). Ein anderer Entwickler, der sich den Code dann vielleicht mal anschaut, wird dann nur keine Ahnung haben, was das für eine Datei sein soll und wozu sie gut ist. Genau deshalb gibt es in der Softwareentwicklungen Konventionen. Dinge, die du zwar nicht tun musst, damit dein Programm funktioniert, aber tun solltest, damit andere Entwickler (und auch du, wenn du den Code Monate später wieder vor dir hast) deinen Code besser verstehen und er einem gewissen Schema folgt. Die Dateiendung .jsx bzw. .tsx bei TypeScript ist so eine Konvention. Musst du nicht, ist aber gute Sitte. Da JSX (das "HTML"-Markup in React-Code) kein normales JavaScript ist, macht es Sinn, einer Datei, die dieses enthält, auch eine andere Dateiendung zu geben.
create-react-app musst du nicht verwenden. Du kannst einen leeren Ordner erstellen, "npm init" ausführen, und die benötigten Packages wie React selbst, aber auch Babel, Webpack usw. mit einem Package Manager (NPM / Yarn) selbst installieren und konfigurieren. Siehe hier.
Ist aber, v.a. wenn du noch nicht so viel Erfahrung hast, 1000x mehr Aufwand, als create-react-app und die entsprechenden Dateien, die du nicht benötigst, raus zu werfen.
Ansonsten gibt es für create-react-app auch diverse Templates.
.js = dort kommt nur Logik rein, keine HTML Syntax
.jsx = React Files, dort kannst du z.B. <h1>Hallo</h1> schreiben, zwar auch mit Logik (JS)