渐进式框架
我们都知道Vue是一个渐进式的框架,那学习了一段时间后再回过头来问自己,什么是渐进式?
如下图所示,这里包含了Vue的所有部件,在声明式渲染的基础上,我们可以通过添加组件系统、客户端路由、大规模状态管理来构建一个完整的框架。更重要的是,这些功能相互独立,你可以在核心功能的基础上任意选用其他的部件,不一定要全部整合在一起。
参考文章:
声明式渲染
那再问一个问题,什么是声明式渲染呢?我想理解这一点应该先理解MVVM思想
首先MVVM并不是一种框架,它是一种思想。
V:View 页面视图
M:model 业务逻辑和数据库
VM: ViewModel 视图数据模型和展现逻辑
在这种思想或者说模式下,M层与V层是不可以直接进行通信的,它们之间存在着VM这个中介。而VM向上与V之间实现数据的双向绑定,向下与M通过接口请求进行数据交互,起到了承上启下的作用。
那关于声明式渲染呢?
- DOM是数据的一种自然映射(数据驱动)
- 当数据发生变化,View层会被框架自动更新到合理的状态
声明式渲染与命令式渲染
- 命令式:需要以具体的、详细的代码实现具体的功能
- 声明式:只需要声明需要做什么,达到什么样的目的,不管内部如何实现。
// 命令式
let arr = [1,2,3]
let newArr = []
for(let i = 0;i<arr.length;i++){
newArr[i] = arr[i]
}
// 声明式
let arr = [1,2,3]
let newArr = arr.map(value=>{
return value*2;
})
参考文章: