摘要:中間的一層,就是控制層,它負(fù)責(zé)根據(jù)用戶從視圖層輸入的指令,選取數(shù)據(jù)層中的數(shù)據(jù),然后對其進(jìn)行相應(yīng)的操作,產(chǎn)生最終結(jié)果。這三層之間緊密聯(lián)系,又互相獨立,每層內(nèi)部的變化不影響其他層。用做簡歷學(xué)習(xí)了思想后,用思想做了簡歷的留言板。
模塊化
什么是模塊化?就是把一個東西分成幾個塊(模塊),塊與塊之間互相獨立。
在臺式機(jī)時代,很多人都自己主裝過電腦,選購自己喜歡的顯示器,鼠標(biāo),鍵盤,主機(jī),配備性能強(qiáng)勁的cpu、顯卡、內(nèi)存等主成最強(qiáng)配置,這些單個物體都是模塊,互相獨立,可以根據(jù)自己的愛好選擇。
模塊化主要解決合作問題
自己與自己合作
自己與以前的自己合作
自己與別人合作
MVCMVC 是一種代碼組織形式,他不是任何一種框架,也不是任何一種技術(shù),它就是一種組織代碼的思想,我們要做到事情就是把 M 和 V 傳給 C,C 負(fù)責(zé)初始化 M,然后對 V 進(jìn)行操作。
畫成圖就是這樣:
MVC具體是什么呢?阮一峰老師給了我們很好的解答:
1)最上面的一層,是直接面向最終用戶的"視圖層"(View)。它是提供給用戶的操作界面,是程序的外殼。2)最底下的一層,是核心的"數(shù)據(jù)層"(Model),也就是程序需要操作的數(shù)據(jù)或信息。
3)中間的一層,就是"控制層"(Controller),它負(fù)責(zé)根據(jù)用戶從"視圖層"輸入的指令,選取"數(shù)據(jù)層"中的數(shù)據(jù),然后對其進(jìn)行相應(yīng)的操作,產(chǎn)生最終結(jié)果。
這三層之間緊密聯(lián)系,又互相獨立,每層內(nèi)部的變化不影響其他層。
用 MVC 做簡歷學(xué)習(xí)了 MVC 思想后,用 MVC 思想做了簡歷的留言板。
我沒有自己買服務(wù)器,用了線上免費的服務(wù)器——leancloud,具體的使用方法可以看它的使用文檔,這里就不在贅述了。
先上圖,靜態(tài)頁面是仿造網(wǎng)易云音樂做的,做完下來發(fā)現(xiàn)有點丑。
我做這個大概要實現(xiàn)的功能是:
用戶可以留言,必須要輸入用戶名和留言內(nèi)容(留言區(qū)左邊方框本來是頭像,我把它做成輸用戶名的地方)
點擊發(fā)表后,留言會立馬出現(xiàn)在留言墻上
評論條數(shù)實時更新
顯示日期
點贊功能
回復(fù)功能
本想全部用原生 JS 做的,無奈自己水平太次,有些地方使用的 jQuery。
目前做好的功能是1、2、3,剩余三個做了一部分,其中點贊功能在我實踐下來,貌似實現(xiàn)不了,數(shù)據(jù)傳送到后臺,不能累計,所以只做了靜態(tài)的更新,一刷新就沒了。
顯示日期功能,自己對原生 JS 掌握的不好,沒有做成我們常用的日期格式。
回復(fù)功能,今天來不及做了,因為還需要做兩套樣式,一套是回復(fù)時的輸入框,以及上墻后的樣式(這點最后再來做吧)。
今天花時間比較多的地方是動態(tài)創(chuàng)建 DOM 元素,還沒有效果,用原生 JS 真的好難實現(xiàn),我剛開始全部用createElement創(chuàng)建標(biāo)簽,然后在一個個appendChild到頁面中,長長的寫了一坨,還不能復(fù)用,突然就想到自己能不能實現(xiàn)jQuery的html方法,果然很傻很天真,jQuery源代碼看了半天沒看懂。算了,果斷放棄,還是老老實實使用它吧。
MVC 的 V,頁面可視區(qū)域document.querySelector(".messages"),所有操作都是在它內(nèi)部。
MVD 的 M,操作服務(wù)器,獲取和保存數(shù)據(jù),只負(fù)責(zé)操作服務(wù)器,至于返回數(shù)據(jù)的操作統(tǒng)一由 C 完成
初始化 AV 對象 initAV
請求數(shù)據(jù) fetch
保存數(shù)據(jù) save
2 和 3 都是返回 Promise 對象,可以直接在后面進(jìn)行then操作。
MVC 的 C,負(fù)責(zé)監(jiān)聽 V、調(diào)用 M;M 和 V 都在初始化的時候傳遞給 C,C 內(nèi)部不直接操作 M 和 V。
常用的變量
init:初始化變量和各操作
綁定事件:目前只做了留言功能
進(jìn)入頁面后,加載留言
留言后發(fā)送服務(wù)器,并上墻
用 MVC 思想的,每個模塊里面也都是各個獨立的,每個方法只做該部分該做的事情,這次我做的不是很好,還是有很多混在了一起。
C 部分除了上面講的的 DOM 操作外,還有兩個比較費時的地方。
第一個是,我需要的數(shù)據(jù)是用戶名,留言內(nèi)容和時間,這三個數(shù)據(jù)放在了兩個屬性里面,如果我要自己實現(xiàn)動態(tài)創(chuàng)建 DOM 的話,這數(shù)據(jù)很難拿到,需要反復(fù)的遍歷后臺返回的對象,這就會造成新能很差。后來想到了一種方法——把他們以對象的形式分別push到數(shù)組,出現(xiàn)了一個問題,數(shù)組的下標(biāo)全是偶數(shù),并不是0,1,2,3,4 這樣排列的,這兩個卡在了一起,后來用了 jQuery 之后配合 ES6 語法,很輕松就搞定了(偷懶了)。
第二個是留言上墻時,留言總數(shù)實時更新,數(shù)據(jù)拿到之后,怎么弄都不能加1,老當(dāng)成字符串解析,但用 typeof 檢測返回的又是 number ,搞的頭都暈,試到最后才想起parseInt,我艸,好了,我的天。typeof 果然是個大坑。
總之今天收貨挺大的,發(fā)現(xiàn)自己有好多問題,主要兩點:代碼思路不清晰,出錯了會卡很久;做之前沒考慮全,做到最后才發(fā)現(xiàn)最關(guān)鍵的數(shù)據(jù)拿不到,白白浪費時間。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/108332.html
摘要:前提好幾周沒更新博客了,對不斷支持我博客的童鞋們說聲抱歉了。熟悉我的人都知道我寫博客的時間比較早,而且堅持的時間也比較久,一直到現(xiàn)在也是一直保持著更新狀態(tài)。 showImg(https://segmentfault.com/img/remote/1460000014076586?w=1920&h=1080); 前提 好幾周沒更新博客了,對不斷支持我博客的童鞋們說聲:抱歉了!。自己這段時...
摘要:需求根據(jù)客戶端環(huán)境,界面顯示不同的國旗圖案。選擇的技術(shù)方案可利用提供的國際化和主題定制來解決。注意此時返回的中沒有國際化及主題相關(guān)的信息。修改請求參數(shù)的值為荷蘭,即后再發(fā)起請求,結(jié)果如下與預(yù)期一致,測試通過。 概述 以上分析了Spring MVC的LocaleResolver和ThemeResolver兩個策略解析器,在實際項目中很少使用,尤其是ThemeResolver,花精力去分析...
摘要:模式的核心是為了將模型從視圖控制器中分離出來,從而使得模型獨立于它們,因此模型不包含對視圖和控制的引用。 寫在最前面的那些話 相信對于大多數(shù)小白來說,關(guān)于MVP、MVC設(shè)計模式肯定是聽過也看到過很多次了,也許也有過一些簡單了解,但關(guān)于TA的具體概念,如何使用以及具體應(yīng)用等都毫無所知,所以本著許多小伙伴一看到mvp、mvc就一臉懵逼的表情(當(dāng)然也包括本人了⊙▽⊙)#),最近上手一個基于m...
摘要:前后經(jīng)過九個月,我翻譯的官方版本中文文檔可以發(fā)布第一個較為完整的版本了。這點原本是最重要的,但讓位于符合中文習(xí)慣,是因為如果譯本有機(jī)翻痕跡,給人的品質(zhì)感和可信度就降低了更準(zhǔn)確和更優(yōu)雅的翻譯風(fēng)格。 showImg(/img/remote/1460000006773992); 前后經(jīng)過九個月,我翻譯的Spring MVC官方4.2.4版本中文文檔可以發(fā)布第一個較為完整的版本了。譯文上盡量做...
摘要:內(nèi)容包括翻譯環(huán)境搭建項目管理與自動化構(gòu)建三部分。博客首頁聲明官方文檔翻譯稿發(fā)布托管在七牛上的翻譯文檔倉庫環(huán)境搭建翻譯與寫作一樣,首要之事均為專注于翻譯寫作本身,而不考慮樣式等方面。安裝完成后,運行即可在啟動一個本地的。 感興趣的同學(xué)可以關(guān)注這個翻譯項目 、 我的博客原文 和 我的Github showImg(/img/remote/1460000006776466); 前段時間翻譯的S...
閱讀 3734·2021-10-14 09:43
閱讀 3320·2021-08-25 09:38
閱讀 616·2019-08-30 15:55
閱讀 1355·2019-08-30 13:05
閱讀 2248·2019-08-29 16:05
閱讀 513·2019-08-29 12:58
閱讀 2801·2019-08-29 12:34
閱讀 3249·2019-08-26 12:15