位置: 编程技术 - 正文

理解javascript中的MVC模式(简述javascript)

编辑:rootadmin

推荐整理分享理解javascript中的MVC模式(简述javascript),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:javascript的理解,javascript的理解,js怎么理解,javascript的理解,javascript深入理解,javascript的理解,javascript中的函数如何理解,javascript中的函数如何理解,内容如对您有帮助,希望把文章链接给更多的朋友!

MVC模式是软件工程中一种软件架构模式,一般把软件模式分为三部分,模型(Model)+视图(View)+控制器(Controller);

模型:模型用于封装与应用程序的业务逻辑相关的数据以及对数据处理的方法。模型有对数据直接访问的权利。模型不依赖 “视图” 和 “控制器”, 也就是说 模型它不关心页面如何显示及如何被操作.

视图:视图层最主要的是监听模型层上的数据改变,并且实时的更新html页面。当然也包括一些事件的注册或者ajax请求操作(发布事件),都是放在视图层来完成。

控制器:控制器接收用户的操作,最主要是订阅视图层的事件,然后调用模型或视图去完成用户的操作;比如:当页面上触发一个事件,控制器不输出任何东西及对页面做任何处理; 它只是接收请求并决定调用模型中的那个方法去处理请求, 然后再确定调用那个视图中的方法来显示返回的数据。

下面我们来实现一个简单的下拉框控件,我们可以对它进行增删操作;如下图所示:

代码如下:

HTML代码如下:

理解javascript中的MVC模式(简述javascript)

页面初始化代码如下:

代码分析如下:

先分析下我们是要实现什么样的功能,基本功能有:

一个下拉框,通过用户输入的操作来实现用户增加一项及用户选中一项后删除一项的功能;当然也添加了用户切换到那一项的事件;

比如我们现在来增加一条数据的时候,在视图层上添加监听事件,如下代码:

然后调用观察者类Event中的方法notify(发布一个事件) that.addButtonClicked.notify();大家都知道,观察者模式又叫发布-订阅模式,让多个观察者对象同时监听某一个主题对象,当某一个主题对象发生改变的时候,所有依赖它的对象都会得到通知;因此在控制层(Controller)我们可以使用如下代码对发布者进行监听操作:

之后调用自身的方法addItem();代码如下:

调用模型层(model)的方法addItem();把一条数据插入到select框里面去;model(模型层)的addItem()方法代码如下:

如上代码 增加一项后,通过 this.itemAdd 发布一个消息,然后在视图层(View)上通过如下代码来监听这个消息;代码如下:

最后监听到模型上(Model)的数据发生改变后,及时调用自身的方法rebuildList()去更新页面上的数据;

模型层(Model)最主要做业务数据封装操作。视图层(View)主要发布事件操作及监听模型层上的数据,如果模型层上有数据改变的时候,及时更新页面操作,最后显示给页面上来,控制层(Controller)主要监听视图层(View)的事件,调用模型层(Model)的方法来更新模型上的数据,模型层数据更新后,会发布一条消息出去,最后视图层(View)通过监听模型层(Model)的数据变化,来更新页面的显示; 如上是MVC的基本流程。MVC的优点: 1. 耦合性低:视图层和业务层分离了,如果页面上显示改变的话,直接在视图层更改即可,不用动模型层和控制层上的代码;也就是视图层 与 模型层和控制层已经分离了;所以很容易改变应用层的数据层和业务规则。 2. 可维护性:分离视图层和业务逻辑层也使得WEB应用更易于维护和修改。MVC的缺点: 个人觉得适合于大型项目,对于中小型项目并不适合,因为要实现一个简单的增删改操作,只需要一点点JS代码,但是MVC模式代码量明显增加了。对于学习成本也就提高了,当然如果使用一些封装好的MVC库或者框架就好了。

标签: 简述javascript

本文链接地址:https://www.jiuchutong.com/biancheng/382745.html 转载请保留说明!

上一篇:探讨JavaScript语句的执行过程(javascript语言入门教程)

下一篇:很不错的两款Bootstrap Icon图标选择组件

  • 发票冲红重开,重开时是按新税率还是旧税率
  • 个人出租房屋的个人所得税税率
  • 营业执照是怎么样子的
  • 金税四期的主要功能
  • 农民工专户个税起征点2023四川省
  • 企业可以申请专项债券吗
  • 增值税调整收入税额差额怎么写
  • 所得税可以预交吗现在
  • 办理外经证后缴税怎么交
  • 反写了可以重新申报吗
  • 小规模纳税人与一般纳税人区别
  • 中兴通技术维护费
  • 可供出售金融资产计入什么科目
  • 超市里的摊位租金贵吗
  • 辅助生产交互分配后的实际费用应在进行分配
  • 资产负债表越来越少了是怎么回事
  • 个人开增值税普通发票税率
  • 认缴制下实收资本印花税
  • 境外派遣员工境外所得税是什么时候申报?
  • 缴纳上月应交税费分录
  • 捐赠允诺是否有法律约束力?
  • 公休假补贴多少钱
  • 递延所得税资产怎么计算
  • 如何返还股东的出资款
  • 固定资产投资方案
  • 购买土地建房出售怎么做账
  • 资产处置收益属于利润表项目吗
  • 哪些费用可以税前扣除
  • 临时工工资单怎么做
  • 腾讯手游助手遇到未知错误
  • 收到车辆保险发票怎么做分录
  • 公司的职工教育是指什么
  • 增值税税率调整差额怎么计算
  • 企业取得财政拨款怎么算
  • 经营出租固定资产折旧额计入什么科目
  • 新买的电脑如何激活windows
  • 如何在电脑管家下载软件
  • 向农民购进农产品
  • Mac OS X Mavericks的Finder打开不同标签的操作步骤
  • player.exe是什么意思
  • 成品油的消费税可以抵扣吗
  • 文件夹字体怎么变大
  • 2022年开始,手握大量现金的人
  • idea怎么运行前端vue项目
  • 员工报销个人抬头的医疗费打款备注写什么
  • 小规模纳税人免征增值税政策
  • vue 跳转页面
  • h5 画图
  • acpi disabled
  • Node 下 Http Streaming 的跨浏览器实现
  • python打开文本文档中文读不出来
  • 香港公司代收国际汇款税务怎么处理
  • 阿里云安装centos8
  • 土方开挖工艺标准
  • 冲销以前年度费用会计分录
  • 税控盘怎么看是否清盘
  • 企业租赁收入如何纳税
  • 外购商品用于宣传需要缴纳增值税吗
  • 资本公积金转增股本是利好吗
  • 固定资产发票未到可以确认固定资产吗
  • 承兑汇票可以买卖吗?
  • 新医院会计制度什么时候实施
  • 发票已到款未付怎么做账
  • win7 word
  • 如何快速恢复么
  • msscli.exe - msscli是什么进程 有什么用
  • 迅雷看看电脑版 下载
  • win1020h2版好不好
  • react native community
  • 深入理解新发展理念心得体会3篇
  • 摄像机跟随与摄像的区别
  • c#中抽象类的定义
  • android 生成图片
  • bat xcopy copy
  • jquery.validate 自定义验证方法及validate相关参数
  • js操作对象的方法
  • python守护线程与非守护线程
  • 税务如何稽查
  • 普通发票开具时写材料一批需要附什么清单?
  • 城市维护建设税减半征收政策
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设