3 ms·
It's not the exact same thing at all though. Declarative versus imperative. I'm sure someone's going to hem and haw about how they're the "effectively" the same
by seattle_spring 9y ago
It's not the exact same thing at all though. Declarative versus imperative. I'm sure someone's going to hem and haw about how they're the "effectively" the same, but they're really not. JSX is a breath of fresh air for front end development.
- kabes 9y agoStraight from the react docs [1]: if (isLoggedIn) { return <UserGreeting />; } How is that different? [1] https://reactjs.org/docs/conditional-rendering.html https://reactjs.org/docs/conditional-rendering.html
- deleted 9y ago[deleted]
- winterbe 9y agoThe difference is that the JSX snippet is translated in plain JavaScript which means you can automatically check for syntax errors, type errors (when using TypeScript or Flow) and semantical errors (by writing simple unit tests), whereas the PHP snippet is just a big mess. JSX also runs on clients, servers and mobile devices which is a big plus to me. This is fine: <?php if (condition) { ?> <div>whatever</div> <?php { ?> this not: if (isLoggedIn) { return <UserGreeting />; {
- dmitriid 9y agoDid you read what I wrote? https://news.ycombinator.com/item?id=16918654 https://news.ycombinator.com/item?id=16918654
- tootie 9y agoThis is the official example of using context from the react doc function ThemedButton(props) { return ( <ThemeContext.Consumer> {theme => ( <button {...props} style=. {{backgroundColor: theme.background}} /> )} </ThemeContext.Consumer> ); } I've been writing JavaScript for 15 years and this looks like gibberish to me. There's at least 3 context switches between JavaScript, JSX and CSS. We're abandoning separation of concerns and creating a monstrosity of programming by punctuation.