返回顶部
首页 > 资讯 > 精选 >怎么用JavaScript模拟实现简单的MVC
  • 626
分享到

怎么用JavaScript模拟实现简单的MVC

2023-07-06 00:07:25 626人浏览 独家记忆
摘要

本篇内容主要讲解“怎么用javascript模拟实现简单的mvc”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用JavaScript模拟实现简单的MVC”吧!MVC是一种常见的软件架构模式,

本篇内容主要讲解“怎么用javascript模拟实现简单的mvc”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用JavaScript模拟实现简单的MVC”吧!

MVC是一种常见的软件架构模式,将一个应用程序分为三个核心的部分:模型(Model)、视图(View)和控制器(Controller)。MVC模式的目的是将应用程序的数据、用户界面和控制逻辑分离,提高代码的可维护性,可拓展性和可重用性。

在我们前端看来:

  • Model模型层,用来获取、存放所有的对象的数据

  • View表现层,呈现信息给用户

  • Controller控制层,模型和视图之间的纽带。

下面我们就按照这三层划分用js实现一个MVC

场景

这里我们就来模拟一个场景。

怎么用JavaScript模拟实现简单的MVC

点击increase按钮,就增加,点击decrease就减少

<body><div id="num"></div><button id="increase">increase</button><button id="decrease">decrease</button></body><script src="https://cdn.bootcdn.net/ajax/libs/Jquery/3.6.4/jquery.js"></script><script src="./index.js"></script>

为了方便操作dom我们引入了jquery。创建一个index.js代码逻辑放到index.js

核心思想

环境已经准备好,下面给我开始搞!

在搞之前,我们首先要知道MVC的核心思想是个啥?开头的时候已经讲过了三个核心的部分,那如何让这三个核心的部分串起来呢?

首先代码运行起来要有一个初始化的过程。Controller是模型和视图之间的枢纽。首先需要对Controller,并且需要在Controller里面对ModelView之间建立关系。初始化的时候将Model中的数据,渲染到View中,同时View层对界面中的行为事件进行监听,如果界面想要修改数据则触发View层中的监听行为,需要在Controller中通知Model层修改数据,然后再展示到界面。

init

const myApp = {};myApp.Model = function () {}myApp.View = function () {}myApp.Controller = function () {}(function () {  var controller = new myApp.Controller();  controller.init();})();

Controller

myApp.Controller = function () {  var view, model;  this.init = function () {    model = new myApp.Model();    view = new myApp.View(this);    model.reGISter(view);    model.notify();  };  this.increase = function () {    model.add(1);    model.notify();  };  this.decrease = function () {    model.sub(1);    model.notify();  };};

当执行init的时候,会对ModelView进行初始化,在初始化View时,需要将Controller本身传入。为什么要传入呢?下面看View的时候会介绍。在model中有个register的方法,需要将初始化的view注册到model中,同时需要触发modelnotify完成初始化的整个过程。

View

// ViewmyApp.View = function (controller) {  var $num = $("#num"),    $inc = $("#increase"),    $dec = $("#decrease");  this.render = function (model) {    $num.text(model.getVal() + "rem");  };  $inc.click(controller.increase);  $dec.click(controller.decrease);};

view中,获取界面需要操作的dom。定义一个render方法,这个方法初始化的时候,会获取model中的数据,渲染到界面上。当数据发生变化的时候,render方法会重新执行,重新渲染。下面两个按钮监听了两个事件,是controllerincreasedecrease方法。这就是为什么需要将controller传入到view中。

Model

//ModelmyApp.Model = function () {  var val = 0;  this.add = function (v) {    val += v;  };  this.sub = function (v) {    val -= v;  };  this.getVal = function () {    return val;  };  var self = this,    views = [];  this.register = function (view) {    views.push(view);  };  this.notify = function () {    for (var i = 0; i < views.length; i++) {      views[i].render(self);    }  };};

Model层中,定义了初始值valadd对值增加,sub对值减少。getVal对值的读取。还定义了一个数组views。还记得上面controller的时候model.register(view)吗?初始化的时候,将view存入到modelviews中。notify就是通知view更新的。执行notify的时候,对views中的每个view遍历,然后执行viewrender方法,这就是发布订阅模式。

到此,相信大家对“怎么用JavaScript模拟实现简单的MVC”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: 怎么用JavaScript模拟实现简单的MVC

