3 ms·
This is such a poorly done react app, you can not take this as the current state of react. If you've never seen a mature react app, and have at best checked ou
by mcondit 9y ago
This is such a poorly done react app, you can not take this as the current state of react. If you've never seen a mature react app, and have at best checked out a few blogs that try to compare it to other frameworks, then you have not been exposed to nearly enough to make a real decision and are throwing around empty opinions.
- Mc_Big_G 9y agoI'll admit mostly ignorance since I've only done a Udemy react course and read some blogs. However, I've never seen it done any other way. Isn't JSX an integral part of React?
- acemarke 9y agoI wrote an extended answer to this on Reddit a few weeks ago [0]. I'll paste it here for ease of reading: JSX is not required. Literally, all you need is to include script tags for `react.js` and `react-dom.js`, and then you write "raw" `React.createElement()` calls. However, most people find that to be too repetitive. So, the "default" approach is to use JSX syntax, which converts `<MyComponent a={1} b="blah">Text</MyComponent>` into `React.createElement(MyComponent, {a : 1, b : "blah"}, "Text")`. Yes, JSX requires a transformation/compiler step. As I said earlier, a typical "real" app needs build tools to bundle anyway, and you're probably targeting a variety of browsers but don't want to restrict yourself to the least common denominator subset of JS syntax, so you're probably already using a transpiler too. But, if you truly don't want to use JSX for whatever reason, there's plenty of choices: - Write raw `React.createElement()` calls by hand - Alias `React.createElement()` as `h()` so it's shorter - Use a functional VDOM wrapper generation library like `react-hyperscript-helpers` (https://github.com/Jador/react-hyperscript-helpers/ https://github.com/Jador/react-hyperscript-helpers/). - Use a runtime JS templating library like Dominic Gannaway's `t7` templates(https://github.com/trueadm/t7 https://github.com/trueadm/t7) - Use an actual separate templating library, like `react-templates`(https://github.com/wix/react-templates https://github.com/wix/react-templates) or `handlebars-react`(https://github.com/stevenvachon/handlebars-react https://github.com/stevenvachon/handlebars-react) Almost everyone chooses to use JSX. The docs use JSX. Tutorials across the internet use JSX. It's the accepted approach. But, it's not _required_. You do not _need_ it. There are other options. It's your choice. [0] https://www.reddit.com/r/javascript/comments/81fkhi/this_maybe_a_dumb_question_but_do_you_really_need/dv3dazy/?context=3 https://www.reddit.com/r/javascript/comments/81fkhi/this_may...