導航:首頁 > 編程語言 > vuejs20路由詳解

vuejs20路由詳解

發布時間:2025-01-14 05:22:56

① 47道基礎的Vuejs面試題(附答案)

1、什麼是MVVM框架?它適用於哪些場景?

MVVM框架是一個 Model-View-View Model框架,其中 ViewModel連接模型Model)和視圖(View)。

在數據操作比較多的場景中,MVVM框架更合適,有助於通過操作數據渲染頁面。

2、active- class是哪個組件的屬性?

它是 vue-router模塊的 router-link組件的屬性。

3、如何定義Vue- router的動態路由?

在靜態路由名稱前面添加冒號,例如,設置id動態路由參數,為路由對象的path屬性設置/:id。

4、如何獲取傳過來的動態參數?

在組件中,使用$router對象的 params.id,即 $route.params.id 。

5、vue- router有哪幾種導航鉤子?

有3種。

第一種是全局導航鉤子:router.beforeEach(to,from,next)。作用是跳轉前進行判斷攔截。

第二種是組件內的鉤子。

第三種是單獨路由獨享組件。

6、mint-ui是什麼?如何使用?

它是基於 Vue.js的前端組件庫。用npm安裝,然後通過 import導入樣式和javaScript代碼。vue.use(mintUi)用於實現全局引入, import {Toast} from ' mint-ui'用於在單個組件局部引入。

7、V-model是什麼?有什麼作用?

v- model是 Vue. js中的一條指令,可以實現數據的雙向綁定。

8、Vue.js中標簽如何綁定事件?

綁定事件有兩種方式。

第一種,通過v-on指令, 。

第二種,通過@語法糖, input@ click= doLog()/>。

9、vuex是什麼?如何使用?在哪種功能場景中使用它?

vuex是針對 Vue. js框架實現的狀態管理系統

為了使用vuex,要引入 store,並注入Vue.js組件中,在組件內部即可通過$ ostore訪問 store對象。

使用場景包括:在單頁應用中,用於組件之間的通信,例如音樂播放、登錄狀態管理、加入購物車等。

10、如何實現自定義指令?它有哪些鉤子函數?還有哪些鉤子函數參數?

自定義指令包括以下兩種。

它有如下鉤子函數。

鉤子函數的參數如下。

11、至少說出vue.js中的4種指令和它們的用法。

相關指令及其用法如下。

12、Vue-router是什麼?它有哪些組件?

它是 Vue. js的路由插件。組件包括 router-link和 router-vIew。

13、導航鉤子有哪些?它們有哪些參數?

導航鉤子又稱導航守衛,又分為全局鉤子、單個路由獨享鈞子和組件級鈞子。

全局鉤子有 beforeEach、beforeResolve(Vue2.5.0新增的)、 afterEach。

單個路由獨享鉤子有 beforeEnter。

組件級鉤子有 beforeRouteEnter、 beforeRouteUpdate(Vue2.2新增的) beforeRouteLeave。

它們有以下參數。

14、Vue.js的雙向數據綁定原理是什麼?

具體步驟如下。

(1)對需要觀察的數據對象進行遞歸遍歷,包括子屬性對象的屬性,設置set和get特性方法。當給這個對象的某個值賦值時,會觸發綁定的set特性方法,於是就能監聽到數據變化。

(4)MVVM是數據綁定的入口,整合了 Observer、 Compile和 Watcher三者,通過Observer來監聽自己的 model數據變化,通過 Compile來解析編譯模板指令,最終利用Watcher搭起 Observer和 Compile之間的通信橋梁,達到數據變化通知視圖更新的效果。利用視圖交互,變化更新數據 model變更的雙向綁定效果。

15、請詳細說明你對Vue.js生命周期的理解。

總共分為8個階段,分別為 beforeCreate、created、beforeMount、 mounted、beforeUpdate、 updated、 beforeDestroyed、 destroyed。

當使用組件的kep- alive功能時,增加以下兩個周期。

Vue2.5.0版本新增了一個周期鉤子:ErrorCaptured,當捕獲一個來自子孫組件的錯誤時調用。

