兩者之間的相同之處
同樣是基于組件開發的輕量級框架,同樣是專注于用戶界面的視圖view層。
如何選擇
1.1 如果喜歡用模板搭建應用(或者有這個想法)選擇Vue
Vue應用默認的是把markup放在HTML中,數據綁定表達式和Angular一樣,采用{{}}的形式,而指令(特殊的HTML屬性)用來向模板中添加功能
<div> <p>{{ message }}</p> <button v-on:click="reverseMessage">Reverse Message</button></div>// JSnew Vue({ el: '#app', data: { message: 'Hello Vue.js!' }, methods: { reverseMessage: function () { this.message = this.message.split('').reverse().join(''); } }});React使用的是JSX語法(在JavaScript中創建DOM),而不使用模板。
<div id="app"></div>// JS (pre-transpilation)class App extends React.Component { constructor(props) { super(props); this.state = { message: 'Hello React.js!' }; } reverseMessage() { this.setState({ message: this.state.message.split('').reverse().join('') }); } render() { return ( <div> <p>{this.state.message}</p> <button onClick={() => this.reverseMessage()}> Reverse Message </button> </div> ) }}ReactDOM.render(App, document.getElementById('app'));模板可以更好地把布局和功能分隔開,但是需要學習所有的HTML擴展語法,而渲染函數只需要標準的HTML和JavaScript。
注意:vue2.0提供使用模板和渲染函數的選項
1.2 想要簡單一點的語法,和更快的渲染速度,選擇vue
使用Vue不需要轉譯,直接運行在瀏覽器中,但是React代碼重度依賴于JSX和ES6語法。
1.2.1 兩者處理數據的方式不一樣
vue的數據可變,React的數據不可變
//vuethis.message = this.message.split('').reverse().join('');//Reactthis.setState({ message: this.state.message.split('').reverse().join('') });對于state的數據變化,Vue比React的重新渲染系統更快更有效率。
1.3 想要構建一個大型的應用程序,選擇React
模板的使用會阻礙應用擴展到更大規模,模板容易出現很難注意到的運行時的錯誤,同時也很難去測試,重構,分解。
1.4 想要一個同時適用于web端和原生APP的框架,選擇React
React Native 是一個使用JavaScript構建出移動端原生應用程序(ios Android)的庫,與React。js相同,只是不使用web組件,而是使用原生組件,只要會其中一個,就會另一個,
這樣無論是開發web端還是移動端都可以用。
1.5 要最大的生態系統,最全面問題解決,更全的工具和插件可以使用React
具數量統計,React在npm上的下載量為250萬/月,vue為22.5萬/月
React是facebook的,會得到全面的支持與維護,vue是尤雨溪
帶領的小團隊維護的。
總結一下,我們發現的,Vue的優勢是:
- 模板和渲染函數的彈性選擇
- 簡單的語法和項目配置
- 更快的渲染速度和更小的體積
React的優勢是:
- 更適合大型應用和更好的可測試性
- Web端和移動端原生APP通吃
- 更大的生態系統,更多的支持和好用的工具
- 然而,React和Vue都是很優秀的框架,它們之間的相似之處多過不同- 之處,并且大部分的優秀功能是相通的:
* 用虛擬DOM實現快速渲染
* 輕量級
* 響應式組件
* 服務端渲染
* 集成路由工具,打包工具,狀態管理工具的難度低
* 優秀的支持和社區
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。
新聞熱點
疑難解答