當前位置:首頁 » 網頁前端 » systemjs實現微前端
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

systemjs實現微前端

發布時間: 2023-05-23 19:20:09

A. 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中支持的唯一表達式只有布爾值否定和單一的方法的調用,它的computed方法的實現也不是很靈活。
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等其他前端框架大比拼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

B. 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中支持的唯一表達式只有布爾值否定和單一的方法的調用,它的computed方法的實現也不是很靈活。
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等其他前端框架大比拼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

C. 認識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,有沒有類似的外掛。

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

D. 如何做商業前端框架+UI庫選型

這將幫助你了解前端社區中海量的工具。

當然,這些只是一些可選的列表,當你需要做出選擇的時候幫助你抉擇。


我自己使用它嗎?

是的,當我需要開始項目的時候,我用它來作為提醒。

同時,每當有人問「我該使用什麼框架呢?」的時候,我就會把這篇文章給他看。

因為,正如你明白的,事情沒有絕對的對與錯,但是有一些優質的框架能夠幫助做出我們更好的選擇。

另外,我也會不時的更新本文,因為有時候當我學習更多後也會改變當初的想法。
我應該怎樣開始?

如果你的項目不是很小,你應該需要下面幾件事:


  • 項目模塊化 我個人比較喜歡 Component-based architecture,因為他適用於 various-frameworks


同時,考慮一些其他的例子,比如 BOT 、 Elm Architecture 或者 re-frame 或者 CycleJS


  • 模塊載入器(RequireJS,Browserify, Webpack, ComponentJS, SystemJS)


這些東西能夠幫助我們保持Javascript(或者components)彼此獨立和可維護。


  • 包管理器(npm, jspm, bower)


我個人一直比較喜歡 npm ,似乎他是javascript和nodejs真正的標准。另外我會考慮bower來做補足,因為他是一個很好的下載靜態資源的工具,但它在管理組件和依賴又不如npm強大。


  • 自動部署/編譯/構建流水線(grunt/gulp/brunch/broccoli)


因為,如果一直做重復的事情的話生命是很短暫的。


  • CSS預處理(jss/stylus/sass/css-moles)和 postprocessors(css0, autoprefixer, postcss)


這些工具使css更美好,去除了一些瀏覽器兼容的問題。是的,我是從2015知道這些的,但是不論如何,它在過去確實是痛點。


  • 構建框架(Bootstrap, Zurb Foundation, Elemental UI, Material Lite)


這些框架讓很多web開發者合作,它們會幫助你處理基本的布局和樣式。

盡管,你可以考慮構建你自己的解決方案,如果你感覺構建很厲害或者希望成為前端專家,或者你需要為你的公司構建基本的視覺元素。

如果是這樣的話,建議你盡快使用方法論(BEM, OOCSS),它們可以幫助你節約時間。

我個人比較喜歡 BEM 命名方式和基本工作流,你能夠從 styleguide for Brainly.com找到一些可以幫助你的靈感。

如果你不構建基本的組成,建議看一看 HTML5 Boilerplate

測試工具(jasmine, karma, mocha, tape, itern)

任何人都需要測試,沒有例外的。

代碼質量監控工具(eslint, husky, editorconfig)

可以獲取幫助的社區(chats, IRC, meetups, twitter)

好了,下一步呢?

在選擇你的工具前有一些值得思考的問題需要解決。

准備好了嗎?

我需要和其他人合作嗎?他們是誰?他們想要什麼?

這個問題會幫助你選擇語言和工作流,這對你和你的夥伴都有幫助。

我最關注什麼?質量,開發速度,還是可維護性?

這樣你可以決定是否試驗一些新工具,以及是否能承擔失敗的風險。

是否需要開放給第三方?

面向的團隊不同可能會限制我們語言的選擇。

我是否在處理核心的項目

如果你處理核心項目,請最好選擇高穩定性的語言和框架,這更安全,讓你睡得更好。