16、請描述封裝Vue組件的作用過程。

組件可以提升整個項目的開發效率,能夠把頁面抽象成多個相對獨立的模塊,解決了傳統項目開發中效率低、難維護、復用性等問題。

使用Vue.extend方法創建一個組件,使用Vue.component方法注冊組件。子組件需要數據,可以在 props中接收數據。而子組件修改妤數據後,若想把數據傳遞給父組件,可以採用emit方法。

17、你是怎樣認識vuex的?

vuex可以理解為一種開發模式或框架。它是對 Vue. js框架數據層面的擴展。通過狀態(數據源)集中管理驅動組件的變化。應用的狀態集中放在 store中。改變狀態的方式是提交 mutations,這是個同步的事務。非同步邏輯應該封裝在 action中。

18、Vue- loader是什麼?它的用途有哪些?

它是解析.vue文件的一個載入器,可以將 template/js/style轉換成 JavaScript模塊。

用途是通過 vue-loader, JavaScript可以寫 EMAScript 6語法, style樣式可以應用scss或less, template可以添加jade語法等。

19、請說出vue.cli項目的src目錄中每個文件夾和文件的用法。

assets文件夾存放靜態資源;components存放組件;router定義路由相關的配置;view是視圖;app. vue是一個應用主組件;main.js是入口文件。

20、在Vue.cli中怎樣使用自定義組件?在使用過程中你遇到過哪些問題?

具體步驟如下。

(1)在 components目錄中新建組件文件,腳本一定要導出暴露的介面。

(2)導入需要用到的頁面(組件)。

(3)將導入的組件注入uejs的子組件的 components屬性中。

(4)在 template的視圖中使用自定義組件。

21、談談你對vue.js的 template編譯的理解。

簡而言之,就是首先轉化成AST( Abstract Syntax Tree,抽象語法樹),即將源代碼語法結構抽象成樹狀表現形式,然後通過 render函數進行渲染,並返回VNode( Vue. js的虛擬DOM節點)。

詳細步驟如下。

(1)通過 compile編譯器把 template編譯成AST, compile是 create Compiler的返回值, createCompiler用來創建編譯器。另外, compile還負責合並 option。

(2)AST會經過 generate(將AST轉化成 render funtion字元串的過程)得到 render函數, render的返回值是 VNode, VNode是 Vue.Js的虛擬DOM節點,裡面有標簽名子節點、文本等。

22、說一下Vue.js中的MVVM模式。

MVVM模式即 Model- View- ViewModel模式。

Vue.js是通過數據驅動的, Vue. js實例化對象將DOM和數據進行綁定,一旦綁定,和數據將保持同步,每當數據發生變化,DOM也會隨著變化。

ViewModel是Vue.js的核心,它是 Vue.js的一個實例。Vue.js會針對某個HTML元素進行實例化,這個HTML元素可以是body,也可以是某個CSS選擇器所指代的元素。

DOM Listeners和 Data Bindings是實現雙向綁定的關鍵。DOM Listeners監聽頁面所有View層中的DOM元素,當發生變化時,Model層的數據隨之變化。Data Bindings會監聽 Model層的數據,當數據發生變化時,View層的DOM元素也隨之變化。

23、v-show指令和v-if指令的區別是什麼?

v-show與v-if都是條件渲染指令。不同的是,無論v-show的值為true或 false,元素都會存在於HTML頁面中;而只有當v-if的值為true時,元素才會存在於HTML頁面中。v-show指令是通過修改元素的 style屬性值實現的。

24、如何讓CSS只在當前組件中起作用?

在每一個Vue.js組件中都可以定義各自的CSS、 JavaScript代碼。如果希望組件內寫的CSS只對當前組件起作用,只需要在Style標簽添加Scoped屬性,即 。

25、如何創建vue.js組件?

在vue.js中,組件要先注冊,然後才能使用。具體代碼如下

26、如何實現路由嵌套?如何進行頁面跳轉?

