react不是JavaScript,而是用JavaScript語言編寫的一個(gè)庫,是一個(gè)聲明式、高效且靈活的用于構(gòu)建用戶界面的JS庫;使用react可以將一些簡短、獨(dú)立的代碼片段組合成復(fù)雜的前端UI界面。
本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5&&react16版、Dell G3電腦。
JavaScript是一種高級的、解釋型的編程語言;它是一門基于原型、函數(shù)先行的語言,是一門多范式的語言,它支持面向?qū)ο缶幊?,命令式編程,以及函?shù)式編程。
而React 是一個(gè)聲明式,高效且靈活的用于構(gòu)建用戶界面的 JavaScript 庫。使用 React 可以將一些簡短、獨(dú)立的代碼片段組合成復(fù)雜的 UI 界面,這些代碼片段被稱作“組件”。
由于 React的設(shè)計(jì)思想極其獨(dú)特,屬于革命性創(chuàng)新,性能出眾,代碼邏輯卻非常簡單。所以,越來越多的人開始關(guān)注和使用,認(rèn)為它可能是將來 Web 開發(fā)的主流工具。
這個(gè)項(xiàng)目本身也越滾越大,從最早的UI引擎變成了一整套前后端通吃的 Web App 解決方案。衍生的 React Native 項(xiàng)目,目標(biāo)更是宏偉,希望用寫 Web App 的方式去寫 Native App。如果能夠?qū)崿F(xiàn),整個(gè)互聯(lián)網(wǎng)行業(yè)都會被顛覆,因?yàn)橥唤M人只需要寫一次 UI ,就能同時(shí)運(yùn)行在服務(wù)器、瀏覽器和手機(jī)。
React主要用于構(gòu)建UI。你可以在React里傳遞多種類型的參數(shù),如聲明代碼,幫助你渲染出UI、也可以是靜態(tài)的HTML DOM元素、也可以傳遞動(dòng)態(tài)變量、甚至是可交互的應(yīng)用組件。
對于企業(yè)來說,react是初級Web前端工程師與中高級前端工程師的分界線,隨著互聯(lián)網(wǎng)技術(shù)的革新以及越來越多的人涌入前端行業(yè),企業(yè)招聘的門檻抬高,而react可以看作是帥選人才的第一道網(wǎng)。
使用react的優(yōu)勢
1、React速度很快
它并不直接對DOM進(jìn)行操作,引入了一個(gè)叫做虛擬DOM的概念,安插在javascript邏輯和實(shí)際的DOM之間,性能好。
reactjs定義了一套變量形式的dom模型,一切操作和換算直接在變量中,這樣減少了操作真實(shí)dom,性能真是相當(dāng)?shù)母?,和主流MVC框架有本質(zhì)的區(qū)別,并不和dom打交道。
2、跨瀏覽器兼容
虛擬DOM幫助我們解決了跨瀏覽器問題,它為我們提供了標(biāo)準(zhǔn)化的API,甚至在IE8中都是沒問題的。
3、一切都是component:
代碼更加模塊化,重用代碼更容易,可維護(hù)性高。
4、單向數(shù)據(jù)流
其實(shí)reactjs的核心內(nèi)容就是數(shù)據(jù)綁定,所謂數(shù)據(jù)綁定指的是只要將一些服務(wù)端的數(shù)據(jù)和前端頁面綁定好,開發(fā)者只關(guān)注實(shí)現(xiàn)業(yè)務(wù)就行了
5、同構(gòu)、純粹的javascript
因?yàn)樗阉饕娴呐老x程序依賴的是服務(wù)端響應(yīng)而不是JavaScript的執(zhí)行,預(yù)渲染你的應(yīng)用有助于搜索引擎優(yōu)化。
6、兼容性好
比如使用RequireJS來加載和打包,而Browserify和Webpack適用于構(gòu)建大型應(yīng)用。它們使得那些艱難的任務(wù)不再讓人望而生畏。