2 ms·
> React doesn't tell you how to structure your project, manage its backend communication, handle application state, routing, etc. React is just...not a framewor
by Tade0 3y ago
> React doesn't tell you how to structure your project, manage its backend communication, handle application state, routing, etc. React is just...not a framework.
Technically it doesn't, but the conventions that grew around it and the availability of learning material effectively produced same default choices, making it a framework via convention.
And I see it as a good thing, because having several competing router implementations is an unnecessary headache.
The React crowd would do good to stop being in denial about this.
- throwaway290 3y agoReact is not a web framework... You think of things like Next or Remix, those are. There's no inversion of control, it's not a framework. Words mean things
- spankalee 3y agoReact is a framework. There is inversion of control: React calls into component to make them go, not the other way around like a normal dependency.
- throwaway290 3y agoHave you used React? It doesn't do that stuff for you. You need to call another lib (react-dom) to make it happen. If you are not aware about it perhaps you've used a framework or template not react itself :)
- iamcreasy 3y agoDistinction between library and framework has nothing to do with how much stuff they do. The difference is - as the parent comment said - inversion of control. Can you create React component and take full control of component lifecycle outside of React rendering loop? - if yes, then you can call it a library. I think React doc, by calling Next a framework, is referring to a set of practices and protocols. But different usage of same nomenclature in the same discipline is very common.
- throwaway290 3y ago> Can you create React component and take full control of component lifecycle outside of React rendering loop? Yes? If you create a React component, it does nothing. You define the lifecycle when you call ReactDOM. But you don't need to call ReactDOM. Call whatever you want.