路由嵌套會將其他組件渲染到該組件內,而不是使整個頁面跳轉到 router-view定義組件渲染的位置。要進行頁面跳轉,就要將頁面渲染到根組件內,可做如下配置。

首先,實例化根組件,在根組件中定義組件渲染容器。然後,掛載路由,當切換路由時,將會切換整個頁面。

27、ref屬性有什麼作用?

有時候,為了在組件內部可以直接訪問組件內部的一些元素,可以定義該屬性此時可以在組件內部通過this. $refs屬性,更快捷地訪問設置ref屬性的元素。這是一個原生的DOM元素,要使用原生 DOM API操作它們,例如以下代碼。

注意:在Ve2.0中,ref屬性替代了1.0版本中v-el指令的功能。

28、Vue. js是什麼?

Vue. js的目標是通過盡可能簡單的API實現響應式的數據綁定的組件開發。

29、描述vue.js的一些特性。

Vue.js有以下持性。

(1)MVVM模式。

數據模型( Model)發生改變,視圖(View)監聽到變化,也同步改變;視圖(View)發生改變,數據模型( Model)監聽到改變,也同步改變。

使用MVVM模式有幾大好處。

(2)組件化開發

(3)指令系統

(4)Vue2.0開始支持虛擬DOM。

但在Vue1.0中,操作的是真實DOM元素而不是虛擬DOM,虛擬DOM可以提升頁面的渲染性能。

30、描述vue.js的特點。

Vue. js有以下特點。

31、在vue.js中如何綁定事件?

通過在v-on後跟事件名稱=「事件回調函數( )」的語法綁定事件。事件回調函數的參數集合( )可有可無。如果存在參數集合( ),事件回調函數的參數需要主動傳遞,使用事件對象要傳遞 $event。當然,此時也可以傳遞一些其他自定義數據。如果沒有參數集合,此時事件回調函數有一個默認參數,就是事件對象。事件回調函數要定義在組件的 methods屬性中,作用域是 Vue. js實例化對象,因此在方法中,可以通過this使用 Vue. js中的數據以及方法,也可以通過@語法糖快速綁定事件,如@事件名稱=「事件回調函數( )」。

32、請說明 組件的作用。

當 包裹動態組件時,會緩存不活動的組件實例,而不是銷毀它們。

keep-alive>是一個抽象組件,它自身不會渲染一個DOM元素,也不會出現在父組件鏈中。

當在 內切換組件時,它的 activated和 deactivated這兩個生命周期鈞子函數將會執行。

33、axios是什麼?如何使用它?

axios是在vue2.0中用來替換 vue-resource.js插件的一個模塊,是一個請求後台的模。

用 npm install axios安裝 axios。基於 EMAScript 6 的 EMAScript Mole規范,通過 import關鍵字將 axios導入,並添加到 Vue. js類的原型中。這樣每個組件(包括vue.js實例化對象)都將繼承該方法對象。它定義了get、post等方法,可以發送get或者post請求。在then方法中注冊成功後的回調函數,通過箭頭函數的作用域特徵,可以直接訪問組件實例化對象,存儲返回的數據。

34、在 axios中,當調用 axios.post('api/user')時進行的是什麼操作?

當調用post方法表示在發送post非同步請求。

35、sass是什麼?如何在ue中安裝和使用?

sass是一種CSS預編譯語言安裝和使用步驟如下。

(1)用npm安裝載入程序( sass-loader、 css-loader等載入程序)。

(2)在 webpack. config. js中配置sass載入程序。

(3)在組件的 style標簽中加上lang屬性,例如lang="scss"。

36、如何在 Vue. js中循環插入圖片?

對「src」屬性插值將導致404請求錯誤。應使用 v-bind:src格式代替。

代碼如下:

② 認識Vue.js+Vue.js的優缺點+和與其他前端框架的區別

認識Vue.js+Vue.js的優缺點+和與其他前端框架的區別

