În caz că mai sunt utilizatori de React cu JSX pe aici care urăsc ciorba de JavaScript cu XML…
Am publicat pe Github & npm un loader pentru Webpack care permite separarea logicii unei componente de template-ul ei.
Am pus pe Github în README detalii despre cum se instalează, configurează și folosește. În mare, ideea este următoarea:
Se creează un fișier MyComponent.jsx ce exportă o clasă care extinde o componentă React, ca de obicei
Se creează un fișier MyComponent.tpl.jsx ce conține blocul JSX care ar fi fost în mod normal în metoda render()
În fișierul cu clasa se face var view = require('./MyComponent.tpl.jsx') iar apoi, în metoda render() se face return view(this); în loc de vechiul și odiosul return (<spaghetti><code>Tra la la</code></spaghetti>);
Îmi pare rău, dar aș face așa ceva doar dac-aș fi amenințat cu moartea.
Să ne-nțelegem: detest React. Nu filozofia din spatele lui, doar implementarea. Din păcate, și-a luat atât de mult avânt încât cred că, inevitabil, mă voi lovi de el la un moment dat. Singurul lucru care-l face digerabil pentru mine este JSX . Din păcate, modul în care este folosit (și prezentat prin tutoriale) în prezent este la fel de înapoiat (ca să fiu blând) precum PHP-ul pe care-l vedeam la începători cu ceva ani buni în urmă, când deschideai un fișier și vedeai ceva cod PHP, apoi niște HTML, apoi un query MySQL, poate un pic de HTML construit din string-uri și afișat cu echo…
Nu, mulțumesc!
Orice ar spune unii, React are o problemă imensă cu Separation of Concerns. Degeaba se eschivează și bagă encapsulation în față, nu e așa… Una e descrierea a ce face o componentă (clasa din spate) și alta e descrierea modului în care este afișată (JSX-ul sau codul din exemplul tău).
În fine, răspunsul la întrebarea ta este că aș alege oricând JSX/XML/HTML pentru a descrie o interfață decât o serie de apeluri de funcții…