是一個可交互的app還是基本的文檔頁面。

結果很可能是你僅僅需要基本的HTML +CSS + tools,或者靜態網站生成器或者CMS。

這是一個單一的項目還是其他項目的相關項目?

即使你有一系列項目,你也應該用一些組件和樣式引導,這些有不錯的文檔。

直接減少代碼重用,保持一致性。

另外,考慮SEO,和服務端渲染。
語言列表

當你回答完上面這些問題後,就可以和你的隊友聊聊,然後選擇一個語言了。

因為這里有很多的東西,而不是糟糕的Javascript,你可以選擇

是否有js開發團隊

考慮ES6(babel兼容)

這會讓你的生活簡單一些。

你是否偏愛typed語言?開發typed是否可以?

考慮 typescript

函數式編程是否接受?

你可以從簡單ES6庫開始,比如 lo-dash 或者 ramda。

這里有一些教程和書來幫助你開始美好的旅行。

你是否嘗試過函數式編程,想要更好的東西?

試試 elm ,很酷的!

你是否能夠全棧?

試試 clojurescript,很酷很酷的

你喜歡沙拉嗎?

試試scalaJS

你知道Haskell嗎?

試試 purescript,真的很酷

想要更多瘋狂的?

這里有一個可以編譯成javascript的語言列表,選一個然後享受吧。
框架列表

你僅僅需要基本的可運行的app?

沒有時間做更復雜的工作?

試試 angular. start looking for help imediately

你是否經常需要快速的原型開發?

是否能在未來修復一些問題?

試試 angular. 一些問題

你是嘗試前端開發的後端?

試試 angular. 尋找一些前端開發者

你是否需要很快的進行開發和構建,但是同時會丟失一些特點?

試試 ampersand/backbone

同樣的技術選型,怎樣從中型到大型?

把 marionette/chaplin添加到你的backbone裡面去,另外可以考慮 Reackjs

你是否有一些時間來實驗,同時得到很大的性能提升?

試試mithril/knockout/aurelia+

你是否有不錯的前端實驗精神,對函數式編程熟悉?

試試 ReactJS+Rex+ImmutableJS+

更多函數式編程技巧?或者偏好交互性強的應用?

使用 reactive streams(bacon, rxJS) 或者試試 Cycle.js(實驗性)

注意1: add streams any會是很好的選擇,可以推薦別人使用。

注意2: 請不要拒絕使用 FRP的reactive streams

你想要使用嚴格的驗證和通用處理方式?

你的應用會越來越大?

你計劃擴充你的團隊?

你有時間學習新東西?

建議花時間學習 EmberJS,他將會是很好的投資!

你是否需要「類桌面應用」?

你的應用有表格,圖例,或者其他分析功能?你在構建企業應用?

試試 ExtJS

你們是一個為其他開發者提供服務的工作室?

你最好有一個不錯的工具集,另外,同事之間最好有一些公共用例。

你是一個為他人提供工具的自由開發者?

適應他們的選擇。

嘗試angular,這將不會造成多大麻煩,讓其他人得到他們想要的。

注意:如果別人付費,請不要改變客戶的需求

你正在構建一個有吸引力的產品,它將會很多人使用?

有了明確的需求後我們就從上面的列表中選擇一個合適的框架。

關於開發什麼樣的應用你有明確的需求(比如10屏的移動應用)

花兩周時間來試驗特定的需求(ionic, famous, Sencha Touch)

怎樣開始編碼?

花一些時間閱讀你所選擇框架或者工具的文檔。
在社區裡面詢問一些經驗開發者怎樣算是優秀項目的開端。
准備所有的工具。
極客精神。但是我建議更加工程化一點。
...
成功。

不知道怎麼用我介紹的一些不常見框架?

看看 TodoMVC Examples,找到你選擇的框架。

但是記住,這些項目只是示例,大多數情況下他們不適合大中型項目。