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

[vue] 说说你对MVC、MVP、MVVM模式的理解 #232

Open
undefinedYu opened this issue Jun 11, 2019 · 4 comments
Open

[vue] 说说你对MVC、MVP、MVVM模式的理解 #232

undefinedYu opened this issue Jun 11, 2019 · 4 comments
Labels
vue vue

Comments

@undefinedYu
Copy link
Contributor

[vue] 说说你对MVC、MVP、MVVM模式的理解

@undefinedYu undefinedYu added the vue vue label Jun 11, 2019
@LQY-3777
Copy link

@xanthuz
Copy link

xanthuz commented May 20, 2021

这篇文章整合了许多不同书和百科对 MVC, MVP, MVVM 的解释,并消除了歧义。
大家可以看看:浅谈 MVC、MVP 和 MVVM 架构模式

@yxllovewq
Copy link

MVC:数据模型M+视图V+控制器C,V->C->M->V,数据变化直接影响视图。
MVP:V->P->M, M->P->V,P相对于MVC中的C会显得更加臃肿。
MVVM:将MVP中的P里面的数据变更,更新DOM的代码通过数据和视图的绑定独立出来,将MVP里的P精简化、让开发者侧重于业务逻辑。VUE便是参考MVVM模式。

@Cai-zhiji
Copy link

MVC(Model-View-Controller)、MVP(Model-View-Presenter)和 MVVM(Model-View-ViewModel)是常见的软件架构模式,用于组织和管理应用程序的代码结构。它们都旨在将应用程序的不同部分分离,以实现松耦合、可维护和可扩展的代码结构。

MVC

Model(模型):负责处理数据和业务逻辑。
View(视图):负责展示数据给用户,并处理用户的输入。
Controller(控制器):负责接受用户的输入,处理请求,并更新模型和视图。
在 MVC 模式中,视图和模型之间通过控制器进行通信,控制器负责处理用户的输入、更新模型和决定如何更新视图。这种模式将应用程序的逻辑分离成三个不同的组件,以实现解耦和重用性。

MVP 模式:

Model(模型):负责处理数据和业务逻辑。
View(视图):负责展示数据给用户,并处理用户的输入。
Presenter(表示器):负责处理用户输入、更新模型和更新视图。

MVVM 模式:

Model(模型):负责处理数据和业务逻辑。
View(视图):负责展示数据给用户,并处理用户的输入。
ViewModel(视图模型):作为视图和模型之间的中间层,负责处理视图的显示逻辑和用户的输入,并将数据更新反映到模型。
在 MVVM 模式中,视图通过数据绑定将视图和视图模型进行绑定,当视图模型的数据发生变化时,视图会自动更新。视图模型通过暴露数据和命令来供视图绑定和交互。这种模式实现了视图和数据的解耦,提供了更简洁和可测试的代码结构。

总结

VC、MVP 和 MVVM 是用于组织应用程序代码的常见模式。它们的核心目标都是实现代码的解耦、可维护性和可测试性,但在具体的实现和应用上存在一些区别。选择适合的模式取决于项目需求和开发团队的偏好。

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

No branches or pull requests

5 participants