少妇精品久久久一区二区三区,色哟哟亚洲精品一区二区,亚洲男人天堂九九视频,都市激情国产精品

全美商學(xué)院
新聞
新聞

成都小程序設(shè)計(jì)的前端開(kāi)發(fā)Vue從React和Angular得到什么好處?

2021
04/16
16:04
全美網(wǎng)絡(luò)官網(wǎng)
分享

在過(guò)去的十年中,由于有了JavaScript,網(wǎng)頁(yè)已變得動(dòng)態(tài)和強(qiáng)大。成都小程序設(shè)計(jì)已經(jīng)將更多代碼從服務(wù)器端移到了瀏覽器,這使我們的代碼變得混亂。這就是JavaScript開(kāi)發(fā)人員開(kāi)始使用Angular和React之類的JavaScript框架的原因。

vue

Angular和React非常流行,盡管也出現(xiàn)了許多新的前端JavaScript框架。一個(gè)迅速流行的新貴是Vue.js。根據(jù)NPM軟件包管理器報(bào)告的下載趨勢(shì),截至2018年2月,Vue略落后于Angular。

Vue易于學(xué)習(xí),因此您可以立即開(kāi)始構(gòu)建第一個(gè)應(yīng)用程序。Vue采用了React和Angular的最佳概念,使其簡(jiǎn)潔,簡(jiǎn)潔,并讓開(kāi)發(fā)人員專注于完成工作。

Vue繼承了React和Angular的那些概念是什么,它們有助于解決什么問(wèn)題?

我們將立即發(fā)現(xiàn)答案。

漸進(jìn)式Vue

Vue是一個(gè)用于構(gòu)建用戶界面的漸進(jìn)框架。這意味著,如果您有現(xiàn)有的服務(wù)器端應(yīng)用程序,則可以將Vue僅插入應(yīng)用程序中需要更多生產(chǎn)性和交互式體驗(yàn)的特定部分。

與其他整體框架不同,Vue從頭開(kāi)始設(shè)計(jì)以逐漸采用。

Vue是一種平易近人,功能強(qiáng)大且性能卓越的JavaScript框架,可幫助您創(chuàng)建可維護(hù)的代碼庫(kù)。到目前為止,一些開(kāi)發(fā)人員認(rèn)為這是對(duì)JavaScript的最重大更改。

它的核心庫(kù)僅集中在視圖層,并且易于拾取并與其他庫(kù)或現(xiàn)有項(xiàng)目集成。但是,它還完全能夠?yàn)閺?fù)雜的單頁(yè)應(yīng)用程序(SPA)提供支持,并提供現(xiàn)代工具和支持庫(kù)。

Vue的最大好處是沒(méi)有血統(tǒng)書。它是新鮮的,幾乎沒(méi)有行李。它是從React和Angular的錯(cuò)誤和成功中學(xué)到的。

Vue從React和Angular繼承了什么

Angular是一個(gè)包含其工具和最佳實(shí)踐的完整框架。反過(guò)來(lái),React則是一個(gè)庫(kù)。盡管如此,兩者都有各自的長(zhǎng)處,這是Vue最好的繼承自React和Angular的東西。

基于組件的模型

React和Angular都有基于組件的模型,而Vue繼承了這一重要概念。

基于組件的模型是一種抽象,使您可以構(gòu)建由小型,自包含且經(jīng)常可重復(fù)使用的組件組成的大規(guī)模應(yīng)用程序:標(biāo)題,導(dǎo)航欄,主布局,側(cè)邊欄,頁(yè)腳等。

使用多個(gè)獨(dú)立組件是構(gòu)建SPA的正確方法。該概念為前端開(kāi)發(fā)人員提供了一組可擴(kuò)展的,建立良好的和可重用的組件,并有助于加快開(kāi)發(fā)速度。

過(guò)渡與動(dòng)畫

動(dòng)畫是2010年代后期的王者。與廣告牌如何從靜態(tài)變?yōu)閯?dòng)畫一樣,網(wǎng)站和應(yīng)用程序也正在變得動(dòng)畫化。

