Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

什么是 MVVM #20

Open
suukii opened this issue Jul 12, 2020 · 1 comment
Open

什么是 MVVM #20

suukii opened this issue Jul 12, 2020 · 1 comment
Labels

Comments

@suukii
Copy link
Owner

suukii commented Jul 12, 2020

Model-View-ViewModel 是一种设计思想:

  • Model 层代表数据模型,可以在这里定义数据和操作数据的逻辑;
  • View 层代表 UI 组件,负责将数据模型转化成 UI 展示出来;
  • ViewModel:是一个负责同步 View 和 Model 的对象;

在 MVVM 架构下,View 和 Model 没有直接联系,而是通过 ViewModel 进行交互,ViewModel 通过双向数据绑定把两者连接起来,把 Model 的数据变化反应到 View 上,同时也把 View 的数据变化同步到 Model 中,这同步工作是自动的,无需人为干涉。因此开发者只需要关注业务逻辑,不需要手动操作 DOM,也不需要关注数据状态的同步问题。

@suukii suukii added the vue label Jul 12, 2020
@suukii
Copy link
Owner Author

suukii commented Jul 12, 2020

MVVM 和 MVC 的区别

MVVM 主要解决了 MVC 的两个问题:

  1. 大量的 DOM 操作使页面渲染性能降低,影响用户体验;
  2. 当 Model 频繁发生变化,开发者需要主动更新到 View 中;

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant