Instead of going into the details of a specific framework (like Angular, React, Vue, Articulate, etc)
-
Some way to create page templates to avoid repetition when creating similar parts of a page
-
Some way to create reusable view components that encapsulate a small set of display and functionality
-
Some way to automatically update the view when the relevant data changes
-
Some way to store data in a useful way
-
Some way to get data from the user
-
Some way to get data from an API
-
Some way to share data between components on different levels
-
Some way to do simple application logic (conditionals/loops) on the view
-
Some way to route users to different pages in a Single Page App from the url/location
-
A simple way to debug apps during development
-
A simple scaffolding/cli tool
-
A way to create and run tests easily
-
A reasonable work flow for creating, building, developing, updating and maintaining an app