精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

React 還是 Vue:你該如何選擇?

開發 開發工具
React和Vue的適用范圍無疑是很相似的:同樣是基于組件的輕量級框架,同樣專注于用戶界面的視圖層。同樣可以用在簡單的項目中,也同樣可以使用全家桶擴展為復雜的應用程序。

本文譯自React or Vue: Which Javascript UI Library Should You Be Using?,原文需翻墻。

2016年React鞏固了它作為前端框架之王的地位,這一年中可以看到它在Web端和移動端的快速成長,同時穩穩領先于它的主要競爭對手Angular。

但是2016對Vue來說也是同樣令人印象深刻的一年,它發布了Vue 2.0版本并且在JavaScript社區引起了巨大反響,GitHub上多出的25000顆star就是最好的證明。

React和Vue的適用范圍無疑是很相似的:同樣是基于組件的輕量級框架,同樣專注于用戶界面的視圖層。同樣可以用在簡單的項目中,也同樣可以使用全家桶擴展為復雜的應用程序。

因為,很多Web開發者想知道他們應該使用哪個框架。是其中一個明顯優于另一個?還是他們有各自的優點和坑?或者他們基本就是一個樣?

兩個框架 兩個擁護者

在本文中,我想用一次公平,徹底的對比來回答上面的疑問。但是唯一的問題是我是一個Vue粉絲,完全不夠客觀。今年我在項目中重度使用Vue,在Medium上大加贊賞,甚至還發布了Udemy課程

為了平衡我的偏見,我叫上了我的朋友Alexis Mangin,他是一個很牛的JavaScript開發者,同時也是一個React鐵粉。他同樣沉浸于React中,經常在Web端和移動端的項目中使用。

有一天Alexis問我:“為什么你這么中意Vue,而不是React呢?”那時候我不太了解React, 沒辦法給出一個好的答案。所以我出了一個主意,找一天時間,帶上筆記本電腦,互相介紹一下彼此做出選擇的原因。

經過大量的討論和和互相學習后,我們找到了6個關鍵點。

如果你喜歡用模板搭建應用(或者有這個想法),請選擇Vue

Vue應用的默認選項是把markup放在HTML文件中。數據綁定表達式采用的是和Angular相似的mustache語法,而指令(特殊的HTML屬性)用來向模板添加功能。

下面的示例是一個簡單的Vue應用。它會展示message和一個用來reverse message的按鈕:

 

  1. // HTML 
  2. <div id="app"
  3.   <p>{{ message }}</p> 
  4.   <button v-on:click="reverseMessage">Reverse Message</button> 
  5. </div> 
  6. // JS 
  7. new Vue({ 
  8.   el: '#app'
  9.   data: { 
  10.     message: 'Hello Vue.js!' 
  11.   }, 
  12.   methods: { 
  13.     reverseMessage: function () { 
  14.       this.message = this.message.split('').reverse().join(''); 
  15.     } 
  16.   } 
  17. }); 

