React和Vue到底是库还是框架?
免责声明:以下全是自我的理解与观点
不管是React还是Vue,它们的核心都是“构建UI的库”,它们由以下的两个部分组成:
- 基于状态的声明式渲染
- 组件化的层次架构
随着现在应用复杂度的大幅度提升,我们需要借助很多外部的工具去帮助我们完成开发,例如在状态管理的方面,React有Redux、Mobx,Vue有Pinia、Vuex。
当应用继续进一步扩展,从简单的页面升级成为SPA(Single Page Application,单页应用),这时就需要提供一种解决方案去实现页面之间的切换,在React中叫React-Router,在Vue中叫Vue-Router。
还有在提高客户端首屏页面渲染速度同时满足SEO(Search Engine Optimization,搜索引擎优化)的需求,需要使用到SSR(Sever Side Render,服务端渲染)。
除了上述提到的功能之外,还有很多功能是React本身并不包含的,比如文档工具、数据流方案等。所以React,Vue本身,而不是框架,框架应该是“包含库本身以及附加功能”的解决方案。
例如:
- Next.js是一款基于React,支持SSR、SSG的服务端框架
- AngularJS是一款内置多种功能的前端框架
- UmiJS是一款基于React,内置路由、构建、部署等功能的前端框架。