1.mvc设计模式理解
Model: 模型 持有所有的数据状态和业务逻辑; 泛指数据库,链接数据库,建立数据模型
View: 视图 用来展示数据模型在页面上,泛指前端
Controller: 控制器, 接收用户的数据,进行逻辑处理后,传给model. 泛指后端
优点: 模块化 易复用
 
2.vuex理解 (和本篇无关,只做记录)
vuex是为vue程序开发的状态管理模式,它采用集中式的管理模式存储管理所有组件的状态,并按
照一定的规则保证状态以一种可预测的方式发生变化!
出现原因: 管理不断变化的state非常困难,不可控性; 例如非父子组件传值问题,传值方式繁琐.
使用场景: 中大型单页面应用; 小型应用不使用,显得项目繁琐.
3.MVVM设计模式(vue)的理解
(1)先看下MVC设计模型,view层展示Model层的数据进行渲染页面,Controller层接收用户操作的
数据进行后端的业务处理后,在传递给Model层进行建立数据模型,最后view进行重新请求Model
数据进行更新页面数据.
这种模式的缺点: 1.view -- model层关联密切: view层请求model层数据进行页面渲染;当model层
数据发生变化的时候,view需要再次重新请求model数据进行渲染;...
2.Controller: 接收用户行为,进行逻辑处理后,数据发生改变; 每次改变都要发送给Model层,然后
Model改变,进而view改变.
(2)那可不可以直接view -- model实现自动同步/响应式呢.
这就是MVVM设计模式:
Model: 数据层,泛指数据库
View:视图层,泛指前端
ViewModel:监听模型数据的改变和用户的输入等行为,处理用户的交互逻辑;简单说,就是一个连接
model和view的对象.
view和model是相互独立的,通过vm(viewmodel)这个连接的对象或者说桥梁来实现同步响应式的
变化; 当model发生数据改变,view层会自动同步,同理当view操作数据改变后,model层也会同步!
其实,MVVM设计模式中,只是把controller层弱化了,交给viewmodel处理.这样做的优点:
开发者不用再关心DOM更新同步和状态变化同步到数据库问题. 只需要关心业务逻辑.
而把状态管理交给viewmodel.
MVVM设计模式:实现view model同步的原理:
Object.defineProperty()定义的set和get函数

MVC和MVVM设计模式简单理解的更多相关文章

  1. (一)mvc与mvvm设计模式

    前沿:了解设计模式对我们而言,具有很大意义,对语言没有限制,它适用于任何语言,是一种变成思想.设计模式最初有四人帮提出,有兴趣的同学可以去了解下,今天给大家主要分析mvc与mvvm设计模式 一.mvc ...

  2. MVC模式和MVVM模式简单理解

    相信这是两个耳熟能详的词了,MVC广泛的用到了java的各种框架当中,比如Struts2, SpringMVC等,作为B/S架构开发,MVS模式也是我们必须掌握的. mvc一步一步演化之后有了现在的M ...

  3. iOS 关于MVC和MVVM设计模式的那些事

    一.概述 在 iOS 开发中,MVC(Model View Controller)是构建iOS App的标准模式,是苹果推荐的一个用来组织代码的权威范式.Apple甚至是这么说的.在MVC下,所有的对 ...

  4. [ExtJS5学习笔记]第九节 Extjs5的mvc与mvvm框架结构简单介绍

    本文地址:http://blog.csdn.net/sushengmiyan/article/details/38537431 本文作者:sushengmiyan ------------------ ...

  5. MVC与MVVM设计模式理解

    MVC设计模式(View和Model之间不能直接通信) MVC是一种架构模式,M表示Model,V表示视图View,C表示控制器Controller: Model负责存储.定义.操作数据.从网络中获取 ...

  6. 前端MVC、MVVM的简单实现

    MVC MVC是一种设计模式,它将应用划分为3个部分:数据(模型).展示层(视图)和用户交互层.结合一下下图,更能理解三者之间的关系.换句话说,一个事件的发生是这样的过程 用户和应用交互 控制器的事件 ...

  7. MVC设计模式的简单理解

    MVC介绍 众所周知MVC不是设计模式,是一个比设计模式更大一点的模式,称作设计模式不合理,应该说MVC它是一种软件开发架构模式,它包含了很多的设计模式,最为密切是以下三种:Observer (观察者 ...

  8. Android开发模式之MVC,MVP和MVVM的简单介绍与区别

    相信大家对MVC,MVP和MVVM都不陌生,作为三个最耳熟能详的Android框架,它们的应用可以是非常广泛的,但是对于一些新手来说,可能对于区分它们三个都有困难,更别说在实际的项目中应用了,有些时候 ...

  9. JavaScript设计模式的简单理解

    设计模式可以理解为一系列的代码框架,我觉得主要涉及封装的概念.把实现某一功能的代码段封装在函数中,可以方便调用,同时利于代码的复用,提高了代码的可维护性.下面简单介绍一下几种设计模式的个人感受. 1. ...

随机推荐

  1. [CSP-S模拟测试]:Cover(单调栈++单调队列+DP)

    题目传送门(内部题126) 输入格式 第一行两个个整数$n,m$表示区间的长度与彩灯的数量. 接下来$m$行,每行三个整数$l_i,r_i,a_i$表示一条彩灯能够覆盖的区间以及它的美观程度. 输出格 ...

  2. C++入门经典-例6.12-使用数组地址将二维数组输出

    1:以a[4][3]为例 a代表二维数组的地址,通过指针运算符可以获取数组中的元素 (1)a+n代表第n行的首地址 (2)&a[0][0]既可以看作第0行0列的首地址,同样也可以被看作是二维数 ...

  3. 剑指offer31----栈的压入、弹出序列

    题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对 ...

  4. 9、kubernetes之statefulset控制器

    一.StatefulSet 有状态副本集 必要的三个组件:headless service.StatefulSet.volumeClaimTemplate 准备pv apiVersion: v1 ki ...

  5. 解决:linux eclipse 对‘dlopen’未定义的引用, 对‘xxx’未定义的引用

    如果是终端窗口执行的话直接: 在g++编译选项后面,加入dl的库,选项为-ldl,即可. 如果是在eclipse里的话: 在工程属性中->c/c++ build->gcc complier ...

  6. python - re正则匹配模块

    re模块 re 模块使 Python 语言拥有全部的正则表达式功能. compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象.该对象拥有一系列方法用于正则表达式匹配和替换. re ...

  7. 两个 Activity 之间跳转时必然会执行的是哪几个方法?

    一般情况下比如说有两个 activity,分别叫 A,B,当在 A 里面激活 B 组件的时候, A 会调用 onPause()方法,然后 B 调用 onCreate() ,onStart(), onR ...

  8. [Flask]使用sqlite数据库

    app.py from flask import Flask from flask_sqlalchemy import SQLAlchemy import os basedir = os.path.a ...

  9. django中的model 的unique_together(联合唯一)

    unique_together解释 nique_together 这个元数据是非常重要的一个!它等同于数据库的联合约束! 举个例子,假设有一张用户表,保存有用户的姓名.出生日期.性别和籍贯等等信息.要 ...

  10. 源码安装zabbix4.0.1

    本篇是纯粹安装zabbix4.0.1, 前提需要安装lnmp请安装 https://www.cnblogs.com/effortsing/p/9982028.html 环境准备: 一台虚拟机 192. ...