淺談Vue入門(mén)需掌握的知識(shí)
Vue作為一款目前最流行的前端框架之一,是許多前端開(kāi)發(fā)工程師的不二選擇。最近我在前端崗位上也運(yùn)用Vue實(shí)現(xiàn)了幾款產(chǎn)品,那么今天來(lái)分享一下Vue是什么,以及我對(duì)Vue的見(jiàn)解。
一、定義
Vue是一套用于構(gòu)建用戶界面的漸進(jìn)式JavaScript框架
與傳統(tǒng)JS和JQuery框架不同,Vue的漸進(jìn)式框架表示開(kāi)發(fā)者可以由簡(jiǎn)單組件寫(xiě)起,漸漸搭建出一個(gè)復(fù)雜的前端平臺(tái)。
形成Vue漸進(jìn)式框架的核心概念為:組件化,MVVM,響應(yīng)式,和生命周期,下面會(huì)一個(gè)個(gè)詳細(xì)介紹。
二、為什么要用Vue?
1. 組件化
Vue將組成一個(gè)頁(yè)面的HTML,CSS和JS合并到一個(gè)組件中,可以被其他組件或頁(yè)面引入而重復(fù)利用。通常每個(gè).Vue文件作為一個(gè)組件導(dǎo)出,組件可以作為基礎(chǔ)組件(如按鈕)或一個(gè)頁(yè)面(如登錄頁(yè)面)。組件化很好的將一個(gè)龐大復(fù)雜的前端工程拆分為一個(gè)個(gè)組件,重復(fù)利用的性質(zhì)也大大提高了開(kāi)發(fā)的效率。

2. MVVM 數(shù)據(jù)雙向綁定
MVVM模式(全稱(chēng)為Model-View-ViewModel)為Vue實(shí)現(xiàn)數(shù)據(jù)雙向綁定。在MVVM中,View為視圖層,ViewModel為業(yè)務(wù)邏輯層,Model為數(shù)據(jù)層。
什么是數(shù)據(jù)雙向綁定呢?當(dāng)用戶使View變化時(shí)(如填寫(xiě)表單),變化會(huì)自動(dòng)同步到ViewModel處理相應(yīng)邏輯,并將變化更新到Model數(shù)據(jù)庫(kù)。反之,若服務(wù)端數(shù)據(jù)變化(如股價(jià)波動(dòng)),變化會(huì)自動(dòng)同步到ViewModel處理相應(yīng)邏輯,并將變化同步到View展現(xiàn)給用戶。
在用Vue之前,我完成HTML和JS之間的交互需要使用大量的DOM操作來(lái)實(shí)現(xiàn)動(dòng)態(tài)加載。MVVM的數(shù)據(jù)雙向綁定減少了DOM操作,更高效地實(shí)現(xiàn)了視圖和數(shù)據(jù)的交互。同時(shí),MVVM使界面、交互和數(shù)據(jù)層分離,便于設(shè)計(jì)人員負(fù)責(zé)設(shè)計(jì)界面,后端開(kāi)發(fā)人員提供數(shù)據(jù)接口,而前端開(kāi)發(fā)人員專(zhuān)注于業(yè)務(wù)交互邏輯的實(shí)現(xiàn)。

3. 響應(yīng)式 虛擬DOM
對(duì)于DOM來(lái)說(shuō),當(dāng)HTML的一個(gè)元素(如div)需要響應(yīng)數(shù)據(jù)更改時(shí),會(huì)刷新整個(gè)頁(yè)面,導(dǎo)致效率堪憂。對(duì)于虛擬DOM,瀏覽器會(huì)將HTML文件轉(zhuǎn)換為JS文件并復(fù)制一個(gè)額外使用(虛擬)。對(duì)于任何更改,虛擬DOM都將復(fù)制的JS與原始JS進(jìn)行比較,只重新加載更改的部分,局部修改到真實(shí)DOM上。
在Vue中,每個(gè)綁定data屬性的組件都有一個(gè)Watcher檢測(cè)data屬性的變化。一旦檢測(cè)到改變,則重新渲染該組件,這就是響應(yīng)式。

4. 生命周期
最后,每個(gè)Vue組件都有生命周期,過(guò)程為創(chuàng)建 -> 掛載 -> 更新 -> 銷(xiāo)毀。開(kāi)發(fā)者可以通過(guò)鉤子函數(shù)(如mounted)在組件生命周期中的不同時(shí)刻進(jìn)行操作。下面是一張Vue生命周期的完整圖解。

