Introduction
In the previous chapters, you learned how to utilize conditional logic, loops, and the most common data structures. These form the groundwork and essentials for writing programs and building complex JavaScript applications. Still, building actual software is an inherently challenging task; focusing on only business logic is even more so. Therefore, as developers, we often rely on external software that lets us dedicate ourselves to the source code that's the most relevant to our product or business. This software does this by simplifying specific tasks and abstracting away complexity for us. Those pieces of external software are what we refer to as frameworks or libraries.
The following are some of the tasks that modern JavaScript frameworks can support us with:
- Performance rendering of complex or dynamic single-page applications (SPAs)
- Managing ongoing dataflow between the controllers and views of client-side applications
- Creating sophisticated...