MVC淺析

一、MVC 三個(gè)對象分別做什么

MVC就是:model(模型)、view(視圖)、controller(控制器)的合并稱呼。
M:主要是用于負(fù)責(zé)數(shù)據(jù)相關(guān)的任務(wù)。
V:負(fù)責(zé)用戶界面
C:負(fù)責(zé)監(jiān)聽用戶事件,然后調(diào)用 M 和 V 更新數(shù)據(jù)和視圖

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

const v = {
 el:頁面元素
 html:{ 顯示頁面的內(nèi)容 },
 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 可以滿足最小知識(shí)原則,讓作用的組件即使互相不知道對方的細(xì)節(jié),但是卻可以調(diào)用對方的功能。

我們常使用到的API:
//on(監(jiān)聽)
const eventBus = $(window)
evnetBus.on("監(jiān)聽事件",() => {})
//trigger(觸發(fā)事件)
const eventBus = $(window)
eventBus.trigger("事件")
//off(取消監(jiān)聽)
const eventBus = $(window)
eventBus.off("監(jiān)聽事件")

三、表驅(qū)動(dòng)編程是做什么的

表驅(qū)動(dòng)是一種在編程中的方法,讓我們可以從哈希表里查找信息而不使用邏輯語句來進(jìn)行查找,因?yàn)樵谶壿嫼唵螘r(shí),使用邏輯語句既簡單又代碼量又小,但是一旦邏輯復(fù)雜起來,邏輯語句就會(huì)導(dǎo)致代碼冗長,此時(shí)我們就可以使用表驅(qū)動(dòng)編程。
在MVC優(yōu)化代碼過程中,我們提取出了一個(gè)“哈希表”(events);我們只留下了需要的、不能再簡略的東西:doSomething。

例如:
const controller = {
    init() {
        ...
        //我們將之稱為自動(dòng)綁定事件
        controller.autoBindEvents()
    },
    //事件
    events: {
        'click #a1': 'method_1',
        'click #a1': 'method_1',
        ...
        'click #a1': 'method_n'
    },
    autoBindEvents() {
        //實(shí)現(xiàn)過程,比如遍歷
        for (let key in controller.events)
        //比如將包含'事件 選擇器'的字符串分為幾個(gè)部分,放到不同的變量中
    },
    method_1() {
        doSomething_a1
    },
    method_2() {
        doSomething_a2
    },
    ...
    method_n() {
        doSomething_an
    }
}

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

模塊化的本質(zhì)其實(shí)就是幫助我們優(yōu)化代碼而產(chǎn)生的,像是一種歸納的方法,將原本零散的節(jié)點(diǎn),結(jié)構(gòu)分成不同模塊,這些模塊不僅相互獨(dú)立、互不影響,又可以重復(fù)使用。借此來降低代碼耦合度,減少重復(fù)代碼,讓代碼結(jié)構(gòu)更加清晰整潔,便于維護(hù)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 定義 Modle是數(shù)據(jù)模型,用于操作數(shù)據(jù),一般結(jié)構(gòu)如下: View是視圖,負(fù)責(zé)所有的UI頁面,一般結(jié)構(gòu)如下; Co...
    鄭饞師閱讀 236評論 0 0
  • 【目錄】 一、MVC 三個(gè)對象分別做什么二、EventBus 有哪些 API,是做什么用的三、表驅(qū)動(dòng)編程是做什么的...
    云卷云舒聽雨聲閱讀 483評論 0 0
  • MVC 三個(gè)對象分別做什么 每個(gè)模塊都可以寫成三個(gè)對象,分別是M、V、C M(Model:數(shù)據(jù)模型): 負(fù)責(zé)操作所...
    默_淰閱讀 153評論 0 0
  • 一、MVC是什么? MVC是一種設(shè)計(jì)模式(那設(shè)計(jì)模式又是什么呢?簡單粗暴的說好用的東西就是設(shè)計(jì)模式),MVC能夠使...
    浪味仙兒啊閱讀 388評論 0 2
  • 一、MVC是什么? MVC是一種設(shè)計(jì)模式(那設(shè)計(jì)模式又是什么呢?簡單粗暴的說好用的東西就是設(shè)計(jì)模式),MVC能夠使...
    2b61575c37fd閱讀 258評論 0 0

友情鏈接更多精彩內(nèi)容