兩者之間的相同之處
同樣是基于組件開發(fā)的輕量級框架,同樣是專注于用戶界面的視圖view層。
如何選擇
1.1 如果喜歡用模板搭建應(yīng)用(或者有這個想法)選擇Vue
Vue應(yīng)用默認(rèn)的是把markup放在HTML中,數(shù)據(jù)綁定表達(dá)式和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中創(chuàng)建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'));模板可以更好地把布局和功能分隔開,但是需要學(xué)習(xí)所有的HTML擴(kuò)展語法,而渲染函數(shù)只需要標(biāo)準(zhǔn)的HTML和JavaScript。
注意:vue2.0提供使用模板和渲染函數(shù)的選項
1.2 想要簡單一點(diǎn)的語法,和更快的渲染速度,選擇vue
使用Vue不需要轉(zhuǎn)譯,直接運(yùn)行在瀏覽器中,但是React代碼重度依賴于JSX和ES6語法。
1.2.1 兩者處理數(shù)據(jù)的方式不一樣
vue的數(shù)據(jù)可變,React的數(shù)據(jù)不可變
//vuethis.message = this.message.split('').reverse().join('');//Reactthis.setState({ message: this.state.message.split('').reverse().join('') });對于state的數(shù)據(jù)變化,Vue比React的重新渲染系統(tǒng)更快更有效率。
1.3 想要構(gòu)建一個大型的應(yīng)用程序,選擇React
模板的使用會阻礙應(yīng)用擴(kuò)展到更大規(guī)模,模板容易出現(xiàn)很難注意到的運(yùn)行時的錯誤,同時也很難去測試,重構(gòu),分解。
1.4 想要一個同時適用于web端和原生APP的框架,選擇React
React Native 是一個使用JavaScript構(gòu)建出移動端原生應(yīng)用程序(ios Android)的庫,與React。js相同,只是不使用web組件,而是使用原生組件,只要會其中一個,就會另一個,
這樣無論是開發(fā)web端還是移動端都可以用。
1.5 要最大的生態(tài)系統(tǒng),最全面問題解決,更全的工具和插件可以使用React
具數(shù)量統(tǒng)計,React在npm上的下載量為250萬/月,vue為22.5萬/月
新聞熱點(diǎn)
疑難解答
圖片精選