位置: 编程技术 - 正文

理解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图标选择组件

  • 进项税额怎么抵税
  • 赊销和分销时纳税义务发生时间是什么时候?
  • 待转销项税额是几级科目
  • 企业境外投资管理办法
  • 通货膨胀有什么危害?
  • 采购材料入库会计分录怎么写的
  • 影响年初未分配利润的事项
  • 报税利润表的第二季度本期金额本年累计金额是什么
  • 增值税需要结转到本年利润吗
  • 工伤职工应享有的待遇及救济途径
  • 名义股东转让股份侵权
  • 合同印花税用不用计提
  • 外购的材料用于在建工程进项税额
  • 收到某公司发票会计分录
  • 超市热卖食品
  • 所得税费用为负数需要体现在报表上吗
  • 母子公司之间转让土地使用权
  • 税务局拍卖资产
  • 纳税人财务会计核算办法怎么上传
  • 税收分类编码选错了没事吧
  • 房地产开发经营属于什么行业类别
  • 高温补贴需要交个人所得税吗2019
  • 每股股份价格
  • 几年前的美元现在值钱吗
  • 商场收取商户违约金上什么税?
  • 企业滞纳金属于什么会计科目
  • 华为手机进入recovery模式怎么退出
  • linux如何将命令结果输出到文件
  • 税优识别码是纳税人识别号吗
  • 交易性金融资产是什么意思
  • 支付职工培训费的现金流量项目
  • 资产负债表中资产等于什么
  • 公司旅游费计入什么科目
  • 如何删除鸿蒙
  • php面试题目100及最佳答案
  • php tr td
  • 银行收取对公账户服务费有什么用
  • 非货币性资产交换补价大于25%的会计处理
  • 莱达尔湖, 英格兰坎布里亚郡湖区 (© Tranquillian1/iStock/Getty Images Plus)
  • 完美解决在ThinkPHP控制器中命名空间的问题
  • php常用工具
  • 10qps是多少并发
  • celery eventlet
  • 劳务成本 科目
  • 哪些收入需缴纳增值税
  • 工程项目怎么挣钱
  • mysql 分片优缺点
  • 应交税费在会计科目的借贷方向
  • 含税销售收入会计分录
  • 个人扣税是怎么扣的
  • 材料帐怎么记
  • 公司过账的款项怎么入账
  • 发票与销售小票有什么区别?
  • 购买产品样品计入什么科目
  • 建筑行业的收入做什么科目
  • 对外贸易出口公司
  • 库存商品核算
  • 会计估计变动怎么处理
  • 价外费用如何计税
  • 租赁合同的印花税的计税依据
  • 预缴所得税年底怎么算
  • 收到分公司负责人的礼物
  • mysql多表查询方式
  • linux系统关机重启命令
  • centos如何下载
  • windowspe安装win7
  • ubuntu rar压缩
  • win101909消费者版是什么意思
  • win7防火墙打不开错误代码6801
  • cocos studio
  • js设计模式有什么用
  • cocos js
  • ie6怎么设置兼容性
  • Node.js中的construct构造函数
  • js获取弹窗的元素
  • 全面解析日本失去的十年
  • 江苏省高新区地图
  • 预缴的增值税怎么做账务处理
  • 地税局属于省直单位吗
  • 我国国家治理体系是一整套什么的国家制度
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设