React和Angular都有內(nèi)置的動(dòng)畫解決方案,并通過(guò)功能性的動(dòng)畫組件增強(qiáng)Vue的功能。

AngularJS中的動(dòng)畫完全基于CSS類,并通過(guò)ngAnimate模塊實(shí)現(xiàn)。只要您在應(yīng)用程序中的HTML元素上附加了CSS類,就可以對(duì)其應(yīng)用動(dòng)畫。

至于React,它有一個(gè)受ngAnimate啟發(fā)的動(dòng)畫高級(jí)API (ReactCSSTransitionGroup)。

Vue允許您執(zhí)行單個(gè)組件動(dòng)畫,列出動(dòng)畫,初始渲染時(shí)的過(guò)渡,元素和組件之間的過(guò)渡以及動(dòng)態(tài)過(guò)渡。

使用Vue,您可以與觀察者一起創(chuàng)建狀態(tài)轉(zhuǎn)換,以動(dòng)畫化數(shù)字和計(jì)算,顏色,SVG節(jié)點(diǎn)的位置,大小以及元素的其他屬性。Vue允許您使用第三方庫(kù),反應(yīng)性和組件系統(tǒng)將這些狀態(tài)更改動(dòng)畫化為補(bǔ)間狀態(tài)。

Vue及其過(guò)渡包裝器組件中語(yǔ)法的簡(jiǎn)單性使您可以在任何元素或組件上執(zhí)行過(guò)渡。

實(shí)施方法如下:

現(xiàn)成組件的可用性有助于減少代碼量,使模板更易于閱讀,并簡(jiǎn)化您的生活。

服務(wù)器端渲染

JavaScript框架在客戶端呈現(xiàn)頁(yè)面。但是,也可以在服務(wù)器上將相同的組件呈現(xiàn)為HTML,然后將它們直接發(fā)送到瀏覽器。

服務(wù)器端渲染是在客戶端上構(gòu)建應(yīng)用程序的一種方法。簡(jiǎn)而言之,服務(wù)器端渲染有助于在屏幕上顯示信息。默認(rèn)情況下,Vue組件在瀏覽器中構(gòu)建和處理DOM。但是,您也可以在服務(wù)器上通過(guò)HTML呈現(xiàn)相同的組件,將它們發(fā)送到瀏覽器,并將靜態(tài)標(biāo)記“添加”到交互式客戶端應(yīng)用程序中。

服務(wù)器端渲染旨在在屏幕上顯示信息。它通過(guò)將服務(wù)器中的HTML文件轉(zhuǎn)換為瀏覽器的可用信息來(lái)工作。這種方法還使搜尋器可以接收完整的網(wǎng)站內(nèi)容,從而使搜索引擎更容易分析和索引您的網(wǎng)站。

從本質(zhì)上講,服務(wù)器端渲染對(duì)SEO很有好處。確保在社交網(wǎng)絡(luò)上共享內(nèi)容;改善用戶體驗(yàn),縮短發(fā)布時(shí)間和提高性能;并且可以處理高流量。

這三個(gè)框架(React,Angular和Vue)都有庫(kù)來(lái)幫助服務(wù)器端渲染。對(duì)于React,有內(nèi)置的ReactDOMServer對(duì)象和Next.js框架,Angular具有Angular Universal,Vue具有Nuxt.js。

Nuxt.js是建立在Vue生態(tài)系統(tǒng)之上的高級(jí)框架。它為編寫通用Vue應(yīng)用程序提供了極為精簡(jiǎn)的開(kāi)發(fā)經(jīng)驗(yàn)。更好的是,您甚至可以將其用作靜態(tài)站點(diǎn)生成器。

本機(jī)渲染

通過(guò)本機(jī)渲染,您可以跨多個(gè)平臺(tái)應(yīng)用對(duì)一個(gè)框架的了解,從而僅使用JavaScript構(gòu)建移動(dòng)應(yīng)用程序。您可以使用React Native在React中構(gòu)建跨平臺(tái)應(yīng)用程序,并相應(yīng)地將Ionic和NativeScript與Angular結(jié)合使用。

