近年來前端開發趨勢
1.舊瀏覽器逐漸淘汰,移動端需求增加
2.前端交互越來越多,功能越來越復雜
現如今,前端可謂是包羅萬象,產品形態五花八門,涉獵極廣。高大上的技術庫和框架,酷炫的運營活動頁面和好玩的H5小游戲,不過這些一兩個文件的小項目並非是前端技術的主要應用場景,更具商業價值的是復雜的web應用,它們功能完善,頁面繁多,為用戶提供了完整的產品體驗,例如新聞趣味站,在線購物平台, 社交網絡,金融信貸應用,音樂互動社區,視頻分享平台,打車出行平台等等,這些網站和平台的共同特點就是交互多,功能復雜。
3.架構從傳統的后台MVC向REST API+前端MV*遷移
傳統的后台MVC方式,是當前端與后端發生一些數據交互的時候,會刷新整個頁面,這樣的用戶體驗是非常差的,因此,我們通過ajax的方式,和后端REST API做通信,異步刷新頁面的某個區塊,來優化和提升體驗,同時把MV*拿到前端來做。
MVVM框架
MVVM框架主要包括三個部分Model、View和ViewModel,Model指的是數據部分,對應到前端就是一些Javascript對象,View指的視圖部分,對應到前端就是DOM,ViewModel就是連接數據和視圖的中間件,在MVVM的框架下視圖和數據是不能直接通信的,它們通過ViewModel來通信,ViewModel通常要實現一個observer觀察者,當數據發生變化,ViewModel能夠監聽到數據的這種變化,然后通知到對應的視圖做自動更新,而當用戶操作視圖,ViewModel也能監聽到視圖的變化,然后通知數據做改動,這實際上就實現了數據的雙向綁定。以上便是MVVM的一些基本概念。
MVVM框架的主要應用場景
1)針對具有復雜交互邏輯的前端應用
2)提供基礎的架構抽象
3)通過Ajax數據持久化,保證前端用戶體驗
好處就是當前后端進行一些數據交互的時候,前端可以通過Ajax請求對后端做數據持久化,不需要刷新整個頁面,只需要改動DOM里需要改動的那部分數據和內容,特別是對於移動端應用場景,刷新頁面的代價太昂貴,會重新加載很多資源,雖然有些資源會被緩存,但是頁面的DOM、JS、CSS都會被瀏覽器重新解析一遍,因此,移動端頁面經常會做成SPA單頁應用,在這個基礎上就誕生了很多MVVM框架,如Angular、React、Vue
Vue.js的核心思想
Vue.js的核心思想包括兩個方面:數據驅動和組件化
數據驅動:DOM是數據的一種自然映射,在vue.js中只需要操作數據,vue.js通過directives指令去對DOM做一層封裝,當數據發生變化,會通知指令去修改對應的DOM,數據驅動DOM變化,DOM是數據的一種自然映射,vue.js還會對操作做一些監聽,當我們修改視圖的時候,vue.js監聽到這些變化,從而去改變數據,這樣就實現了數據的雙向綁定。
組件化的目的是擴展HTML元素,封裝可重用的代碼
組件設計原則:
1)頁面上每個獨立的可視/可交互區域視為一個組件,
2)每個組件對應一個工程目錄,組件所需要的各種資源在這個目錄下就近維護,
3)頁面不過是組件的容器,組件可以嵌套自由組合形成完整的頁面。