相比之下,React應用不使用模板,它要求開發者借助JSX在JavaScript中創建DOM。下面是用React實現的同樣的應用:

 

  1. // HTML 
  2. <div id="app"></div> 
  3. // JS (pre-transpilation) 
  4. class App extends React.Component { 
  5.   constructor(props) { 
  6.     super(props); 
  7.     this.state = { 
  8.       message: 'Hello React.js!' 
  9.     }; 
  10.   } 
  11.   reverseMessage() { 
  12.     this.setState({  
  13.       message: this.state.message.split('').reverse().join('')  
  14.     }); 
  15.   } 
  16.   render() { 
  17.     return ( 
  18.       <div> 
  19.         <p>{this.state.message}</p> 
  20.         <button onClick={() => this.reverseMessage()}> 
  21.           Reverse Message 
  22.         </button> 
  23.       </div> 
  24.     ) 
  25.   } 
  26. ReactDOM.render(App, document.getElementById('app')); 

對于來自標準Web開發方式的新開發者,模板更容易理解。但是一些資深開發者也喜歡模板,因為模板可以更好的把布局和功能分割開來,還可以使用Pug之類的模板引擎。

但是使用模板的代價是不得不學習所有的HTML擴展語法,而渲染函數只需要會標準的HTML和JavaScript。而且比起模板,渲染函數更加容易調試和測試。當然你不應該因為這方面的原因錯過Vue,因為在Vue2.0中提供了使用模板或者渲染函數的選項。

如果你喜歡簡單和“能用就行”的東西,請選擇Vue

一個簡單的Vue項目可以不需要轉譯直接運行在瀏覽器中,所以使用Vue可以像使用jQuery一樣簡單。當然這對于React來說在技術上也是可行的,但是典型的React代碼是重度依賴于JSX和諸如class之類的ES6特性的。

Vue的簡單在程序設計的時候體現更深,讓我們來比較一下兩個框架是怎樣處理應用數據的(也就是state)。

React中的state是不可變(immutable)的,所以不能直接改變,需要使用API中的setState方法:

  1. this.setState({ 
  2.     message: this.state.message.split('').reverse().join(''
  3. }); 

React中是通過比較當前state和前一個state來決定何時在DOM中進行重渲染以及渲染的內容,因此需要不可變(immutable)的state。

Vue中的數據是可變(mutated)的,所以同樣的操作看起來更加簡潔。

  1. // Note that data properties are available as properties of 
  2. // the Vue instance 
  3. this.message = this.message.split('').reverse().join(''); 

讓我們來看看Vue中是如何進行狀態管理的。當向state添加一個新對象的時候,Vue將遍歷其中的所有屬性并且轉換為getter,setter方法,現在Vue的響應系統開始保持對state的跟蹤了,當state中的內容發生變化的時候就會自動重新渲染DOM。令人稱道的是,Vue中改變state的狀態的操作不僅更加簡潔,而且它的重新渲染系統也比React 的更快更有效率。Vue的響應系統還有有些坑的,例如:它不能檢測屬性的添加和刪除和某些數組更改。這時候就要用到Vue API中的類似于React的set方法來解決。

如果你想要你的應用盡可能的小和快,請選擇Vue

當應用程序的狀態改變時,React和Vue都將構建一個虛擬DOM并同步到真實DOM中。 兩者都有各自的方法優化這個過程。

Vue核心開發者提供了一個benchmark測試,可以看出Vue的渲染系統比React的更快。測試方法是10000個項目的列表渲染100次,結果如下圖。

[[180143]]

從實用的觀點來看,這種benchmark只和邊緣情況有關,大部分應用程序中不會經常進行這種操作,所以這不應該被視為一個重要的比較點。但是,頁面大小是與所有項目有關的,這方面Vue再次領先,它目前的版本壓縮后只有25.6KB。React要實現同樣的功能,你需要React DOM(37.4KB)和React with Addon庫(11.4KB),共計44.8KB,幾乎是Vue的兩倍大。雙倍的體積并不能帶來雙倍的功能。

如果你打算構建一個大型應用程序,請選擇React

像文章開頭那種同時用Vue和React實現的簡單應用程序,可能會讓一個開發者潛意識中更加傾向于Vue。這是因為基于模板的應用程序第一眼看上去更加好理解,而且能很快跑起來。但是這些好處引入的技術債會阻礙應用擴展到更大的規模。模板容易出現很難注意到的運行時錯誤,同時也很難去測試,重構和分解。

相比之下,Javascript模板可以組織成具有很好的分解性和干(DRY)代碼的組件,干代碼的可重用性和可測試性更好。Vue也有組件系統和渲染函數,但是React的渲染系統可配置性更強,還有諸如淺(shallow)渲染的特性,和React的測試工具結合起來使用,使代碼的可測試性和可維護性更好。

與此同時,React的immutable應用狀態可能寫起來不夠簡潔,但它在大型應用中意義非凡,因為透明度和可測試性在大型項目中變得至關重要。

如果你想要一個同時適用于Web端和原生APP的框架,請選擇React

React Native是一個使用Javascript構建移動端原生應用程序(iOS,Android)的庫。 它與React.js相同,只是不使用Web組件,而是使用原生組件。 如果你學過React.js,很快就能上手React Native,反之亦然。

  1. // JS 
  2. import React, { Component } from 'react'
  3. import { AppRegistry, Text, View } from 'react-native';  
  4. class HelloWorld extends Component {   
  5.   render() {     
  6.     return (       
  7.       <View>         
  8.         <Text>Hello, React Native!</Text> 
  9.       </View> 
  10.     );   
  11.   } 
  12. AppRegistry.registerComponent('HelloWorld', () => HelloWorld); 

它的意義在于,開發者只需要一套知識和工具就能開發Web應用和移動端原生應用。如果你想同時做Web端開發和移動端開發,React為你準備了一份大禮。阿里的Weex也是一個跨平臺UI項目,目前它以Vue為靈感,使用了許多相同的語法,同時計劃在未來完全集成Vue,然而集成的時間和細節還不清楚。因為Vue將HTML模板作為它設計的核心部分,并且現有特性不支持自定義渲染,因此很難看出目前的Vue.js的跨平臺能力能像React和React Native一樣強大。

如果你想要最大的生態系統,請選擇React

毫無疑問,React是目前最受歡迎的前端框架。它在NPM上每個月的下載量超過了250萬次,相比之下,Vue是22.5萬次。

人氣不僅僅是一個膚淺的數字,這意味著更多的文章,教程和更多Stack Overflow的解答,還意味有著更多的工具和插件可以在項目中使用,讓開發者不再孤立無援。

這兩個框架都是開源的,但是React誕生于Facebook,有Facebook背書,它的開發者和Facebook都承諾會持續維護React。相比之下,Vue是獨立開發者尤雨溪的作品。尤雨溪目前在全職維護Vue,也有一些公司資助Vue,但是規模和Facebook和Google沒得比。不過請對Vue的團隊放心,它的小規模和獨立性并沒有成為劣勢,Vue有著固定的發布周期,甚至更令人稱道的是,Github上Vue只有54個open issue,3456個closed issue,作為對比,React有多達530個open issue,3447個closed issue。

如果你已經用其中一個用的很爽,就別變了

總結一下,我們發現的,Vue的優勢是:

  • 模板和渲染函數的彈性選擇

  • 簡單的語法和項目配置

  • 更快的渲染速度和更小的體積

React的優勢是:

  • 更適合大型應用和更好的可測試性

  • Web端和移動端原生APP通吃

  • 更大的生態系統,更多的支持和好用的工具

然而,React和Vue都是很優秀的框架,它們之間的相似之處多過不同之處,并且大部分的優秀功能是相通的:

  • 用虛擬DOM實現快速渲染

  • 輕量級

  • 響應式組件

  • 服務端渲染

  • 集成路由工具,打包工具,狀態管理工具的難度低

  • 優秀的支持和社區

如果你覺得我們有所遺漏的話歡迎在評論中指出。

責任編輯:王雪燕 來源: 松子
相關推薦

2019-07-05 10:53:55

ReactVue前端

2016-01-20 11:22:17

增量部署全量部署運維

2020-04-06 09:18:08

前端開發框架

2021-04-17 18:19:23

FlutterReact Nativ開發

2012-10-10 08:44:18

NativeWebHybrid

2010-07-06 09:14:56

2019-03-10 22:21:47

框架AI開發

2017-01-09 16:40:07

React NatiAndroid 開發

2019-07-05 15:45:39

UbuntuFedoraLinux

2018-10-15 10:08:53

程序員技能深度學習

2019-04-19 11:56:48

框架AI開發

2021-03-12 18:25:09

開發前端React

2012-06-14 10:06:43

創業動態語言靜態語言

2021-10-26 10:30:31

代碼編輯器LinuxVS Code

2018-08-07 10:11:08

智能

2020-01-03 09:57:33

Microsoft SSQL數據庫

2015-07-09 10:22:27

CloudStackOpenStack云計算

2023-11-09 09:13:48

GraphQLAPI 架構

2024-02-20 01:53:01

ReactFlutter開發

2015-09-25 10:02:52

BlocksDelegates開發
點贊
收藏

51CTO技術棧公眾號

亚洲精品第五页| 男女做暖暖视频| 成人亚洲免费| 亚洲精品精品亚洲| 久久精品人成| 中文字幕二区三区| 精品电影一区| 中文字幕欧美精品日韩中文字幕| 日韩精品xxx| **欧美日韩在线观看| 亚洲精品美腿丝袜| 日韩动漫在线观看| 丰满大乳国产精品| 捆绑调教一区二区三区| 91福利视频在线观看| 糖心vlog免费在线观看| 日韩系列在线| 日韩三级视频中文字幕| 狠狠干 狠狠操| 久操视频在线免费播放| 成人毛片在线观看| 成人免费观看网址| 免费一级a毛片| 99av国产精品欲麻豆| 久青草国产97香蕉在线视频| 国产手机在线观看| 免费观看成人www动漫视频| 欧美二区三区的天堂| 乱子伦视频在线看| av中文资源在线资源免费观看| 欧美极品xxx| 国产亚洲自拍偷拍| 精品人妻一区二区三区浪潮在线| 七七婷婷婷婷精品国产| 日韩免费视频在线观看| 日韩av在线播| 午夜久久tv| 久久久电影免费观看完整版| 欧美一区二区三区粗大| 精品影片在线观看的网站| 亚洲激情国产精品| 亚洲午夜久久久久久久久| 国内精品视频| 91精品欧美综合在线观看最新| 看欧美ab黄色大片视频免费| 樱桃视频成人在线观看| 岛国av一区二区| 波多野结衣家庭教师在线播放| 久久不射影院| 亚洲成人一区在线| www污在线观看| caoporm免费视频在线| 国产精品国产三级国产a| 视频在线精品一区| a中文在线播放| 中文字幕高清不卡| 一级做a爰片久久| 一区二区三区视频网站| 国产精品久久久久精k8| 一区二区视频在线播放| 在线免费看黄网站| 1区2区3区国产精品| 黄色网络在线观看| 欧美伦理免费在线| 五月婷婷久久综合| 97在线免费公开视频| 亚洲综合在线电影| 欧美日韩国产片| 久久久久久久久久毛片| 77成人影视| 日韩黄色av网站| 一级黄色录像毛片| 亚欧美无遮挡hd高清在线视频| 久久艳片www.17c.com| 九九热国产在线| 国产欧美短视频| 国产精品免费久久久久久| 伊人影院中文字幕| 国产v综合v亚洲欧| 欧美精品一区二区三区在线四季| 成人免费高清在线播放| 最新国产の精品合集bt伙计| 久久久久久久香蕉| 天堂资源在线| 欧美日韩一区精品| 性活交片大全免费看| 欧亚精品一区| 久久精品国产清自在天天线 | 99re8这里有精品热视频免费| 亚洲激情中文字幕| 中文字幕欧美激情极品| 欧美黄免费看| 国产精品扒开腿做| 亚洲国产精品视频在线| 国产调教视频一区| 五月天激情图片| 欧美动物xxx| 欧美一区二区在线看| 无套内谢大学处破女www小说| 色综合天天爱| 97视频色精品| 国产精品久久免费| 久久日韩粉嫩一区二区三区| 激情图片qvod| 深夜视频一区二区| 亚洲第一男人av| 欧美一级特黄高清视频| 香蕉久久夜色精品| 99中文字幕| 中文字幕在线观看日本| 精品色蜜蜜精品视频在线观看| 国产精品人人爽人人爽| 青青草久久爱| 欧美精品一二区| 成人黄色片在线观看| aaa国产一区| av影院在线播放| 成人午夜在线| 国产亚洲一级高清| 国产福利拍拍拍| 国产suv精品一区二区6| 精品久久免费观看| 影音成人av| 日韩精品免费在线播放| 日韩视频中文字幕在线观看| 日本aⅴ亚洲精品中文乱码| 极品日韩久久| 黄色成人在线网| 4438x成人网最大色成网站| 第四色在线视频| 在线看片欧美| 波多野结衣精品久久| av黄色在线观看| 91福利社在线观看| 久久久久久久久久久久久久久| 1024成人| 久久99精品久久久久久青青日本| 日本理论片午伦夜理片在线观看| 欧美一区三区四区| 欧美日韩黄色网| 国产一区亚洲一区| 国产一区一区三区| 高清一区二区三区av| www.久久久久久.com| 亚洲一卡二卡在线| 国产精品国产a级| 手机av在线网| 香蕉久久网站| 亚洲午夜精品17c| 国产乱码精品一区二区三区卡 | 国产精品久久久久久亚洲毛片| 欧美黄色一级片视频| 国产精品一区2区3区| 日产日韩在线亚洲欧美| 黄色国产在线| 欧美午夜影院一区| 日本激情视频一区二区三区| 久久电影国产免费久久电影| 一区国产精品| 韩国一区二区三区视频| 欧美成人国产va精品日本一级| 国产高清视频免费观看| 亚洲国产精品久久人人爱| 亚洲精品乱码久久久久久蜜桃图片| 国产精品草草| 久久亚洲高清| 国外成人福利视频| 不卡中文字幕av| 日本黄色免费视频| 色女孩综合影院| 影音先锋男人资源在线观看| 国产精品18久久久久久久久| 国产精品一色哟哟| 国产成人调教视频在线观看| 国产免费久久av| 欧美日韩色网| 一区二区福利视频| 99国产精品久久久久99打野战| 亚洲一区二区av在线| 中文字幕一区二区三区人妻电影| 免费成人在线视频观看| 国产 国语对白 露脸| 亚洲成a人片77777在线播放| 国产美女精彩久久| www555久久| 尤物yw午夜国产精品视频| 精品国产九九九| 欧美日韩亚洲激情| 潘金莲一级黄色片| 97精品久久久久中文字幕| mm131亚洲精品| 激情久久婷婷| 亚洲国产欧美不卡在线观看| 97成人在线| 国产精品羞羞答答| 女厕盗摄一区二区三区| 久久九九免费视频| 久久米奇亚洲| 欧美大片日本大片免费观看| 69视频免费看| 性做久久久久久久久| 亚洲色图27p| 99久久国产综合精品色伊| 免费精品99久久国产综合精品应用| 伊人激情综合| 佐佐木明希av| 日韩国产专区| 久久久久网址| 亚洲综合网狠久久| 国产精品无码专区在线观看| 国产粉嫩在线观看| 久久福利网址导航| 天堂а√在线资源在线| 日韩精品视频免费| 亚洲欧美激情在线观看| 欧美午夜电影在线播放| 毛片毛片女人毛片毛片| 亚洲综合免费观看高清完整版 | 国产精品日日摸夜夜爽| 久久国内精品视频| 黄色一级免费大片| 国产一级久久| 欧美精品自拍视频| 欧美三级第一页| 日韩视频在线观看视频| 日韩1区2区| 台湾成人av| 精品国产一区二区三区香蕉沈先生 | 91九色丨porny丨国产jk| 一级欧洲+日本+国产| 在线不卡视频一区二区| 日韩av久操| 亚洲春色在线| 日本大胆欧美| 亚洲蜜桃在线| 色乱码一区二区三区网站| 午夜精品一区二区三区四区 | 欧美成人性色生活仑片| 黄av在线免费观看| 久久精品青青大伊人av| 日本a在线播放| 精品国产一区二区三区久久狼5月| av中文在线| 神马久久久久久| 视频一区二区三区不卡| 中文字幕日本精品| 日本在线天堂| 久久久精品久久| 最新超碰在线| 欧美高清videos高潮hd| 好看的中文字幕在线播放| 欧美激情视频三区| av中文资源在线资源免费观看| 性色av一区二区三区在线观看| 国产理论在线| 国产成人精品av在线| 日韩欧美少妇| 成人欧美一区二区三区在线| 日本99精品| 狠狠色噜噜狠狠狠狠色吗综合| 欧美韩一区二区| 热re99久久精品国产99热| 国产尤物久久久| 亚洲一区三区视频在线观看| 久久久久免费av| 欧美日韩福利在线| 欧美亚洲一级| 污网站在线免费| 国产91精品久久久久久久网曝门 | av老司机久久| 亚洲国产精品99久久| 麻豆导航在线观看| 俺去亚洲欧洲欧美日韩| 免费在线国产视频| 国产va免费精品高清在线观看| 另类一区二区三区| 超碰97在线资源| 一本色道久久综合狠狠躁的番外| 亚洲欧洲一区二区福利| 欧美特黄一级| 日本激情视频在线| 国产精品白丝av| 精品人妻少妇嫩草av无码| 亚洲欧洲美洲综合色网| 国产黄色片视频| 欧美日韩精品一二三区| 日韩一级在线播放| 中文字幕国产日韩| www.综合网.com| 91精品国产综合久久香蕉最新版 | 欧美视频在线第一页| 国产农村妇女毛片精品久久莱园子| 日本特黄a级片| www..com久久爱| 国产午夜精品理论片在线| 欧美视频二区36p| 99久久99久久久精品棕色圆| 亚洲乱码av中文一区二区| av大全在线| 国产精品久久久久久久久久久新郎 | 精品国产乱码久久久久久108| 日韩免费久久| 欧美女人性生活视频| 国产麻豆精品久久一二三| 午夜在线观看一区| 性久久久久久久久久久久| 99精品视频免费看| 中文字幕国产亚洲| 亚洲永久av| 国产另类自拍| 欧美日韩精品| 中文字幕第17页| 国产欧美日韩亚州综合| 亚洲免费激情视频| 日韩免费高清av| 毛片av在线| 国产精品白丝jk喷水视频一区| 精品国产导航| 久久艹国产精品| 国产成人亚洲综合a∨婷婷| 亚洲精品国产精品乱码在线观看| 色婷婷综合视频在线观看| 午夜av免费观看| 国内精品久久影院| 伊人精品久久| 欧美另类videosbestsex日本| 九色综合狠狠综合久久| 国产一二三四区在线| 色婷婷综合久久久久中文一区二区| 天堂在线资源库| 97香蕉久久夜色精品国产| baoyu135国产精品免费| 日本福利视频在线观看| 国产一区二区精品在线观看| 日本一级片免费| 在线观看91av| 国产一二三区在线观看| 成人精品视频99在线观看免费| 久久国产成人精品| 国产原创精品在线| 国产精品大尺度| 国产女人高潮时对白| 久久亚洲精品中文字幕冲田杏梨| 亚洲国产伊人| 国产91porn| 处破女av一区二区| 五月天综合在线| 亚洲国产精品字幕| 欧美电影免费看| 亚洲免费不卡| 国产一区中文字幕| 久久成人在线观看| 亚洲第一网站免费视频| 成人免费观看在线观看| 精品欧美一区二区精品久久| 亚洲免费在线| 刘亦菲国产毛片bd| 欧美一区二区黄| 欧美女同一区| 欧美精品一区二区视频| 久久国产综合精品| 免费日韩在线视频| 日韩精品久久久久| 韩日精品一区| 99视频精品全部免费看| 成人av网站大全| 亚洲av无码不卡| 久久福利网址导航| 欧美中文一区| 九九精品久久久| 亚洲无人区一区| 国产在线视频你懂得| 成人综合国产精品| 在线欧美不卡| 中文天堂资源在线| 日韩美女视频在线| 欧美激情喷水| 国产激情片在线观看| 久久综合九色综合97婷婷| 一本色道久久综合无码人妻| 欧美国产第一页| 精品国产一区二区三区小蝌蚪| 超碰人人草人人| 午夜精品成人在线| 午夜在线播放| 精品一区二区国产| 麻豆视频一区二区| 国产污视频在线看| 色香阁99久久精品久久久| 草莓视频一区二区三区| www.超碰com| 亚洲高清免费观看| 婷婷在线视频观看| 欧美人xxxxx| 国产成人免费高清| 国产成人av免费| 97激碰免费视频| 亚洲精品a级片| 国产调教在线观看| 日韩av一区二区在线|