在這一方面,Vue與跨平臺(tái)UI框架Weex進(jìn)行了正式合作。Weex允許您從同一代碼庫(kù)為Web(HTML),Android和iOS生成構(gòu)建。

Vue開(kāi)發(fā)人員的另一個(gè)選擇是通過(guò)社區(qū)驅(qū)動(dòng)的插件的NativeScript。

Weex和NativeScript都可以幫助您創(chuàng)建自適應(yīng)的平臺(tái)本地UI,并針對(duì)特定設(shè)備和屏幕進(jìn)行量身定制。

Vue從React繼承了什么

React和Vue非常相似。兩者都是用于創(chuàng)建應(yīng)用程序前端的JavaScript庫(kù)。它們各自的生態(tài)系統(tǒng)使我們能夠輕松地圍繞React和Vue構(gòu)建框架。讓我們看一下從React繼承的使Vue功能強(qiáng)大且高效的組件。

虛擬DOM

React和Vue都有一個(gè)虛擬DOM(文檔對(duì)象模型),可以提高性能。

DOM是樹狀結(jié)構(gòu)文本的抽象。因此,虛擬DOM依次是抽象的抽象。虛擬DOM包含由JavaScript對(duì)象組成的輕量級(jí)樹,這些對(duì)象是DOM樹的輕量級(jí)副本。

如今,DOM樹非常龐大。由于我們?cè)絹?lái)越傾向于SPA,因此我們需要大量修改DOM樹。這就是Vue和React所設(shè)計(jì)的。

他們的虛擬DOM是輕量級(jí)且跨瀏覽器的。這種方法使您可以提高開(kāi)發(fā)速度。在這種情況下,Vue對(duì)虛擬DOM的實(shí)現(xiàn)更加輕巧,這使Vue表現(xiàn)出了更好的性能。

Vue在模板到虛擬DOM的編譯階段應(yīng)用了一些高級(jí)優(yōu)化:

它確定靜態(tài)類的名稱和屬性,以確保它們?cè)诔跏间秩竞蟛粫?huì)發(fā)生變化。

它檢測(cè)沒(méi)有動(dòng)態(tài)綁定的最大靜態(tài)子樹并將其從渲染函數(shù)中選取。因此,在每次重新渲染時(shí),Vue都會(huì)跳過(guò)差異并重新使用相同的虛擬節(jié)點(diǎn)。

渲染功能和JSX支持

在React中,可以使用JSX在渲染函數(shù)中用其UI來(lái)表示響應(yīng)元,JSX是一種在JavaScript中工作的類似于XML的聲明性語(yǔ)法。

JSX的渲染功能具有一些優(yōu)勢(shì)。它們使您可以利用JavaScript的全部功能來(lái)構(gòu)建視圖并為JSX提供廣泛的工具支持:插入,類型檢查,編輯器自動(dòng)完成等。

Vue還具有渲染功能和JSX支持。此外,Vue提供了一種基于常規(guī)HTML的替代語(yǔ)法。使用基于HTML的模板,可以通過(guò)減少學(xué)習(xí)時(shí)間來(lái)提高開(kāi)發(fā)人員的生產(chǎn)力,并使他們更容易解析和貢獻(xiàn)代碼庫(kù)。

基于HTML的模板旨在簡(jiǎn)化現(xiàn)有應(yīng)用程序的遷移,使用預(yù)處理器(HAML,Pug),并導(dǎo)致完全實(shí)現(xiàn)Vue的反應(yīng)性功能。

我們可以將框架組件分為兩類:表現(xiàn)型和邏輯型。對(duì)于呈現(xiàn)組件,建議使用模板語(yǔ)法,而對(duì)于邏輯組件,建議使用呈現(xiàn)功能和JSX。