首先,我們先了解什麼是MVX框架模式?MVX框架模式:MVC+MVP+MVVM1.MVC:Model(模型)+View(檢視)+controller(控制器),主要是基於分層的目的,讓彼此的職責分開。View通過Controller來和Model聯絡,Controller是View和Model的協調者,View和Model不直接聯絡,基本聯絡都是單向的。使用者User通過控制器Controller來操作模板Model從而達到檢視View的變化。2.MVP:是從MVC模式演變而來的,都是通過Controller/Presenter負責邏輯的處理+Model提供資料+View負責顯示。在MVP中,Presenter完全把View和Model進行了分離,主要的程式邏輯在Presenter里實現。並且,Presenter和View是沒有直接關聯的,是通過定義好的介面進行互動,從而使得在變更View的時候可以保持Presenter不變。MVP模式的框架:Riot,js。3.MVVM:MVVM是把MVC里的Controller和MVP里的Presenter改成了ViewModel。Model+View+ViewModel。View的變化會自動更新到ViewModel,ViewModel的變化也會自動同步到View上顯示。這種自動同步是因為ViewModel中的屬性實現了Observer,當屬性變更時都能觸發對應的操作。MVVM模式的框架有:AngularJS+Vue.js和Knockout+Ember.js後兩種知名度較低以及是早起的框架模式。Vue.js是什麼?看到了上面的框架模式介紹,我們可以知道它是屬於MVVM模式的框架。那它有哪些特性呢?其實Vue.js不是一個框架,因為它只聚焦檢視層,是一個構建資料驅動的Web介面的庫。Vue.js通過簡單的API(應用程式程式設計介面)提供高效的資料系結和靈活的元件系統。Vue.js的特性如下:1.輕量級的框架2.雙向資料系結3.指令4.外掛化Vue.js與其他框架的區別?1.與AngularJS的區別相同點:都支援指令:內建指令和自定義指令。都支援過濾器:內建過濾器和自定義過濾器。都支援雙向資料系結。都不支援低端瀏覽器。不同點:1.AngularJS的學習成本高,比如增加了DependencyInjection特性,而Vue.js本身提供的API都比較簡單、直觀。2.在效能上,AngularJS依賴對資料做臟檢查,所以Watcher越多越慢。Vue.js使用基於依賴追蹤的觀察並且使用非同步佇列更新。所有的資料都是獨立觸發的。對於龐大的應用來說,這個優化差異還是比較明顯的。2.與React的區別相同點:React採用特殊的JSX語法,Vue.js在元件開發中也推崇編寫.vue特殊檔案格式,對檔案內容都有一些約定,兩者都需要編譯後使用。中心思想相同:一切都是元件,元件例項之間可以巢狀。都提供合理的鉤子函式,可以讓開發者定製化地去處理需求。都不內建列數AJAX,Route等功能到核心包,而是以外掛的方式載入。在元件開發中都支援mixins的特性。不同點:React依賴VirtualDOM,而Vue.js使用的是DOM模板。React採用的VirtualDOM會對渲染出來的結果做臟檢查。Vue.js在模板中提供了指令,過濾器等,可以非常方便,快捷地操作DOM。如何使用Vue.js?1.安裝(1)script如果專案直接通過script載入CDN檔案,程式碼示例如下:(2)npm如果專案給予npm管理依賴,則可以使用npm來安裝Vue,執行如下命令:$npmivue--save-dev(3)bower如果專案基於bower管理依賴,則可以使用bower來安裝Vue,執行如下命令:$bowerivue--save-dev

