首頁技術(shù)文章正文

Vue.js框架是什么,為什么選擇它?

更新時間:2017-11-20 來源:黑馬程序員 瀏覽量:

“大白話,講編程”系列又回來了,這個系列我們一起學(xué)習(xí)的是Vue.js基礎(chǔ)知識。你沒看錯,是基礎(chǔ)知識。所以,哪怕你入行不久,相信你在的大白話風(fēng)格下,也能學(xué)會。


但還是希望你有開發(fā)過html,css,javascript的項目經(jīng)驗,如果你連一點項目經(jīng)驗都沒有,亦或者你早已掌握Vue.js的知識,那么這個系列不適合你當(dāng)前的學(xué)習(xí)階段。


1、學(xué)習(xí)目標(biāo)


通過這一節(jié),你會學(xué)會:


(1)目前前端技術(shù)使用的趨勢

(2)什么是MVVM

(3)Vue.js的優(yōu)點

(4)Vue.js的兩大核心

(5)Vue.js的適用場景


2、誕生背景


近幾年來,得益于手機設(shè)備的普及和性能的提升,移動端的web需求大量增加,產(chǎn)生了一種叫webapp的東西,也就是移動端的網(wǎng)頁應(yīng)用。


它們功能越來越復(fù)雜,交互也越來越酷炫,功能與效果越來越接近于原生的APP。比如下面這些:


1574389311255_Vue.js框架1.jpg

這種webapp它們不僅僅像h5營銷網(wǎng)頁一樣有酷炫的效果,它們還有復(fù)雜的點擊、輸入、下拉選擇,視圖切換等復(fù)雜的交互。在這樣的業(yè)務(wù)需求下,我們還是沿用PC端的開發(fā)方案,難免會不太合適。比如:視圖切換。


在PC端,視圖切換我們會用標(biāo)簽進(jìn)行頁面的跳轉(zhuǎn),但如果在移動端,那就歇菜了,你會遇到這樣的畫面:


1574389329079_Vue.js框架2.jpg

(等到花兒都謝了)


這個時候用戶只能等.....3秒,5秒,8秒.......很難想象,在一個需要頻繁切換視圖的webapp里面,使用標(biāo)簽去實現(xiàn),對用戶來說是很不友好的,換你你也不愿意等那么久,反正我是不愿意了....


此外,接收用戶輸入的同時,很可能要及時更新視圖,比如用戶輸入不同的內(nèi)容,頁面就會相對應(yīng)進(jìn)行更新,點擊不同的選項,就會顯示不同的狀態(tài)等等交互效果。一旦這種交互多了,你要手動地進(jìn)行操作,代碼就容易變得復(fù)雜和難以維護(hù)。


為了解決webapp這些的體驗和開發(fā)上的不足,我們決定學(xué)習(xí)并使用一個MVVM框架——Vue.js


undefined

3、什么是MVVM


MVVM可以拆分成:View --- ViewModel --- Model三部分 ,看下面的視圖:


1574389426310_Vue.js框架4.jpg

那么,我們怎么理解MVVM呢?


上圖中,左側(cè)的View相當(dāng)于我們的DOM內(nèi)容,我們所看到的頁面視圖,右側(cè)的Model相當(dāng)于我們的數(shù)據(jù)對象,比如一個對象的信息:


1574389437124_Vue.js框架5.jpg

而中間的監(jiān)控者就負(fù)責(zé)監(jiān)控兩側(cè)的數(shù)據(jù),并相對應(yīng)地通知另一側(cè)進(jìn)行修改。比如:你在Model層中修改了name的值為:“李四”,那么View視圖層顯示的“張三”也會自動變成了“李四”,而這個過程就是有ViewModel來操作的,不需要你手動地去寫代碼去實現(xiàn)(你不用再手動操作DOM了)。


如果你寫過復(fù)雜的DOM操作,你就可以感受到它帶來的便利。


這就是MVVM框架,屬于MVVM的JS框架除了Vue.js,還有React.js,Angular.js。


這里我們不去分析具體這3個框架哪個更好,關(guān)于技術(shù)選型,每個開發(fā)團(tuán)隊的情況都不一樣,考慮的因素也不一樣,只要合適自己就好。這里我們只說一下Vue.js的優(yōu)點:


(1)Vue.js更輕量更快

(2)更容易上手,易學(xué)


1574389452999_Vue.js框架6.jpg

4、Vue的核心


鋪墊了這么多,終于講到了Vue的核心。


那么,我們就來認(rèn)識一下Vue.js,這里摘取一段官網(wǎng)對它的介紹:


通過盡可能簡單的 API 實現(xiàn)響應(yīng)的數(shù)據(jù)綁定和組合的視圖組件


這句話有兩個關(guān)鍵詞:數(shù)據(jù)綁定 和 視圖組件。


Vue的數(shù)據(jù)驅(qū)動:數(shù)據(jù)改變驅(qū)動了視圖的自動更新,傳統(tǒng)的做法你得手動改變DOM來改變視圖,vuejs只需要改變數(shù)據(jù),就會自動改變視圖,一個字:爽。再也不用你去操心DOM的更新了,這就是MVVM思想的實現(xiàn)。


視圖組件化:把整一個網(wǎng)頁的拆分成一個個區(qū)塊,每個區(qū)塊我們可以看作成一個組件。網(wǎng)頁由多個組件拼接或者嵌套組成??聪聢D:


1574389467405_Vue.js框架7.jpg

具體在開發(fā)過程中怎樣實現(xiàn)一個組件,到底哪些區(qū)塊可以劃分成一個組件,后面的章節(jié)我們再一一介紹,這里你只需要知道,在Vue.js中,網(wǎng)頁是可以看成多個組件組成的即可。


5、適用場景


如果你還在用jquery頻繁操作你的DOM來更新頁面的話,那么,你可以用Vue.js來解放你的DOM操作了。


如果你的項目中有多個部分是相同的,并可以封裝成一個組件,那么,你可以試試用Vue.js。


此外,Vue.js的核心實現(xiàn)中使用了ES5的Object.defineProperty特性,IE8及以下版本瀏覽器是不兼容的,所以,你的項目需要兼容這些較低版本的瀏覽器的話,那么,Vue.js就不適用了。


畢竟,開發(fā)一個項目的目的不是為了使用某個框架。


6、本節(jié)小結(jié)


為了更好滿足當(dāng)前移動webapp項目的開發(fā)需求,MVVM框架誕生,而Vue.js便是這樣的一種js框架,其兩大核心:數(shù)據(jù)驅(qū)動和組件化。


本文版權(quán)歸黑馬程序員前端與移動開發(fā)學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明作者出處。謝謝!


猜你喜歡
黑馬程序員web前端課程
Vue.js黑馬程序員入門視頻教程

vue中v-model詳解


分享到:
在線咨詢 我要報名
和我們在線交談!