旁枝末梢(我好像稍微理解了mvc和mvvm)

#### CDNvue

> 因爲服務器負荷或者傳輸距離等緣由,咱們訪問某一個網站會很慢,這時候一個緩存機制的存在就顯得很重要了緩存

> CDN的全稱是Content Delivery Network,即內容分發網絡。其目的是經過在現有的Internet中增長一層新的網絡架構,將網站的內容發佈到最接近用戶的網絡"邊緣",使用戶能夠就近取得所需的內容,解決Internet網絡擁塞情況,提升用戶訪問網站的響應速度。服務器

 

 

#### MVC & MVVM網絡

  • MVC:
    • V:view,視圖層,展現UI佈局
    • M:model,數據模型層,管理數據
    • C:controller,控制層,響應用戶操做,並將 Model 更新到 View 上

 對於mvc概念,controller主要用來響應用戶操做,根據用戶的操做來修改model層,並進一步修改view層,即controller直接去修改view層,通常涉及到dom操做架構

  • MVVM:
    • M:model,數據模型層,管理用戶數據
    • V:view,UI視圖層
    • VM:view-model,視圖模型層,鏈接數據層和視圖層

對於mvvm概念,view-model取代mvc中的controller層,讓開發者不用去根據用戶的行爲去操做dom,而是在view和model之間搭建起一個view-model,讓二者相互綁定,對於開發者而言,能夠直接經過對model進行操做從而來改變view(雙向數據綁定)mvc

 

二者的區別在於對於dom操做上,mvc須要開發者主動去操做dom,mvvm不須要,而讓開發者把注意力關注在數據上框架

 

 

vue是典型的mvvm框架,當執行 new Vue() 時,Vue 就進入了初始化階段,一方面Vue 會遍歷 data 選項中的屬性,並用 Object.defineProperty 將它們轉爲 getter/setter,實現數據變化監聽功能;另外一方面,Vue 的指令編譯器Compile 對元素節點的指令進行掃描和解析,初始化視圖,並訂閱Watcher 來更新視圖, 此時Wather 會將本身添加到消息訂閱器中(Dep),初始化完畢。當數據發生變化時,Observer 中的 setter 方法被觸發,setter 會當即調用Dep.notify(),Dep 開始遍歷全部的訂閱者,並調用訂閱者的 update 方法,訂閱者收到通知後對視圖進行相應的更新。dom

 

 

 

module.exports && exportsmvvm

  •  module.exports與exports默認都是指向同一個空對象
  • 沒有module.exports的時候,exports在某種意義上是替代了module.exports的一種存在,至關於替身,不過exports功能受到侷限,只能輸出對象類型
  • module.exports存在的時候,exports便會失效,若二者同時存在,exports上定義的對象不會被輸出,而是module.exports上定義的內容被輸出
  • module.exports功能全面,可以輸出各類數據類型

能夠理解爲沒有module.exports的時候,exports能夠代替其行使部分功能(輸出對象類型),若module.exports在的時候,exports便沒有了任何權利佈局

相關文章
相關標籤/搜索