Vue.js與其他框架的區別:
1.與AngularJS的區別
相同點:
都支援指令:內建指令和自定義指令。
都支援過濾器:內建過濾器和自定義過濾器。
都支援雙向資料系結。
都不支援低端瀏覽器。
不同點:
1.AngularJS的學習成本高,比如增加了Dependency Injection特性,而Vue.js本身提供的API都比較簡單、直觀。
2.在效能上,AngularJS依賴對資料做臟檢查,所以Watcher越多越慢。
Vue.js使用基於依賴追蹤的觀察並且使用非同步佇列更新。所有的資料都是獨立觸發的。
對於龐大的應用來說,這個優化差異還是比較明顯的。
2.與React的區別
相同點:
React採用特殊的JSX語法,Vue.js在元件開發中也推崇編寫.vue特殊檔案格式,對檔案內容都有一些約定,兩者都需要編譯後使用。
中心思想相同:一切都是元件,元件例項之間可以巢狀。
都提供合理的鉤子函式,可以讓開發者定製化地去處理需求。
都不內建列數AJAX,Route等功能到核心包,而是以外掛的方式載入。
在元件開發中都支援mixins的特性。
不同點:
React依賴Virtual DOM,而Vue.js使用的是DOM模板。React採用的Virtual DOM會對渲染出來的結果做臟檢查。
Vue.js在模板中提供了指令,過濾器等,可以非常方便,快捷地操作DOM。

我知道vue2.0和angularJS的區別,這兩個框架非常的像,但是在vue2.0後可以將js+css寫成一個元件,你想在什麼頁面用引入這個元件就可以用了。這很變態。
比如你在一個專案中自己寫了個帶搜尋框的input ,你把他寫成了一個元件,xxx.vue
直接把xxx.vue移到另一個專案,只要在另一個專案中需要 帶搜尋框的input ,直接引用就可以了。
現在大多數框架都是以一個元件的形式搭建一個專案

vue是什麼 vue特點 vue和其他前端框架區別

vue是什麼
Vue.js (讀音 /vju?/,類似於 view) 是一套基於javascript的用於構建使用者介面的漸進式框架。與其他重量級框架不同的是,Vue 採用自底向上增量開發的設計。Vue 的核心庫只關注檢視層,它不僅易於上手,還便於與第三方庫或既有專案整合。另一方面,當與單檔案元件和 Vue 生態系統支援的庫結合使用時,Vue 也完全能夠為復雜的單頁應用程式提供驅動。
vue特點
簡潔、輕量、元件化、快速、資料驅動、模組友好
vue和其他前端框架區別
1.與AngularJS的區別
相同點:
都支援指令:內建指令和自定義指令。
都支援過濾器:內建過濾器和自定義過濾器。
都支援雙向資料系結。
都不支援低端瀏覽器。
不同點:
1>AngularJS的學習成本高,比如增加了Dependency Injection(依賴注入)特性,而Vue.js本身提供的API都比較簡單、直觀。
2>在效能上,AngularJS依賴對資料做臟檢查,所以Watcher越多越慢。
Vue.js使用基於依賴追蹤的觀察並且使用非同步佇列更新。所有的資料都是獨立觸發的。
對於龐大的應用來說,這個優化差異還是比較明顯的。
手機渲染速度:angular1 300ms * vue 200ms * react 100ms
2.與React的區別
相同點:
React採用特殊的JSX語法,Vue.js在元件開發中也推崇編寫.vue特殊檔案格式,對檔案內容都有一些約定,兩者都需要編譯後使用。
中心思想相同:一切都是元件,元件例項之間可以巢狀。
都提供合理的鉤子函式,可以讓開發者定製化地去處理需求。
都不內建列數AJAX,Route等功能到核心包,而是以外掛的方式載入。
在元件開發中都支援mixins的特性。
不同點:
React依賴Virtual DOM,而Vue.js使用的是DOM模板。React採用的Virtual DOM會對渲染出來的結果做臟檢查。
Vue.js在模板中提供了指令,過濾器等,可以非常方便,快捷地操作DOM。
vue的應用場景
簡單地說,就是需要對 DOM 進行很多自定義操作的專案小專案;理論上 Vue 配合類似Flux的架構也可以勝任超大規模多人協作的復雜專案。

