在网页的一般开发流程中,我们通常会通过 JS 操作 DOM(对应HTML的描述产生的树),以引起界面的一些变化响应用户的行为。例如,用户点击某个按钮的时候,JS会记录一些状态到JS变量里面,同时通过DOM API操控DOM的属性或行为,进而引起界面一些变化。当项目越来越大的时候,你的代码会充斥着非常多的界面交互逻辑和程序的各种状态变量,这显然不是一个很好的开发模式,因此就有了MVVM的开发模式(例如 React、Vue),提倡把渲染和逻辑分离。简单来说就是不要再让JS直接操控DOM,JS只需管理状态即可,然后再通过一种模板语法来描述状态和界面结构的关系。