本文链接: https://lsjlt.com/news/356940.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么用JavaScript模拟实现简单的MVC
    本篇内容主要讲解“怎么用JavaScript模拟实现简单的MVC”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用JavaScript模拟实现简单的MVC”吧!MVC是一种常见的软件架构模式,...
    99+
    2023-07-06
  • JavaScript模拟实现简单的MVC的示例详解
    目录场景核心思想initControllerViewModelMVC是一种常见的软件架构模式,将一个应用程序分为三个核心的部分:模型(Model)、视图(View)和控制器(Cont...
    99+
    2023-05-15
    JavaScript实现MVC JavaScript MVC
  • Python模块怎么实现简单的调用
    这篇文章给大家分享的是有关Python模块怎么实现简单的调用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。python可以做什么Python是一种编程语言,内置了许多有效的工具,Python几乎无所不能,该语言通...
    99+
    2023-06-14
  • 怎么用JavaScript实现简单的拖拽效果
    这篇文章主要介绍“怎么用JavaScript实现简单的拖拽效果”,在日常操作中,相信很多人在怎么用JavaScript实现简单的拖拽效果问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用JavaScript...
    99+
    2023-06-25
  • 怎么用css实现简单背景模糊
    小编给大家分享一下怎么用css实现简单背景模糊,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!   css样式:   <...
    99+
    2024-04-02
  • Java怎么实现简单的模板渲染
    这篇文章将为大家详细讲解有关Java怎么实现简单的模板渲染,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。java基本数据类型有哪些Java的基本数据类型分为:1、整数类型,用来表示整数的数据类型。2、浮点...
    99+
    2023-05-30
    java
  • 怎样用Javascript实现单例模式
    目录概述代码实现简单版单例模式改良版代理版单例模式惰性单例模式概述 单例模式也称为单体模式,规定一个类只有一个实例,并且提供可全局访问点; 在读这篇文章之前,也许你对单例模式的概念感...
    99+
    2024-04-02
  • JavaScript怎么实现简单抽奖系统
    这篇文章主要讲解了“JavaScript怎么实现简单抽奖系统”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript怎么实现简单抽奖系统”吧!模拟实现抽奖系统前端使用JavaScr...
    99+
    2023-06-29
  • 怎么使用JavaScript实现一个简单的通讯录
    这篇文章主要介绍“怎么使用JavaScript实现一个简单的通讯录”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么使用JavaScript实现一个简单的通讯录”文章能帮助大家解决问题。创建通讯录对...
    99+
    2023-07-06
  • java简单工厂模式怎么实现
    在Java中,简单工厂模式可以通过以下步骤实现:1. 首先创建一个接口,表示产品的抽象类,其中定义了产品的一些共同的方法。```ja...
    99+
    2023-08-18
    java
  • 用javascript实现简单计算器
    本文实例为大家分享了javascript实现简单计算器的具体代码,供大家参考,具体内容如下 设计一个简单的计算器 代码 <body> <a>第一个...
    99+
    2024-04-02
  • 怎么用CSS3制作一个简单的Chrome模拟器
    这篇文章主要介绍“怎么用CSS3制作一个简单的Chrome模拟器”,在日常操作中,相信很多人在怎么用CSS3制作一个简单的Chrome模拟器问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望...
    99+
    2024-04-02
  • JavaScript模拟实现新浪下拉菜单效果
    思考:首先在CSS布局上就出错了,导致后面设置JS时就有很大的问题 <!DOCTYPE html> <html lang="en"> <head&...
    99+
    2024-04-02
  • javascript怎么实现简单页面倒计时
    小编给大家分享一下javascript怎么实现简单页面倒计时,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!具体如下:<!DOCTYPE html><html><head>&nb...
    99+
    2023-06-06
  • 用JavaScript实现简单网页时钟
    利用JavaScript实现网页时钟,效果如下图所示: 首先在body中完成表盘、指针的资源载入: <div><img src="../../image/cl...
    99+
    2024-04-02
  • 利用JavaScript实现简单的网页时钟
    目录一、效果展示二、使用的技术三、日期对象1.指定时间2.获取目前时间三、源代码前言: 今天带大家使用JavaScript定制一款网页时钟 一、效果展示 二、使用的技术 主要使用了...
    99+
    2024-04-02
  • 怎么用javascript实现单选表单
    这篇文章主要介绍“怎么用javascript实现单选表单”,在日常操作中,相信很多人在怎么用javascript实现单选表单问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么...
    99+
    2024-04-02
  • JavaScript 简单实现观察者模式和发布-订阅模式
    JavaScript 简单实现观察者模式和发布-订阅模式 1. 观察者模式1.1 什么是观察者模式1.2 代码实现 2. 发布-订阅模式2.1 什么是发布-订阅模式2.2 代码实现2.2.1 基础版2.2.2 取消订阅2.2.3...
    99+
    2023-08-21
    javascript 设计模式
  • JavaScript实现简单的拖拽效果
    本文实例为大家分享了JavaScript实现简单的拖拽效果的具体代码,供大家参考,具体内容如下 1.先搭架子: * { margin: 0; ...
    99+
    2024-04-02
  • javascript如何实现简单链式调用
    小编给大家分享一下javascript如何实现简单链式调用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体如下:jQuery用...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作