如何用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
提供了響應式(Reactive)和元件化(Composable)的檢視元件。
保持注意力集中在核心庫,伴隨於此,有配套的路由和負責處理全域性狀態管理的庫。
相似的作用域,我們會用更多的時間來講這一塊的比較。不僅我們要保持技術的准確性,同時兼顧平衡。我們指出React比Vue更好的地方,例如,他們的生態系統和豐富的自定義渲染器。
React社群在這里非常積極地幫助我們實現這一平衡,特別感謝來自 React 團隊的 Dan Abramov 。他非常慷慨的花費時間來貢獻專業知識,來幫我們完善這個檔案,直到我們都滿意。
這么說,就是希望你能對這兩個庫的比較的公平性感到放心。
效能簡介
到目前為止,在現實的測試中,Vue 是優於 React 的(通常至少快20%-50%,盡管在某些情況下還要更快)。我們可以提供一個到這個參照專案的連結,但是坦率的說,所有的參照在某些方面是有缺陷的,很少有像你所寫的一個真實應用。那麼,讓我們詳細了解下吧。
渲染效能
在渲染使用者介面的時候,DOM的操作是最昂貴,不幸的是沒有庫可以讓這些原始操作變得更快。
我們能做的最好的就是:
盡量減少DOM操作。Vue 和 React 都使用虛擬DOM來實現,並且兩者工作一樣好。
盡量減少除DOM操作以外的其他操作。這是 Vue 和 React的一個不同的地方。
假如說,在React中,渲染一個元素的額外開銷是1,而平均渲染一個元件的開銷是2。在Vue中,一個元素的開銷更像0/vue/dist/vue.js"></script> 然後就可編寫Vue程式碼並應用到生產中,而不用擔心效能問題。
由於起步階段不需學JSX,ES2015 或構建系統,所以建立應用花的時間會更少。
本地渲染
ReactNative能使你用相同的元件模型編寫有本地渲染能力的APP(IOS或Android)。能同時跨多平台開發,對開發者是非常棒的。相應地,Vue和Weex會進行官方合作,Weex是阿里的跨平台使用者介面開發框架,Weex 的 JavaScript 框架執行時用的就是Vue。這以為著不僅在瀏覽器,在 IOS 和 Android 上面也可以用 Vue 來進行開發。
在現在,Weex 還在積極發展,成熟度也不能和 ReactNative 相抗衡。但是,Weex的發展是由世界上最大的電子商務企業的需求在驅動,Vue 團隊也會和 Weex 團隊積極合作確保為開發者帶來良好的開發體驗。
MobX
Mobx 在 React 社群很流行,實際上在Vue也採用了幾乎相同的反應系統。在有限程度上,React + Mobx 也可以被認為是更繁瑣的 Vue,所以如果你習慣組合使用它們,那麼選擇 Vue 會更合理。
Angular 1
Due的一些語法和Angular的很相似(例如 v-if vs ng-if)。因為Angular是Vue早期開發的靈感來源。然而,Augular中存在許多問題,在Vue中已經得到解決。
復雜性
在 API 與設計兩方面上 Vue.js 都比 Angular 1 簡單得多,因此你可以快速地掌握它的全部特性並投入開發。
靈活性和模組化
Vue.js 是一個更加靈活開放的解決方案。它允許你以希望的方式組織應用程式,而不是在任何時候都必須遵循 Angular 1 制定的規則,這使讓Vue能適用於各種專案。我們知道把決定權交給你,是非常必要的,就是是為什麼提供Webpack template,讓你用幾分鍾,去選擇是否用高階特性,比如熱模組載入、linting 、
Css extraction 等等。
資料系結
Angular 1 使用雙向系結,Vue在不同元件間強制適用單向資料流。這使應用中的資料流清晰易懂。
指令與元件
在 Vue 中指令和元件分得更清晰。指令只封裝 DOM 操作,而元件代表一個自給自足的獨立單元 —— 有自己的檢視和資料邏輯。在 Angular 中兩者有不少相混的地方。
效能
Vue.js 有更好的效能,並且非常非常容易優化,因為它不使用臟檢查。
在Angular 1中,當 watcher 越來越多時會變得越來越慢,因為作用域內的每一次變化,所有 watcher 都要重新計算。並且,如果一些 watcher 觸發另一個更新,臟檢查迴圈(digest cycle)可能要執行多次。 Angular 使用者常常要使用深奧的技術,以解決臟檢查迴圈的問題。有時沒有簡單的辦法來優化有大量 watcher 的作用域。
Vue.js 則根本沒有這個問題,因為它使用基於依賴追蹤的觀察系統並且非同步列隊更新,所有的資料變化都是獨立地觸發,除非它們之間有明確的依賴關系。
有意思的是,Angular 2 和 Vue 用相似的設計解決了一些 Angular 1 中存在的問題。
Angular 2
Augluar 2完全是一個全新的框架。例如,它具有優秀的元件系統,並且許多實現已經完全重寫,API也完全改變了。
TypeScript
Angular 1面向的較小的應用程式,Angular 2已轉移焦點,面向的是大型企業應用。TypeScript被引用,這對那些喜歡用Java或者C#等型別安全的語言的人是非常有用的。
Vue也適合企業應用,也可以使用TypeScript來支援官方型別和使用者貢獻的型別,盡管這是可選的。
尺寸和效能
在效能方面,這兩個框架都是非常快。但是如果你檢視第三方參照,就可以得出 Vue 2 比 Angular2 要快的。
在尺寸方面,雖然 Angular 2 使用 tree-shaking 技術和編譯技術能使程式碼尺寸減小。
即便包含編譯器和全部功能 Vue2(23kb)比起 Angular 2(50kb)還是小的多。但是要注意,用 Angular 的 App 的尺寸縮減是用 tree-shaking 移除了那些框架中沒有用到的功能,當隨著引入功能的增多,尺寸會越來越大。
靈活性
Vue 官方提供了構建工具,但沒限制你如何構建。有人喜歡用統一的方式構建,也有很多開發者喜歡這種靈活自由的方式。
學習曲線
開始使用Vue,你使用的是熟悉的HTML、符合ES5規則的JavaScript(也就是純JavaScript)。有了這些基本的技能,你可以快速地掌握它(指南)並投入開發 。
Angular 2 的學習曲線是非常陡峭的。即使不包括TypeScript,它們開始指南中所用的就有ES2015標準的JavaScript,18個NPM依賴包,4個檔案和超過3千多字介紹,這一切都是為了完成個Hello World。而Vue's Hello World就非常簡單。
Ember
Ember 是一個全能框架。它提供大量的約定,一旦你熟悉了它們,開發會很高效。不過,這也意味著學習曲線較高,而且不靈活。在框架和庫(加上一系列鬆散耦合的工具)之間權衡選擇。後者更自由,但是也要求你做更多的架構決定。
也就是說,最好比較 Vue.js 核心和 Ember 的模板與資料模型層:
Vue 在普通 JavaScript 物件上建立響應,提供自動化的計算屬性。在 Ember 中需要將所有東西放在 Ember 物件內,並且手工為計算屬性宣告依賴。
Vue 的模板語法可以用全功能的 JavaScript 表示式,而 Handlebars 的語法和幫助函式語法相比之下非常受限。
在效能上,Vue 甩開 Ember 幾條街,即使是 Ember2.0 的最新Glimmer引擎。Vue自動批量更新,Ember 當效能關鍵處需要手動管理。
Knockout
Knockout 是MVVM領域內的先驅,並且追蹤依賴。它的響應系統和Vue相似。它對瀏覽器支援以及所有的表現也是讓人印象深刻的。它能最低支援到IE6,而Vue最低只能支援到IE9。
隨著時間的推移,Knockout的發展已有所放緩,並且略顯有點老舊了。比如,它的元件系統缺少完備的生命周期事件方法,盡管這些在現在是非常常見。以及相比Vue呼叫子元件的介面顯得有點笨重。
如果你有興趣研究,會發現它們在介面設計的構思理念上是不同的。這些通過各自建立的 simple Todo List 可以體現出來。或許有點主觀,但是很多人認為Vue的API介面更簡單結構更優雅。
Polymer
Polymer 是另一個由谷歌贊助的專案,事實上也是Vue的一個靈感來源。Vue的元件可以粗略的類比於Polymer的自定義元素,並且兩者具有相似的開發風格。最大的不同之處在於,Polymer是構建於最新版的Web Components標准之上的,並且需要非凡的polyfills來工作(效能下降),瀏覽器本身不支援這些功能。相比而言,Vue不需要依賴polyfills來工作,最低到IE9。
在 Polymer 1.0版本中,為了彌補效能,團隊非常有限的使用資料系結系統。例如,在Ploymer中支援的唯一表達式只有布林值否定和單一的方法的呼叫,它的puted方法的實現也不是很靈活。
Polymer 自定義的元素是用HTML檔案來建立的,這回限制你的普通的JavaScript/CSS(和被現代瀏覽器普遍支援的語言特性)。相比之下,Vue的單檔案允許你非常容易的使用ES2015和你想用的Css的預編譯處理器。
當部署到生產環境的時候,Polymer建議使用HTML Imports載入所有資源。而這要求伺服器和客戶端都支援Http 2.0協議,且瀏覽器實現了標准。這是否可行就取決於你的目標使用者和部署環境了。如果狀況不佳,你必須用Vulcanizer工具來來打包Polymer元素。在這方面,Vue 可以結合非同步元件的特性和Webpack的程式碼分割特性來實現懶載入(lazy-loaded)。這同時確保了對舊瀏覽器的相容且又能更快載入。
對Vue和Web Component標准之間進行深層次的整合,也是完全可行的,比如Custom Elements、Shadow DOM的樣式封裝。然而現在在我們做出嚴肅的承諾之前,我們仍在等待標准成熟,進而廣泛應用於主流的瀏覽器中。
Riot
Riot 2.0 提供了一個類似於基於元件的開發模型(在Riot中稱之為」Tag」),提供小巧精美的API。Riot 和 Vue 可能共享一些設計理念。即使相比Roit重一點,Vue還是有很多顯著優勢的:
根據真實條件來渲染,Roit根據是否有分支簡單顯示或隱藏所有內容。

