MVC浅析

一、MVC 三个对象分别做什么

MVC就是:model(模型)、view(视图)、controller(控制器)的合并称呼。
M:主要是用于负责数据相关的任务。
V:负责用户界面
C:负责监听用户事件,然后调用 M 和 V 更新数据和视图

示例:
const m = {
   data:null,
   create(){ 增加 },
   delete(){ 删除 },
   get(){ 获得 },
   update(){ 修改 }
};

const v = {
 el:页面元素
 html:{ 显示页面的内容 },
 init(){v.el ... 元素初始化},
 render(){ 重新渲染 }
};

const c = {
    view: null,
    model: null,
    init(view, model){
        this.view = view
        this.model = model
        this.bindEvents()
    }
    render(){
        this.view.querySelector('name').innerText = this.model.data.name
    },
    bindEvents(){}
}

二、EventBus 有哪些 API,是做什么用的?

eventBus 主要用于简化对象间的通信。 使用 eventBus 可以满足最小知识原则,让作用的组件即使互相不知道对方的细节,但是却可以调用对方的功能。

我们常使用到的API:
//on(监听)
const eventBus = $(window)
evnetBus.on("监听事件",() => {})
//trigger(触发事件)
const eventBus = $(window)
eventBus.trigger("事件")
//off(取消监听)
const eventBus = $(window)
eventBus.off("监听事件")

三、表驱动编程是做什么的

表驱动是一种在编程中的方法,让我们可以从哈希表里查找信息而不使用逻辑语句来进行查找,因为在逻辑简单时,使用逻辑语句既简单又代码量又小,但是一旦逻辑复杂起来,逻辑语句就会导致代码冗长,此时我们就可以使用表驱动编程。
在MVC优化代码过程中,我们提取出了一个“哈希表”(events);我们只留下了需要的、不能再简略的东西:doSomething。

例如:
const controller = {
    init() {
        ...
        //我们将之称为自动绑定事件
        controller.autoBindEvents()
    },
    //事件
    events: {
        'click #a1': 'method_1',
        'click #a1': 'method_1',
        ...
        'click #a1': 'method_n'
    },
    autoBindEvents() {
        //实现过程,比如遍历
        for (let key in controller.events)
        //比如将包含'事件 选择器'的字符串分为几个部分,放到不同的变量中
    },
    method_1() {
        doSomething_a1
    },
    method_2() {
        doSomething_a2
    },
    ...
    method_n() {
        doSomething_an
    }
}

四、我是如何理解模块化的

模块化的本质其实就是帮助我们优化代码而产生的,像是一种归纳的方法,将原本零散的节点,结构分成不同模块,这些模块不仅相互独立、互不影响,又可以重复使用。借此来降低代码耦合度,减少重复代码,让代码结构更加清晰整洁,便于维护。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 定义 Modle是数据模型,用于操作数据,一般结构如下: View是视图,负责所有的UI页面,一般结构如下; Co...
    郑馋师阅读 1,589评论 0 0
  • 【目录】 一、MVC 三个对象分别做什么二、EventBus 有哪些 API,是做什么用的三、表驱动编程是做什么的...
    云卷云舒听雨声阅读 3,214评论 0 0
  • MVC 三个对象分别做什么 每个模块都可以写成三个对象,分别是M、V、C M(Model:数据模型): 负责操作所...
    默_淰阅读 1,216评论 0 0
  • 一、MVC是什么? MVC是一种设计模式(那设计模式又是什么呢?简单粗暴的说好用的东西就是设计模式),MVC能够使...
    浪味仙儿啊阅读 2,744评论 0 2
  • 一、MVC是什么? MVC是一种设计模式(那设计模式又是什么呢?简单粗暴的说好用的东西就是设计模式),MVC能够使...
    2b61575c37fd阅读 1,688评论 0 0

友情链接更多精彩内容