三、Vue的優(yōu)缺點(diǎn)
講完Vue的幾個(gè)核心概念后,總結(jié)一下使用Vue框架給前端開(kāi)發(fā)帶來(lái)的優(yōu)缺點(diǎn):
優(yōu)點(diǎn)
1. 輕量級(jí)
Vue作為一款輕量級(jí)前端框架,大小只有18–21KB,工程搭建簡(jiǎn)單,只需要幾行命令符。因?yàn)閂ue使用的主體語(yǔ)言為JS,開(kāi)發(fā)者可以靈活地將其他框架(如React和Angular)的項(xiàng)目遷移到Vue,具有很高的集成能力。Vue提供的router路由可以便捷地搭建一個(gè)多界面應(yīng)用。
2. 高性能
虛擬DOM和響應(yīng)式避免了不必要的全局重新渲染,提升了用戶體驗(yàn),使用戶操作更加流暢。
3. 好上手
與面向?qū)ο缶幊绦再|(zhì)類(lèi)似,組件化更符合人類(lèi)思維。打個(gè)比方,我們?cè)谠O(shè)計(jì)網(wǎng)頁(yè)時(shí),通常會(huì)把一個(gè)界面分成一塊一塊的、用于某功能的特定樣式模塊。Vue的組件化使前端開(kāi)發(fā)更加容易理解,同時(shí)MVVM可以更便捷地實(shí)現(xiàn)交互,對(duì)新手十分友好。
4. 插件化
由于Vue框架的流行性,目前有許多基于Vue的npm擴(kuò)展包和開(kāi)發(fā)工具(如Vuex)。Vue可以在一個(gè)文件下統(tǒng)一管理所有外部插件的全局使用。
5. 便于測(cè)試
組件化利于開(kāi)發(fā)者對(duì)于單一組件進(jìn)行測(cè)試,很少發(fā)生在整個(gè)頁(yè)面下找不到是哪個(gè)地方報(bào)錯(cuò)的情況。

缺點(diǎn)
1. 生態(tài)環(huán)境不夠完善
雖然Vue五年以來(lái)的發(fā)展尋索,生態(tài)環(huán)境不如React和Angular規(guī)范。Vue開(kāi)發(fā)的討論社區(qū)較小。
2. 國(guó)外市場(chǎng)小
Vue是由中國(guó)尤大神開(kāi)發(fā)的,主要有阿里巴巴、餓了么等國(guó)內(nèi)大公司作為主流框架,國(guó)外大部分使用React和Angular。
以上就是淺談Vue簡(jiǎn)易入門(mén)知識(shí)的詳細(xì)內(nèi)容,更多關(guān)于vue入門(mén)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
uniapp定義new plus.nativeObj.View實(shí)現(xiàn)APP端全局彈窗功能
文章介紹了在UniApp中使用`newplus.nativeObj.View`實(shí)現(xiàn)彈窗的原因和方法,它定義了一個(gè)`AppPopupView`彈窗函數(shù),并在`main.js`中掛載到全局頁(yè)面,以便在任何地方調(diào)用,感興趣的朋友跟隨小編一起看看吧2024-11-11
淺談Vue render函數(shù)在ElementUi中的應(yīng)用
今天小編就為大家分享一篇淺談Vue render函數(shù)在ElementUi中的應(yīng)用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-09-09
Vue組件庫(kù)ElementUI實(shí)現(xiàn)表格加載樹(shù)形數(shù)據(jù)教程
這篇文章主要為大家詳細(xì)介紹了Vue組件庫(kù)ElementUI實(shí)現(xiàn)表格加載樹(shù)形數(shù)據(jù)教程,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06
vue+webpack實(shí)現(xiàn)異步組件加載的方法
下面小編就為大家分享一篇vue+webpack實(shí)現(xiàn)異步組件加載的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-02-02
vue?element-plus中el-input修改邊框border的方法
element樣式還是蠻好的,只是有時(shí)候我們需要做一些調(diào)整,比如el-input的邊框,下面這篇文章主要給大家介紹了關(guān)于vue?element-plus中el-input修改邊框border的相關(guān)資料,需要的朋友可以參考下2022-09-09