功能更加強大的路由機制,Roit的路由功能的API是極少的。

更多成熟工具的支援。Vue 提供官方支援Webpack、Browserify和SystemJS,而 Roit 是依靠社群來建立整合系統。
過渡效果系統。Riot現在沒有提供。

更好的效能。Roit 盡管廣告稱用虛擬DOM,實際上用的還是臟檢查機制,因此和Angular 1患有相同的效能問題。
以上所述是我給大家介紹的Vue.js 2.0 和 React、Augular等其他前端框架大比拼,希望對大家有所幫助,如果大家有任何疑問請給我留言,我會及時回復大家的。在此也非常感謝大家對指令碼之家網站的支援!

react.js vue.js 這些前端框架都必須在node.js上才能跑嗎

這些js寫的吧,你tomcat怎麼解析js,而且tomcat也是呼叫第三方的直譯器來解析程式碼,你看node.js能不能整合到tomcat,有沒有類似的外掛。

並不是,你本地隨便建個檔案就能跑。

閱讀全文

與vuejs20路由詳解相關的資料

熱點內容
如何在ppt中嵌入代碼 瀏覽:983
本科電大在什麼網站報名 瀏覽:836
qq恢復好友不讓對方知道 瀏覽:370
ps文件變成黑色死圖層 瀏覽:602
數據分析和直覺哪個信息好 瀏覽:335
java常見面試難題 瀏覽:207
磁力貼文件夾 瀏覽:363
網路促銷注意什麼 瀏覽:562
什麼是計算機編程的基本特徵 瀏覽:938
web圖表工具 瀏覽:543
vb讀取隨機文件 瀏覽:966
快捷圖標添加到壓縮文件 瀏覽:244
qq郵箱能接收多大的文件 瀏覽:817
洗頭房是什麼意思網路語什麼意思 瀏覽:957
裝了win10玩游戲很卡 瀏覽:688
linux系統掛載分區 瀏覽:898
絕地求生大逃殺文件夾在哪裡 瀏覽:482
交通12123app 瀏覽:709
微信打開文件有沒有查找功能 瀏覽:263
會聲會影圖片教程 瀏覽:652

友情鏈接