- You can mix js and 'html' in one component
- The unidirectional 'flow' of state
- The internal model / diffing so only components that changed would update the dom
It's a mix of a library (the 'html' elements) and an architecture pattern (unidirectional flow) imo.
I'd expect a UI library to be things like buttons, windows, UI components, etc.
The main differentiator between the two is Inversion of Control.
React developers write their code to be called by the React application. You aren't choosing to include React or not (what you would do with a library), your whole frontend application is built within the context of the React environment in which it will run.
"i like to think of React as two things. React is a library. it is also an architecture (which frameworks may implement)"
framework vs library -- how would you define them?