位置: 编程技术 - 正文

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

  • PHP设计模式之工厂模式实例总结(php常用设计模式(大总结))

    PHP设计模式之工厂模式实例总结(php常用设计模式(大总结))

  • 深入浅析SQL封装、多态与重载(sql 封装)

    特点:单继承 一个子类只能有一个父类,一个父类可以有多个子类 (所有父类都是object)

    base关键字

    sealed关键字:密封类 该类不可以被继承

    部分类:partial 可以将一个类拆分成多个部分,分别放在多个文件内

    namespace 命名空间 相当于虚拟文件夹

    (3)多态:

    1.编译多态

    函数重载

    2.运行多态

    概念:当父类引用指向子类实例的时候,由于子类对父类的方法进行了重写,在调用该方法的时候表现出的不同就称为多态

    条件:必须要有继承 父类引用指向子类实例 子类必须对父类的方法进重写

    里氏代换原则:如果有一个地方需要使用到父类对象,那么你可以将一个子类对象给他

    1.函数重载

    函数重载需要的条件:函数名要相同,参数的个数或者参数的类型不同

    2.this关键字

    虽然写在类里面,但不是属于类的,而是属于该对象的

    一般来说在类里面 this关键字是可以省略的,但是如果有一个方法形参名字和成员名字重复,这时候再调用该对象里面的成员的时候需要加this关键字

    3. is关键字

    判断变量是不是属于某个类型

    4. as关键字

    转换类型(只能转换兼容类型,可以将子类对象转换为父类对象)

    5.继承

    子类可以继承父类的一切

    特点:单继承

    一个子类只能有一个父类 一个父类可以有多个子类

    C#特殊点:所有类的祖先都是object

    base关键字:在子类中代表父类对象,用法和this关键字相同

    如果父类有构造方法,那么子类也要有构造方法,如果父类构造需要参数,那么子类构造也必须有相应的参数。子类构造后面可以通过base调用父类的构造方法

    以上所述是小编给大家介绍的SQL封装、多态与重载,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对积木网网站的支持!

    在Sql Server中调用外部EXE执行程序引发的问题 一、先开启xp_cmdshell打开外围应用配置器—功能的外围应用配置器—实例名DatabaseEnginexp_cmdshell—启用二、解决方法usemasterExecxp_cmdshell'mkdird:csj" class="img-responsive" alt="深入浅析SQL封装、多态与重载(sql 封装)">

    深入浅析SQL封装、多态与重载(sql 封装)

  • Unity学习-NGUI结合Shader小地图的制作(三)(unity总结)

    Unity学习-NGUI结合Shader小地图的制作(三)(unity总结)

  • 进口关税的计算方式
  • 盖了骑缝章的合同怎么写
  • 企业所得税年报怎么查询
  • 资产负债表的固定资产怎么计算
  • 实收资本账
  • 非生产性费用不应计入产品成本
  • 机票里面的其他税费抵扣吗
  • 减免所得税额是怎么算出来的2022
  • 交易性金融资产借贷方向
  • 拍卖的商铺过户费怎么算
  • 委外研发费用如何开票
  • 安全生产专项资金绩效目标
  • 固定资产退回账务处理规定
  • 建筑业购买车辆怎么入账
  • 三方协议是先签先干活
  • 修理费要开税控清单吗
  • 本地开的住宿费可以退吗
  • 小规模纳税人需要每月清卡吗
  • 一般纳税人收到普票如何入账
  • 企业发放防暑降温物品依据
  • 什么情况下附加税减半
  • 长期股权投资的投资收益怎么算
  • 应收账款 转让
  • 建立账套的简单操作
  • 采购的增值税
  • 增值税专用发票丢了怎么补救
  • WIN7系统的镜像文件在哪里
  • windows刷新桌面
  • 收到其他公司退款
  • 结转本月各项损益
  • 应收账款怎么做分录
  • bios怎么恢复出厂设置dell
  • 如何在windows10搜索文件
  • linux系统的
  • 电子缴税回单在哪里打印
  • 网速变慢了
  • 拆迁货币什么意思
  • controller 层
  • yii2开发文档
  • 货运业增值税税率
  • 无形资产相关税费
  • “oracle”
  • 人工智能介绍200字
  • 货币盘盈盘亏账怎么算
  • 预付劳务款项会计分录
  • 认缴出资和注册资本
  • 高效刷题app
  • python time.ctime()如何做时间加减法
  • 工程发票多少点
  • 出口退税是什么
  • 小规模企业没有账,税务会查账吗
  • 售后租回承租人怎么处理
  • 期初建账明细账怎么建账
  • 营改增 交通运输
  • 现金折扣定价案例
  • 公司买护肤品发票如何入账
  • 记账凭证分为哪几类,应具备哪些主要内容
  • Advanced Pagination for MySQL(mysql高级分页)
  • centos7安装mysql并jdbc测试教程
  • windows延缓写入失败怎么修复
  • win10系统的邮件和日历跟outlook一样嘛
  • windows server 2008 r2怎么用u盘启动
  • windows8正版
  • xp系统的本地连接
  • linux find 命令详解
  • xp系统怎么和win7系统共享
  • windows的气泡屏保会加速
  • Win10 Mobile/PC Build 10586.550曝光:主要修复bug和优化性能
  • 当前用户已注销
  • win10蓝屏故障
  • 电脑window8系统怎么样
  • win安装ie8
  • javascript编程技术
  • 应用web标准实例是什么
  • python简易
  • javascript怎么弄
  • 企业所得税到底是按间接法计算还是直接法计算
  • 2020年砂石
  • 贷款利息扣款日未足额缴纳
  • 税务筹划收费标准最新
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设