回覆列表
  • 1 # 程式設計師小樊

    Vue透過虛擬DOM技術減少DOM操作。什麼是虛擬DOM?使用js物件模擬DOM,在操作過程中不會直接操作DOM,等待虛擬DOM操作完成,僅僅比較開始和結束狀態虛擬DOM有哪些變換,最終根據結束狀態虛擬DOM去操作DOM。至於虛擬DOM怎麼比較則是採用diff演算法,具體演算法我也不會。不過diff演算法裡有一個很好的措施來減少DOM操作。

    (一)、優先處理特殊場景

    (1)、頭部的同類型節點、尾部的同類型節點

    這類節點更新前後位置沒有發生變化,所以不用移動它們對應的DOM

    (2)、頭尾/尾頭的同類型節點

    這類節點位置很明確,不需要再花心思查詢,直接移動DOM就好

    (二)、“原地複用”

    “原地複用”是指Vue會盡可能複用DOM,儘可能不發生DOM的移動。Vue在判斷更新前後指標是否指向同一個節點,其實不要求它們真實引用同一個DOM節點,實際上它僅判斷指向的是否是同類節點,如果是同類節點,那麼Vue會直接複用DOM,例如透過對換文字內容的方式,這樣的好處是不需要移動DOM。

    2.Vue支援雙向資料繫結

    資料繫結有單向資料繫結和雙向資料繫結。

    什麼是單向資料繫結?

    單向資料繫結即一方面只受另一方面影響,卻無法影響另一方面。前端常說的單向資料繫結一般都指資料影響頁面,而頁面不影響資料。

    什麼是雙向資料繫結?

    雙向的意思即兩個方面相互影響,前端來說,即資料影響頁面,頁面同時影響資料。例如,在 MVVM 框架中,View(檢視) 和 Model(資料) 是不可以直接通訊的,在它們之間存在著 ViewModel 這個中間介充當著觀察者的角色。當用戶操作 View(檢視),ViewModel 感知到變化,然後通知 Model 發生相應改變;反之當 Model(資料) 發生改變,ViewModel 也能感知到變化,使 View 作出相應更新。

    舉個栗子v-model雙向繫結

    以上程式碼將input的value和頁面顯示雙向繫結在一起。其實v-model只是語法糖,雙向繫結其實就等於單向繫結+UI時間監聽,只不過Vue將過程採用黑箱封裝起來了。

    那雙向繫結有什麼好處?

    好處就是方便,資料自動更新。而缺點就是無法得知是哪裡更改了資料。

    3.Vue支援元件化

    元件化的概念

    Web 中的元件其實就是頁面組成的一部分,好比是電腦中的每一個元件(如硬碟、鍵盤、滑鼠),它是一個具有獨立的邏輯和功能或介面,同時又能根據規定的介面規則進行相互融合,變成一個完整的應用,頁面就是有一個個類似這樣的部分組成,比如導航、列表、彈窗、下拉選單等。頁面只不過是這些元件的容器,元件自由組合形成功能完善的介面,當不需要某個元件,或者想要替換某個元件時,可以隨時進行替換和刪除,而不影響整個應用的執行。

    元件化的特性

    高內聚性,組建功能必須是完整的,如我要實現下拉選單功能,那在下拉選單這個元件中,就把下拉選單所需要的所有功能全部實現。

    低耦合度,通俗點說,程式碼獨立不會和專案中的其他程式碼發生衝突。在實際工程中,我們經常會涉及到團隊協作,傳統按照業務線去編寫程式碼的方式,就很容易相互衝突,所以運用元件化方式就可大大避免這種衝突的存在、

    每一個元件都有子集清晰的職責,完整的功能,較低的耦合便於單元測試和重複利用。

    元件化的優點

    1.提高開發效率 2.方便重複使用 3.簡化除錯步驟 4.提升整個專案的可維護性 5.便於協同開發

  • 2 # 雅豬兒

    node.js 主要是後端技術(同PHP、java、.net)沒有什麼區別

    vue.js,屬於前端框架,僅僅是前端框架的一種

    node.js

    (後端)和

    vue.js

    (前端)二者都都是javascript 學會這一種就可以開發一個完整的網站

    開發的時候都是ts語法,

  • 中秋節和大豐收的關聯?
  • 談戀愛有必要欲擒故縱嗎?