MVC浅析

作者: Sharp丶TJ | 来源:发表于2022-03-14 17:43 被阅读0次

    一、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
        }
    }
    
    

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

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

    相关文章

      网友评论

          本文标题:MVC浅析

          本文链接:https://www.haomeiwen.com/subject/zhksdrtx.html