zoukankan      html  css  js  c++  java
  • MVVM框架

    谈谈对 MVC、MVP和MVVM 架构模式的理解

      mv*(即mvc、mvp和mvvm)的目的是把数据、业务逻辑和界面这三块解耦,分离关注点。不仅利于团队协作和测试,更利于甩锅维护和管理。业务的逻辑不再关心底层数据的读写,而这些数据有以对象的形式呈现给业务逻辑层。

      一、MVC

        MVC三个单词的首字母缩写,它们是:

        • Model(模型):数据层。管理数据
        • View(视图):视图层。用户界面
        • Controller(控制器):控制器。业务逻辑

        通信方式如下:

          所有通信都是单向的。

            

          1. 用户对view操做,view传送指令给controller

          2. controller中响应view的事件,调用model的接口对数据进行操作。

          3. model 层用来存储业务的数据,一旦数据发生变化,Model将通知相关视图进行更新。 

       二、MVP

        MVP(Model-View-Presenter)是MVC模式的改良,将Controller改名为Presnter。通过解耦View和Model,完全分离了视图和模型,使责任划分更加清晰。

        MVP单词首字母缩写,它们是:

        • Model(模型):数据层。管理数据
        • View(视图):视图层。用户界面
        • Prensenter(展示器):展示器。业务逻辑,连接模型和视图 

        各部分之间的通信方式:

            

          1.View不直接操作数据Model,而是通过Presenter传递

          2. 各部分之间的通信都是双向的

          View不直接操作数据Model,而是通过Presenter提供接口,让Prensenter去更新Model,再通过观察者模式更新View。

      三、MVVM

        MVVM是MVP更进一步的发展,将Prensenter改为ViewModel,基本上与MVP模式一致。唯一的区别是,它采用双向绑定,view发生变化的时候viewModel也会发生改变,反之ViewModel发生变化视图也随之改变

        MVVM单词首字母缩写,它们是:

        • Model(模型):数据层。
        • View(视图):视图层。
        • ViewModel(视图模型):视图模型。

        各部分之间的通信方式:

           

          1. 视图(View)和模型(Model)不直接交互

          2. ViewModel是 View和Model的桥梁,用户操作View后会自动反映在ViewModel,反之数据改变了View也会改变

          3. ViewModel和Model之间一般通过AJAX来进行修改

    什么是双向绑定

      我们知双向绑定是MVVM模式最核心的东西,那么双向绑定的是什么呢

      双向数据绑定:即当数据放生变化,视图也就发生变化;当视图发生变化(eg:用户输入造成 input /textarea/select 的变化)的同时,数据也会自动更新

    了解MVVM框架吗?:

      Vue.js   React.js   Angular.js  这三个至少要了解其中一个,现在使用比较多的是vue.js

  • 相关阅读:
    解决android Failed to rename directory 问题
    Android APK反编译
    SQL的bit列名转换成access是/否数据类型,True无效的问题
    android获取屏幕硬件分辨率方法
    cursor:hand 与 cursor:pointer 的区别
    解决android调试是出现:Reinstallation failed due to different application signatures
    Flash as3 基础:AS3中的getChildByName(转)
    机器学习之特征预处理
    用户态和内核态的区别
    深度学习和神经网络的区别(转载)
  • 原文地址:https://www.cnblogs.com/yangkangkang/p/8882382.html
Copyright © 2011-2022 走看看