JSX為開(kāi)發(fā)提供了很大的優(yōu)勢(shì),因?yàn)樗鼘⑺袃?nèi)容放在一個(gè)地方,使代碼完成和編譯時(shí)檢查更好地工作,并且作為以前的React概念,它以JS為中心。

為了支持JSX,Vue需要babel-plugin-transform-vue-jsx。

讓我們看一下渲染功能和JSX在Vue和React中的外觀。

專注于視圖層

視圖層是現(xiàn)代SPA框架的關(guān)鍵部分。畢竟,這就是SPA的重點(diǎn):它們簡(jiǎn)化了獲取豐富的交互式視圖的方式。基本上,視圖層是用于將數(shù)據(jù)傳入和傳出應(yīng)用程序的通道。

視圖負(fù)責(zé)完成以下任務(wù):

渲染模板。我們需要一種將數(shù)據(jù)映射到HTML的方法。

更新視圖以響應(yīng)更改事件。當(dāng)模型數(shù)據(jù)更改時(shí),我們需要更新相關(guān)視圖以反映新數(shù)據(jù)。

通過(guò)事件處理程序?qū)⑿袨榻壎ǖ紿TML。當(dāng)用戶與視圖HTML交互時(shí),我們需要一種觸發(fā)行為的方法。

提供執(zhí)行這些任務(wù)的標(biāo)準(zhǔn)機(jī)制或約定。

由于Vue和React的核心庫(kù)專注于視圖層,因此配套庫(kù)可以處理其他任務(wù),例如路由和全局狀態(tài)管理。React的配套庫(kù)是react-router和redux,而Vue具有vue-router和vuex庫(kù)。

專注于視圖層使Vue或React與第三方庫(kù)和現(xiàn)有項(xiàng)目的集成變得容易。反過(guò)來(lái),這使Vue和React比Angular更靈活。

Vue從Angular繼承了什么

Angular是一個(gè)成熟的Web框架,具有全套工具和概念,可簡(jiǎn)化前端開(kāi)發(fā)人員的生活。以下是Vue繼承的一些內(nèi)容。

指令

指令是引入新語(yǔ)法的內(nèi)容。偽指令是DOM元素上的標(biāo)記,這些標(biāo)記將特殊行為附加到其上。指令的工作是在其表達(dá)式的值發(fā)生更改時(shí)以響應(yīng)方式將副作用施加到DOM。

如果您之前編寫過(guò)Angular應(yīng)用程序,那么無(wú)論您是否意識(shí)到,都曾經(jīng)使用過(guò)指令。您可能使用了簡(jiǎn)單的指令,例如ng-model,ng-repeat,ng-show等。所有這些指令將特殊行為附加到DOM元素。

Vue繼承了Angular基于指令的語(yǔ)法。特別是,Vue具有帶有v-前綴的特殊指令,該指令在表單元素和變量之間提供雙向數(shù)據(jù)綁定,我們將在下一節(jié)中介紹。

除了默認(rèn)的Vue核心指令集(v-model和v-show),Vue還允許您注冊(cè)自定義選項(xiàng)。當(dāng)涉及對(duì)普通元素的低級(jí)DOM訪問(wèn)時(shí),自定義指令很有用。

雙向數(shù)據(jù)綁定

數(shù)據(jù)綁定是將數(shù)據(jù)模型連接到用戶界面的機(jī)制。數(shù)據(jù)綁定有三種主要形式:一次性,單向和雙向。選擇正確的選擇涉及很多考慮。

通過(guò)單向和單向數(shù)據(jù)綁定,數(shù)據(jù)從模型流到用戶界面。雙向數(shù)據(jù)綁定包括單向綁定,并且還允許從DOM綁定回JavaScript。

這就是Angular的亮點(diǎn):它鼓勵(lì)在組件內(nèi)使用雙向數(shù)據(jù)綁定技術(shù)來(lái)進(jìn)行瑣碎的Model-UI更新。Angular在范圍之間使用雙向綁定,而Vue在組件之間強(qiáng)制執(zhí)行單向數(shù)據(jù)流。這使數(shù)據(jù)流在非平凡的應(yīng)用程序中更易于理解。

