-
當(dāng)前位置:首頁(yè) > 創(chuàng)意學(xué)院 > 技術(shù) > 專題列表 > 正文
vue頁(yè)面優(yōu)化主要從哪些方面進(jìn)行
大家好!今天讓創(chuàng)意嶺的小編來(lái)大家介紹下關(guān)于vue頁(yè)面優(yōu)化主要從哪些方面進(jìn)行的問(wèn)題,以下是小編對(duì)此問(wèn)題的歸納整理,讓我們一起來(lái)看看吧。
開(kāi)始之前先推薦一個(gè)非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計(jì)劃、工作報(bào)告、論文、代碼、作文、做題和對(duì)話答疑等等
只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準(zhǔn),寫出的就越詳細(xì),有微信小程序端、在線網(wǎng)頁(yè)版、PC客戶端
官網(wǎng):https://ai.de1919.com。
創(chuàng)意嶺作為行業(yè)內(nèi)優(yōu)秀的企業(yè),服務(wù)客戶遍布全球各地,如需了解SEO相關(guān)業(yè)務(wù)請(qǐng)撥打電話175-8598-2043,或添加微信:1454722008
本文目錄:
一、VUE渲染優(yōu)化該怎么做
最立竿見(jiàn)影的方法是降低反走樣值,但在渲染動(dòng)畫時(shí)閃爍嚴(yán)重。另外,高級(jí)的大氣效果,面積過(guò)大的場(chǎng)景都會(huì)導(dǎo)致渲染極慢,我現(xiàn)在渲染動(dòng)畫,一分鐘才兩張。
http://www.cgova.com/mod_article-article_content-article_id-4209.html
二、vue.config.js中的webpack配置,優(yōu)化及多頁(yè)面應(yīng)用開(kāi)發(fā)
目錄
官方文檔
vue-cli3以下版本中,關(guān)于webpack的一些配置都在config目錄文件中,可是vue-cli3以上版本中,沒(méi)有了config目錄,那該怎么配置webpack呢?
3.x初始化項(xiàng)目后沒(méi)有了build和config文件,如果你想對(duì)webpack相關(guān)內(nèi)容進(jìn)行配置,需要自己在根目錄下(與package.json同級(jí))創(chuàng)建一個(gè)vue.config.js文件,這個(gè)文件一旦存在,那么它會(huì)被 @vue/cli-service 自動(dòng)加載。(但需要我們自己手動(dòng)創(chuàng)建哦vue.config.js,跟package.json同級(jí))
在配置中絕大多數(shù)都是(可選項(xiàng))
常規(guī)操作還是用到了commjs語(yǔ)法
部署應(yīng)用包的基本Url,默認(rèn)/, 可以設(shè)置為相對(duì)路徑./,這樣打出來(lái)的包,可以部署到任意路徑上
輸出文件目錄(打包后生成的目錄,默認(rèn)dist)
打包后生成的靜態(tài)資源目錄,默認(rèn)“ ” ,也就是我們打包后的css,js等存放的位置
是否在保存的時(shí)候檢查
生產(chǎn)環(huán)境的 source map,可以將其設(shè)置為 false 以加速生產(chǎn)環(huán)境構(gòu)建,默認(rèn)值是true
可通過(guò) devServer.proxy解決前后端跨域問(wèn)題(反向代理)
擴(kuò)展: hot 和 hotOnly 的區(qū)別是在某些模塊不支持熱更新的情況下,前者會(huì)自動(dòng)刷新頁(yè)面,后者不會(huì)刷新頁(yè)面,而是在控制臺(tái)輸出熱更新失敗
擴(kuò)展:
Preload: 用于標(biāo)記頁(yè)面加載后即將用到的資源,瀏覽器將在主體渲染前加載preload標(biāo)記文件。Vue CLI 應(yīng)用會(huì)為所有初始化渲染需要的文件自動(dòng)生成 preload 提示;
Prefetch: 用于標(biāo)記瀏覽器在頁(yè)面加載完成后,利用空閑時(shí)間預(yù)加載的內(nèi)容。Vue CLI 應(yīng)用默認(rèn)為所有作為 async chunk 生成的 JavaScript 文件 (通過(guò)動(dòng)態(tài) import() 按需 code splitting 的產(chǎn)物) 自動(dòng)生成prefetch提示。
webpack配置
擴(kuò)展:
在這里configureWebpack和chainWebpack的作用相同,唯一的區(qū)別就是他們修改webpack配置的方式不同:
這里配置了全局sass 需要安裝的依賴 sass-loader less-loader
由于 sass-loader 版本不同,loaderOptions 中的 additionalData 的鍵名也不同
vue-cli3中的webpack與vue多頁(yè)面應(yīng)用開(kāi)發(fā)
相關(guān)參數(shù):
封裝
很好的pwa插件相關(guān)配置
pwa介紹及使用
當(dāng)運(yùn)行項(xiàng)目并且打包的時(shí)候,會(huì)發(fā)現(xiàn)chunk-vendors.js這個(gè)文件非常大,那是因?yàn)閣ebpack將所有的依賴全都?jí)嚎s到了這個(gè)文件里面,這時(shí)我們可以將其拆分,將所有的依賴都打包成單獨(dú)的js;
上面已經(jīng)提到過(guò)去掉打印的操作(console、debug)這里詳細(xì)講解一下
新版uglifyjs-webpack-plugin需寫成以下方式
gizp壓縮是一種http請(qǐng)求優(yōu)化方式,通過(guò)減少文件體積來(lái)提高加載速度。html、js、css文件甚至json數(shù)據(jù)都可以用它壓縮,可以減小60%以上的體積。webpack在打包時(shí)可以借助 compression webpack plugin 實(shí)現(xiàn)gzip壓縮。
和我們正常創(chuàng)建項(xiàng)目相同,這里通過(guò)vue-cli3腳手架進(jìn)行創(chuàng)建
三、認(rèn)識(shí)Vue.js+Vue.js的優(yōu)缺點(diǎn)+和與其他前端框架的區(qū)別
認(rèn)識(shí)Vue.js+Vue.js的優(yōu)缺點(diǎn)+和與其他前端框架的區(qū)別
首先,我們先了解什么是MVX框架模式?MVX框架模式:MVC+MVP+MVVM1.MVC:Model(模型)+View(檢視)+controller(控制器),主要是基于分層的目的,讓彼此的職責(zé)分開(kāi)。View通過(guò)Controller來(lái)和Model聯(lián)絡(luò),Controller是View和Model的協(xié)調(diào)者,View和Model不直接聯(lián)絡(luò),基本聯(lián)絡(luò)都是單向的。使用者User通過(guò)控制器Controller來(lái)操作模板Model從而達(dá)到檢視View的變化。2.MVP:是從MVC模式演變而來(lái)的,都是通過(guò)Controller/Presenter負(fù)責(zé)邏輯的處理+Model提供資料+View負(fù)責(zé)顯示。在MVP中,Presenter完全把View和Model進(jìn)行了分離,主要的程式邏輯在Presenter里實(shí)現(xiàn)。并且,Presenter和View是沒(méi)有直接關(guān)聯(lián)的,是通過(guò)定義好的介面進(jìn)行互動(dòng),從而使得在變更View的時(shí)候可以保持Presenter不變。MVP模式的框架:Riot,js。3.MVVM:MVVM是把MVC里的Controller和MVP里的Presenter改成了ViewModel。Model+View+ViewModel。View的變化會(huì)自動(dòng)更新到ViewModel,ViewModel的變化也會(huì)自動(dòng)同步到View上顯示。這種自動(dòng)同步是因?yàn)閂iewModel中的屬性實(shí)現(xiàn)了Observer,當(dāng)屬性變更時(shí)都能觸發(fā)對(duì)應(yīng)的操作。MVVM模式的框架有:AngularJS+Vue.js和Knockout+Ember.js后兩種知名度較低以及是早起的框架模式。Vue.js是什么?看到了上面的框架模式介紹,我們可以知道它是屬于MVVM模式的框架。那它有哪些特性呢?其實(shí)Vue.js不是一個(gè)框架,因?yàn)樗痪劢箼z視層,是一個(gè)構(gòu)建資料驅(qū)動(dòng)的Web介面的庫(kù)。Vue.js通過(guò)簡(jiǎn)單的API(應(yīng)用程式程式設(shè)計(jì)介面)提供高效的資料系結(jié)和靈活的元件系統(tǒng)。Vue.js的特性如下:1.輕量級(jí)的框架2.雙向資料系結(jié)3.指令4.助手化Vue.js與其他框架的區(qū)別?1.與AngularJS的區(qū)別相同點(diǎn):都支援指令:內(nèi)建指令和自定義指令。都支援過(guò)濾器:內(nèi)建過(guò)濾器和自定義過(guò)濾器。都支援雙向資料系結(jié)。都不支援低端瀏覽器。不同點(diǎn):1.AngularJS的學(xué)習(xí)成本高,比如增加了DependencyInjection特性,而Vue.js本身提供的API都比較簡(jiǎn)單、直觀。2.在效能上,AngularJS依賴對(duì)資料做臟檢查,所以Watcher越多越慢。Vue.js使用基于依賴追蹤的觀察并且使用非同步佇列更新。所有的資料都是獨(dú)立觸發(fā)的。對(duì)于龐大的應(yīng)用來(lái)說(shuō),這個(gè)優(yōu)化差異還是比較明顯的。2.與React的區(qū)別相同點(diǎn):React采用特殊的JSX語(yǔ)法,Vue.js在元件開(kāi)發(fā)中也推崇編寫.vue特殊檔案格式,對(duì)檔案內(nèi)容都有一些約定,兩者都需要編譯后使用。中心思想相同:一切都是元件,元件例項(xiàng)之間可以巢狀。都提供合理的鉤子函式,可以讓開(kāi)發(fā)者定制化地去處理需求。都不內(nèi)建列數(shù)AJAX,Route等功能到核心包,而是以助手的方式載入。在元件開(kāi)發(fā)中都支援mixins的特性。不同點(diǎn):React依賴VirtualDOM,而Vue.js使用的是DOM模板。React采用的VirtualDOM會(huì)對(duì)渲染出來(lái)的結(jié)果做臟檢查。Vue.js在模板中提供了指令,過(guò)濾器等,可以非常方便,快捷地操作DOM。如何使用Vue.js?1.安裝(1)script如果專案直接通過(guò)script載入CDN檔案,程式碼示例如下:(2)npm如果專案給予npm管理依賴,則可以使用npm來(lái)安裝Vue,執(zhí)行如下命令:$npmivue--save-dev(3)bower如果專案基于bower管理依賴,則可以使用bower來(lái)安裝Vue,執(zhí)行如下命令:$bowerivue--save-dev
Vue.js與其他框架的區(qū)別:
1.與AngularJS的區(qū)別
相同點(diǎn):
都支援指令:內(nèi)建指令和自定義指令。
都支援過(guò)濾器:內(nèi)建過(guò)濾器和自定義過(guò)濾器。
都支援雙向資料系結(jié)。
都不支援低端瀏覽器。
不同點(diǎn):
1.AngularJS的學(xué)習(xí)成本高,比如增加了Dependency Injection特性,而Vue.js本身提供的API都比較簡(jiǎn)單、直觀。
2.在效能上,AngularJS依賴對(duì)資料做臟檢查,所以Watcher越多越慢。
Vue.js使用基于依賴追蹤的觀察并且使用非同步佇列更新。所有的資料都是獨(dú)立觸發(fā)的。
對(duì)于龐大的應(yīng)用來(lái)說(shuō),這個(gè)優(yōu)化差異還是比較明顯的。
2.與React的區(qū)別
相同點(diǎn):
React采用特殊的JSX語(yǔ)法,Vue.js在元件開(kāi)發(fā)中也推崇編寫.vue特殊檔案格式,對(duì)檔案內(nèi)容都有一些約定,兩者都需要編譯后使用。
中心思想相同:一切都是元件,元件例項(xiàng)之間可以巢狀。
都提供合理的鉤子函式,可以讓開(kāi)發(fā)者定制化地去處理需求。
都不內(nèi)建列數(shù)AJAX,Route等功能到核心包,而是以助手的方式載入。
在元件開(kāi)發(fā)中都支援mixins的特性。
不同點(diǎn):
React依賴Virtual DOM,而Vue.js使用的是DOM模板。React采用的Virtual DOM會(huì)對(duì)渲染出來(lái)的結(jié)果做臟檢查。
Vue.js在模板中提供了指令,過(guò)濾器等,可以非常方便,快捷地操作DOM。
我知道vue2.0和angularJS的區(qū)別,這兩個(gè)框架非常的像,但是在vue2.0后可以將js+css寫成一個(gè)元件,你想在什么頁(yè)面用引入這個(gè)元件就可以用了。這很變態(tài)。
比如你在一個(gè)專案中自己寫了個(gè)帶搜尋框的input ,你把他寫成了一個(gè)元件,xxx.vue
直接把xxx.vue移到另一個(gè)專案,只要在另一個(gè)專案中需要 帶搜尋框的input ,直接引用就可以了。
現(xiàn)在大多數(shù)框架都是以一個(gè)元件的形式搭建一個(gè)專案
vue是什么 vue特點(diǎn) vue和其他前端框架區(qū)別
vue是什么
Vue.js (讀音 /vju?/,類似于 view) 是一套基于javascript的用于構(gòu)建使用者介面的漸進(jìn)式框架。與其他重量級(jí)框架不同的是,Vue 采用自底向上增量開(kāi)發(fā)的設(shè)計(jì)。Vue 的核心庫(kù)只關(guān)注檢視層,它不僅易于上手,還便于與第三方庫(kù)或既有專案整合。另一方面,當(dāng)與單檔案元件和 Vue 生態(tài)系統(tǒng)支援的庫(kù)結(jié)合使用時(shí),Vue 也完全能夠?yàn)閺?fù)雜的單頁(yè)應(yīng)用程式提供驅(qū)動(dòng)。
vue特點(diǎn)
簡(jiǎn)潔、輕量、元件化、快速、資料驅(qū)動(dòng)、模組友好
vue和其他前端框架區(qū)別
1.與AngularJS的區(qū)別
相同點(diǎn):
都支援指令:內(nèi)建指令和自定義指令。
都支援過(guò)濾器:內(nèi)建過(guò)濾器和自定義過(guò)濾器。
都支援雙向資料系結(jié)。
都不支援低端瀏覽器。
不同點(diǎn):
1>AngularJS的學(xué)習(xí)成本高,比如增加了Dependency Injection(依賴注入)特性,而Vue.js本身提供的API都比較簡(jiǎn)單、直觀。
2>在效能上,AngularJS依賴對(duì)資料做臟檢查,所以Watcher越多越慢。
Vue.js使用基于依賴追蹤的觀察并且使用非同步佇列更新。所有的資料都是獨(dú)立觸發(fā)的。
對(duì)于龐大的應(yīng)用來(lái)說(shuō),這個(gè)優(yōu)化差異還是比較明顯的。
手機(jī)渲染速度:angular1 300ms * vue 200ms * react 100ms
2.與React的區(qū)別
相同點(diǎn):
React采用特殊的JSX語(yǔ)法,Vue.js在元件開(kāi)發(fā)中也推崇編寫.vue特殊檔案格式,對(duì)檔案內(nèi)容都有一些約定,兩者都需要編譯后使用。
中心思想相同:一切都是元件,元件例項(xiàng)之間可以巢狀。
都提供合理的鉤子函式,可以讓開(kāi)發(fā)者定制化地去處理需求。
都不內(nèi)建列數(shù)AJAX,Route等功能到核心包,而是以助手的方式載入。
在元件開(kāi)發(fā)中都支援mixins的特性。
不同點(diǎn):
React依賴Virtual DOM,而Vue.js使用的是DOM模板。React采用的Virtual DOM會(huì)對(duì)渲染出來(lái)的結(jié)果做臟檢查。
Vue.js在模板中提供了指令,過(guò)濾器等,可以非常方便,快捷地操作DOM。
vue的應(yīng)用場(chǎng)景
簡(jiǎn)單地說(shuō),就是需要對(duì) DOM 進(jìn)行很多自定義操作的專案小專案;理論上 Vue 配合類似Flux的架構(gòu)也可以勝任超大規(guī)模多人協(xié)作的復(fù)雜專案。
如何用vue.js和ionic搭建前端框架
前端可以用flightplan.js 部署。 var config = require("./webpack.config.js"); var webpack = require("webpack") var webpackDevServer=require("webpack-dev-server") confi
vue.js高仿餓了么外賣app 2016最火前端框架
React
React 和 Vue 有許多相似之處,它們都有:
使用 Virtual DOM
提供了響應(yīng)式(Reactive)和元件化(Composable)的檢視元件。
保持注意力集中在核心庫(kù),伴隨于此,有配套的路由和負(fù)責(zé)處理全域性狀態(tài)管理的庫(kù)。
相似的作用域,我們會(huì)用更多的時(shí)間來(lái)講這一塊的比較。不僅我們要保持技術(shù)的準(zhǔn)確性,同時(shí)兼顧平衡。我們指出React比Vue更好的地方,例如,他們的生態(tài)系統(tǒng)和豐富的自定義渲染器。
React社群在這里非常積極地幫助我們實(shí)現(xiàn)這一平衡,特別感謝來(lái)自 React 團(tuán)隊(duì)的 Dan Abramov 。他非??犊幕ㄙM(fèi)時(shí)間來(lái)貢獻(xiàn)專業(yè)知識(shí),來(lái)幫我們完善這個(gè)檔案,直到我們都滿意。
這么說(shuō),就是希望你能對(duì)這兩個(gè)庫(kù)的比較的公平性感到放心。
效能簡(jiǎn)介
到目前為止,在現(xiàn)實(shí)的測(cè)試中,Vue 是優(yōu)于 React 的(通常至少快20%-50%,盡管在某些情況下還要更快)。我們可以提供一個(gè)到這個(gè)參照專案的連結(jié),但是坦率的說(shuō),所有的參照在某些方面是有缺陷的,很少有像你所寫的一個(gè)真實(shí)應(yīng)用。那么,讓我們?cè)敿?xì)了解下吧。
渲染效能
在渲染使用者介面的時(shí)候,DOM的操作是最昂貴,不幸的是沒(méi)有庫(kù)可以讓這些原始操作變得更快。
我們能做的最好的就是:
盡量減少DOM操作。Vue 和 React 都使用虛擬DOM來(lái)實(shí)現(xiàn),并且兩者工作一樣好。
盡量減少除DOM操作以外的其他操作。這是 Vue 和 React的一個(gè)不同的地方。
假如說(shuō),在React中,渲染一個(gè)元素的額外開(kāi)銷是1,而平均渲染一個(gè)元件的開(kāi)銷是2。在Vue中,一個(gè)元素的開(kāi)銷更像0/vue/dist/vue.js"></script> 然后就可編寫Vue程式碼并應(yīng)用到生產(chǎn)中,而不用擔(dān)心效能問(wèn)題。
由于起步階段不需學(xué)JSX,ES2015 或構(gòu)建系統(tǒng),所以建立應(yīng)用花的時(shí)間會(huì)更少。
本地渲染
ReactNative能使你用相同的元件模型編寫有本地渲染能力的APP(IOS或Android)。能同時(shí)跨多平臺(tái)開(kāi)發(fā),對(duì)開(kāi)發(fā)者是非常棒的。相應(yīng)地,Vue和Weex會(huì)進(jìn)行官方合作,Weex是阿里的跨平臺(tái)使用者介面開(kāi)發(fā)框架,Weex 的 JavaScript 框架執(zhí)行時(shí)用的就是Vue。這以為著不僅在瀏覽器,在 IOS 和 Android 上面也可以用 Vue 來(lái)進(jìn)行開(kāi)發(fā)。
在現(xiàn)在,Weex 還在積極發(fā)展,成熟度也不能和 ReactNative 相抗衡。但是,Weex的發(fā)展是由世界上最大的電子商務(wù)企業(yè)的需求在驅(qū)動(dòng),Vue 團(tuán)隊(duì)也會(huì)和 Weex 團(tuán)隊(duì)積極合作確保為開(kāi)發(fā)者帶來(lái)良好的開(kāi)發(fā)體驗(yàn)。
MobX
Mobx 在 React 社群很流行,實(shí)際上在Vue也采用了幾乎相同的反應(yīng)系統(tǒng)。在有限程度上,React + Mobx 也可以被認(rèn)為是更繁瑣的 Vue,所以如果你習(xí)慣組合使用它們,那么選擇 Vue 會(huì)更合理。
Angular 1
Due的一些語(yǔ)法和Angular的很相似(例如 v-if vs ng-if)。因?yàn)锳ngular是Vue早期開(kāi)發(fā)的靈感來(lái)源。然而,Augular中存在許多問(wèn)題,在Vue中已經(jīng)得到解決。
復(fù)雜性
在 API 與設(shè)計(jì)兩方面上 Vue.js 都比 Angular 1 簡(jiǎn)單得多,因此你可以快速地掌握它的全部特性并投入開(kāi)發(fā)。
靈活性和模組化
Vue.js 是一個(gè)更加靈活開(kāi)放的解決方案。它允許你以希望的方式組織應(yīng)用程式,而不是在任何時(shí)候都必須遵循 Angular 1 制定的規(guī)則,這使讓Vue能適用于各種專案。我們知道把決定權(quán)交給你,是非常必要的,就是是為什么提供Webpack template,讓你用幾分鐘,去選擇是否用高階特性,比如熱模組載入、linting 、
Css extraction 等等。
資料系結(jié)
Angular 1 使用雙向系結(jié),Vue在不同元件間強(qiáng)制適用單向資料流。這使應(yīng)用中的資料流清晰易懂。
指令與元件
在 Vue 中指令和元件分得更清晰。指令只封裝 DOM 操作,而元件代表一個(gè)自給自足的獨(dú)立單元 —— 有自己的檢視和資料邏輯。在 Angular 中兩者有不少相混的地方。
效能
Vue.js 有更好的效能,并且非常非常容易優(yōu)化,因?yàn)樗皇褂门K檢查。
在Angular 1中,當(dāng) watcher 越來(lái)越多時(shí)會(huì)變得越來(lái)越慢,因?yàn)樽饔糜騼?nèi)的每一次變化,所有 watcher 都要重新計(jì)算。并且,如果一些 watcher 觸發(fā)另一個(gè)更新,臟檢查回圈(digest cycle)可能要執(zhí)行多次。 Angular 使用者常常要使用深?yuàn)W的技術(shù),以解決臟檢查回圈的問(wèn)題。有時(shí)沒(méi)有簡(jiǎn)單的辦法來(lái)優(yōu)化有大量 watcher 的作用域。
Vue.js 則根本沒(méi)有這個(gè)問(wèn)題,因?yàn)樗褂没谝蕾囎粉櫟挠^察系統(tǒng)并且非同步列隊(duì)更新,所有的資料變化都是獨(dú)立地觸發(fā),除非它們之間有明確的依賴關(guān)系。
有意思的是,Angular 2 和 Vue 用相似的設(shè)計(jì)解決了一些 Angular 1 中存在的問(wèn)題。
Angular 2
Augluar 2完全是一個(gè)全新的框架。例如,它具有優(yōu)秀的元件系統(tǒng),并且許多實(shí)現(xiàn)已經(jīng)完全重寫,API也完全改變了。
TypeScript
Angular 1面向的較小的應(yīng)用程式,Angular 2已轉(zhuǎn)移焦點(diǎn),面向的是大型企業(yè)應(yīng)用。TypeScript被引用,這對(duì)那些喜歡用Java或者C#等型別安全的語(yǔ)言的人是非常有用的。
Vue也適合企業(yè)應(yīng)用,也可以使用TypeScript來(lái)支援官方型別和使用者貢獻(xiàn)的型別,盡管這是可選的。
尺寸和效能
在效能方面,這兩個(gè)框架都是非???。但是如果你檢視第三方參照,就可以得出 Vue 2 比 Angular2 要快的。
在尺寸方面,雖然 Angular 2 使用 tree-shaking 技術(shù)和編譯技術(shù)能使程式碼尺寸減小。
即便包含編譯器和全部功能 Vue2(23kb)比起 Angular 2(50kb)還是小的多。但是要注意,用 Angular 的 App 的尺寸縮減是用 tree-shaking 移除了那些框架中沒(méi)有用到的功能,當(dāng)隨著引入功能的增多,尺寸會(huì)越來(lái)越大。
靈活性
Vue 官方提供了構(gòu)建工具,但沒(méi)限制你如何構(gòu)建。有人喜歡用統(tǒng)一的方式構(gòu)建,也有很多開(kāi)發(fā)者喜歡這種靈活自由的方式。
學(xué)習(xí)曲線
開(kāi)始使用Vue,你使用的是熟悉的HTML、符合ES5規(guī)則的JavaScript(也就是純JavaScript)。有了這些基本的技能,你可以快速地掌握它(指南)并投入開(kāi)發(fā) 。
Angular 2 的學(xué)習(xí)曲線是非常陡峭的。即使不包括TypeScript,它們開(kāi)始指南中所用的就有ES2015標(biāo)準(zhǔn)的JavaScript,18個(gè)NPM依賴包,4個(gè)檔案和超過(guò)3千多字介紹,這一切都是為了完成個(gè)Hello World。而Vue's Hello World就非常簡(jiǎn)單。
Ember
Ember 是一個(gè)全能框架。它提供大量的約定,一旦你熟悉了它們,開(kāi)發(fā)會(huì)很高效。不過(guò),這也意味著學(xué)習(xí)曲線較高,而且不靈活。在框架和庫(kù)(加上一系列松散耦合的工具)之間權(quán)衡選擇。后者更自由,但是也要求你做更多的架構(gòu)決定。
也就是說(shuō),最好比較 Vue.js 核心和 Ember 的模板與資料模型層:
Vue 在普通 JavaScript 物件上建立響應(yīng),提供自動(dòng)化的計(jì)算屬性。在 Ember 中需要將所有東西放在 Ember 物件內(nèi),并且手工為計(jì)算屬性宣告依賴。
Vue 的模板語(yǔ)法可以用全功能的 JavaScript 表示式,而 Handlebars 的語(yǔ)法和幫助函式語(yǔ)法相比之下非常受限。
在效能上,Vue 甩開(kāi) Ember 幾條街,即使是 Ember2.0 的最新Glimmer引擎。Vue自動(dòng)批量更新,Ember 當(dāng)效能關(guān)鍵處需要手動(dòng)管理。
Knockout
Knockout 是MVVM領(lǐng)域內(nèi)的先驅(qū),并且追蹤依賴。它的響應(yīng)系統(tǒng)和Vue相似。它對(duì)瀏覽器支援以及所有的表現(xiàn)也是讓人印象深刻的。它能最低支援到IE6,而Vue最低只能支援到IE9。
隨著時(shí)間的推移,Knockout的發(fā)展已有所放緩,并且略顯有點(diǎn)老舊了。比如,它的元件系統(tǒng)缺少完備的生命周期事件方法,盡管這些在現(xiàn)在是非常常見(jiàn)。以及相比Vue呼叫子元件的介面顯得有點(diǎn)笨重。
如果你有興趣研究,會(huì)發(fā)現(xiàn)它們?cè)诮槊嬖O(shè)計(jì)的構(gòu)思理念上是不同的。這些通過(guò)各自建立的 simple Todo List 可以體現(xiàn)出來(lái)?;蛟S有點(diǎn)主觀,但是很多人認(rèn)為Vue的API介面更簡(jiǎn)單結(jié)構(gòu)更優(yōu)雅。
Polymer
Polymer 是另一個(gè)由谷歌贊助的專案,事實(shí)上也是Vue的一個(gè)靈感來(lái)源。Vue的元件可以粗略的類比于Polymer的自定義元素,并且兩者具有相似的開(kāi)發(fā)風(fēng)格。最大的不同之處在于,Polymer是構(gòu)建于最新版的Web Components標(biāo)準(zhǔn)之上的,并且需要非凡的polyfills來(lái)工作(效能下降),瀏覽器本身不支援這些功能。相比而言,Vue不需要依賴polyfills來(lái)工作,最低到IE9。
在 Polymer 1.0版本中,為了彌補(bǔ)效能,團(tuán)隊(duì)非常有限的使用資料系結(jié)系統(tǒng)。例如,在Ploymer中支援的唯一表達(dá)式只有布林值否定和單一的方法的呼叫,它的puted方法的實(shí)現(xiàn)也不是很靈活。
Polymer 自定義的元素是用HTML檔案來(lái)建立的,這回限制你的普通的JavaScript/CSS(和被現(xiàn)代瀏覽器普遍支援的語(yǔ)言特性)。相比之下,Vue的單檔案允許你非常容易的使用ES2015和你想用的Css的預(yù)編譯處理器。
當(dāng)部署到生產(chǎn)環(huán)境的時(shí)候,Polymer建議使用HTML Imports載入所有資源。而這要求伺服器和客戶端都支援Http 2.0協(xié)議,且瀏覽器實(shí)現(xiàn)了標(biāo)準(zhǔn)。這是否可行就取決于你的目標(biāo)使用者和部署環(huán)境了。如果狀況不佳,你必須用Vulcanizer工具來(lái)來(lái)打包Polymer元素。在這方面,Vue 可以結(jié)合非同步元件的特性和Webpack的程式碼分割特性來(lái)實(shí)現(xiàn)懶載入(lazy-loaded)。這同時(shí)確保了對(duì)舊瀏覽器的相容且又能更快載入。
對(duì)Vue和Web Component標(biāo)準(zhǔn)之間進(jìn)行深層次的整合,也是完全可行的,比如Custom Elements、Shadow DOM的樣式封裝。然而現(xiàn)在在我們做出嚴(yán)肅的承諾之前,我們?nèi)栽诘却龢?biāo)準(zhǔn)成熟,進(jìn)而廣泛應(yīng)用于主流的瀏覽器中。
Riot
Riot 2.0 提供了一個(gè)類似于基于元件的開(kāi)發(fā)模型(在Riot中稱之為”Tag”),提供小巧精美的API。Riot 和 Vue 可能共享一些設(shè)計(jì)理念。即使相比Roit重一點(diǎn),Vue還是有很多顯著優(yōu)勢(shì)的:
根據(jù)真實(shí)條件來(lái)渲染,Roit根據(jù)是否有分支簡(jiǎn)單顯示或隱藏所有內(nèi)容。
功能更加強(qiáng)大的路由機(jī)制,Roit的路由功能的API是極少的。
更多成熟工具的支援。Vue 提供官方支援Webpack、Browserify和SystemJS,而 Roit 是依靠社群來(lái)建立整合系統(tǒng)。
過(guò)渡效果系統(tǒng)。Riot現(xiàn)在沒(méi)有提供。
更好的效能。Roit 盡管廣告稱用虛擬DOM,實(shí)際上用的還是臟檢查機(jī)制,因此和Angular 1患有相同的效能問(wèn)題。
以上所述是我給大家介紹的Vue.js 2.0 和 React、Augular等其他前端框架大比拼,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,我會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)指令碼之家網(wǎng)站的支援!
react.js vue.js 這些前端框架都必須在node.js上才能跑嗎
這些js寫的吧,你tomcat怎么解析js,而且tomcat也是呼叫第三方的直譯器來(lái)解析程式碼,你看node.js能不能整合到tomcat,有沒(méi)有類似的助手。
并不是,你本地隨便建個(gè)檔案就能跑。
四、vue el-select 動(dòng)態(tài)渲染卡頓優(yōu)化
在vue項(xiàng)目中,在頁(yè)面動(dòng)態(tài)渲染時(shí),頁(yè)面渲染非常慢,有時(shí)需要十多秒才能渲染完成。開(kāi)始以為是 el-tabs 造成頁(yè)面卡頓,后來(lái)懷疑可能是v-for多層動(dòng)態(tài)渲染的原因,最后定位到問(wèn)題是頁(yè)面中的有多個(gè) el-select ,而每個(gè) el-select 的 el-option 中數(shù)據(jù)量太大,導(dǎo)致拖慢了整個(gè)頁(yè)面渲染。
最后通過(guò)從設(shè)計(jì)上去避免這個(gè)問(wèn)題來(lái)解決,減少 el-option 中的數(shù)據(jù)量。
以上就是關(guān)于vue頁(yè)面優(yōu)化主要從哪些方面進(jìn)行相關(guān)問(wèn)題的回答。希望能幫到你,如有更多相關(guān)問(wèn)題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會(huì)為您講解更多精彩的知識(shí)和內(nèi)容。
推薦閱讀:
vue頁(yè)面優(yōu)化主要從哪些方面進(jìn)行
水景景觀設(shè)計(jì)平面圖集(水景景觀設(shè)計(jì)平面圖集圖片)
杭州三替公司家政服務(wù)熱線(杭州三替公司家政服務(wù)熱線電話號(hào)碼)