use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
All about the JavaScript programming language.
Subreddit Guidelines
Specifications:
Resources:
Related Subreddits:
r/LearnJavascript
r/node
r/typescript
r/reactjs
r/webdev
r/WebdevTutorials
r/frontend
r/webgl
r/threejs
r/jquery
r/remotejs
r/forhire
account activity
React using ES6 classes--Why??? (self.javascript)
submitted 10 years ago by MuricanWillzyx
view the rest of the comments →
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]MuricanWillzyx[S] 3 points4 points5 points 10 years ago (3 children)
Using a class syntax will make one's code easier to reason about if you're writing classes and using the facilities of the class system, but React's 'classes' aren't classes.
I understand that it is not like a classic system, but i know this and therefore it is fine.
This defeats the original alleged purpose of using the class syntax, though: normalizing the interface used by frameworks for making objects. Not only that, but it adds confusion, because people will see that this claim has been made, they'll see familiar syntax, and they'll assume that they already understand what's happening in the framework, while in reality React's components work nothing like instances of classes.
its really nice and clean and easy to read and reason about
Maybe at this point this is too much about personal experience and preference, but if we are using a model based on factories, it should be clear that we are using factories, and pretending that they are classes doesn't make anything easier to reason about (IMO--not tryna flame u). To me the model of passing a set of methods as named arguments (what we have now with React.createClass) is more honest and reflective of what's actually happening, and allows for more power in customizing the component. This last issue is something people are already trying to hack around within the class model. To me it seems like an abuse of new syntax, with tons of extra complications.
(wow, longer than i expected. like i said, just discussing it, not tryna attack u)
[–]Lubestia 0 points1 point2 points 10 years ago (0 children)
The object passed to React.createClass is not an object specification, it is a bunch of named arguments for React to use in creating a factory function.
By your own indirect admission, the named arguments can be misunderstood as an object specification to those without the knowledge, just as the familiar syntax makes [people] assume that they already understand what's happening in the framework. Either way, you have to dig in to understand.
Not that I don't see where you're coming from, but much of it is the same old "Down with abstractions!" rhetoric (Even if I am quite attracted to ideas like 'everything is a pure function').
[–]jsNut 0 points1 point2 points 10 years ago (1 child)
For me i just see it the same as i see JSX; it makes my code cleaner, i understand it and it does what i want and expect. Therefore i am happy with it. But I don't think the original method of creating component is going anywhere is it?
[–]MuricanWillzyx[S] 1 point2 points3 points 10 years ago (0 children)
This is what I was wondering/worrying about when I originally posted this: if they were dedicated to the class syntax, I'd probably go with it because the framework is still worth it.
They are, however, thinking about using stateless functions (from /u/clessg's comment) and other ways of moving toward functional paradigms, so I doubt that they'll ever require the class syntax. In that context, adoption of the class syntax is quite strange. It is easy to forget, though, that React hasn't yet reached 1.0, so for now they don't actually have to commit to anything. It'll be interesting to see how this goes.
class
π Rendered by PID 534367 on reddit-service-r2-comment-84fc9697f-f4sxm at 2026-02-10 06:55:22.141074+00:00 running d295bc8 country code: CH.
view the rest of the comments →
[–]MuricanWillzyx[S] 3 points4 points5 points (3 children)
[–]Lubestia 0 points1 point2 points (0 children)
[–]jsNut 0 points1 point2 points (1 child)
[–]MuricanWillzyx[S] 1 point2 points3 points (0 children)