我們可以使用Vue中的v-model指令和Angular中的ng-model來(lái)執(zhí)行數(shù)據(jù)綁定:

觀察者

盡管對(duì)于觀察者及其有用性存在不同的觀點(diǎn),但仍有一些時(shí)候需要自定義觀察者。

在Angular中,您基本上可以在使用內(nèi)置Angular指令(ng-show,ng-if,ng-repeat)的任何時(shí)間創(chuàng)建觀察者。對(duì)于每個(gè)觀察者,都將相應(yīng)的功能添加到摘要循環(huán)。摘要循環(huán)又使雙向數(shù)據(jù)綁定成為可能。盡管如此,使用觀察程序仍然有其缺點(diǎn),性能問(wèn)題是最重要的。

Vue通過(guò)watch選項(xiàng)提供了一種更通用的方式來(lái)處理數(shù)據(jù)更改。在大多數(shù)情況下,計(jì)算屬性是一個(gè)更合適的解決方案。但是,在Vue中,當(dāng)您要執(zhí)行異步或昂貴的操作以響應(yīng)更改的數(shù)據(jù)時(shí),監(jiān)視程序最有用。

觀察者還有助于限制執(zhí)行異步或昂貴操作的頻率以及設(shè)置中間狀態(tài)。這是計(jì)算屬性無(wú)法完美應(yīng)對(duì)的。

篩選器

Vue和Angular都實(shí)現(xiàn)了可在標(biāo)記內(nèi)使用的特殊過(guò)濾器語(yǔ)法。過(guò)濾器是必不可少的功能,它可以選擇一個(gè)值,對(duì)其進(jìn)行處理,然后返回處理后的值。這兩個(gè)框架都具有有用的內(nèi)置過(guò)濾器以及對(duì)自定義過(guò)濾器的支持。

Vue允許您定義可用于應(yīng)用通用文本格式的過(guò)濾器。過(guò)濾器在兩個(gè)地方可用:小胡子插值和 v-bind 表達(dá)式。在這里,您可以找到 Vue提供的過(guò)濾器列表。

除此之外,Angular和Vue的實(shí)現(xiàn)是相同的。

享受Vue

在本概述中,我們只是從頭開(kāi)始,但我們希望這些關(guān)鍵點(diǎn)能幫助您了解Vue專注于保持輕快。盡管如此,其生態(tài)系統(tǒng)中還有很多可以幫助您構(gòu)建,組織和擴(kuò)展前端應(yīng)用程序的東西。

Vue為React和Angular問(wèn)題提供了成都小程序設(shè)計(jì)更多的解決方案,并為您提供了一種更加簡(jiǎn)單易用的編碼方式。我們相信,如果JavaScript對(duì)您不再有樂(lè)趣,Vue將幫助您再次找到樂(lè)趣。

聯(lián)系我們
歡迎來(lái)到全美,免費(fèi)
獲取專業(yè)小程序設(shè)計(jì)方案
電話咨詢:

15281067168

您還可以預(yù)約資深顧問(wèn)
隱私信息保護(hù)中,請(qǐng)放心填寫

在線客服

電話咨詢

微信咨詢

微信號(hào)復(fù)制成功
15281067168 (蘇女士)
打開(kāi)微信,粘貼添加好友,免費(fèi)詢價(jià)吧
主站蜘蛛池模板: 萝北县| 安乡县| 喀喇沁旗| 全南县| 万全县| 西乡县| 九江市| 云龙县| 海丰县| 开封县| 东丽区| 广东省| 怀安县| 文成县| 衡阳市| 中山市| 吴堡县| 兴海县| 牙克石市| 麻江县| 阜康市| 永安市| 高青县| 建阳市| 夏津县| 阳东县| 朝阳市| 杭锦旗| 金秀| 宁陕县| 五指山市| 甘孜县| 沂南县| 杭锦旗| 札达县| 永定县| 垫江县| 苍南县| 永兴县| 门头沟区| 中宁县|