最原始的網(wǎng)站開發(fā)是HTML代碼和程序代碼混在一起,后面大家發(fā)覺這種不好維護,前端看不懂代碼,程序員又不太懂前端,隨著網(wǎng)站應(yīng)用的復(fù)雜度越來越高,后面發(fā)展到采用模板和程序分離的方式,這種很大程序解決了HTML和代碼混在一起的問題。
現(xiàn)在,隨著前端技術(shù)的發(fā)展,如REACT、VUE等前后端分離技術(shù),現(xiàn)在很多產(chǎn)品應(yīng)用都采用這種開發(fā)方式,前端和后端采用API方式溝通,完全分離,增加了前端的難度,但更好的分工。(這里注意一下,如果是展示型網(wǎng)站,還是不太適合,不太適合搜索引擎優(yōu)化。)
目前前端有三大主流框架(vue,react,angular),react就是其中之一。Reaact有三個顯著的特點:1.聲明式;2.組件化;3.一次學(xué)習(xí),隨處編寫。
1.聲明式:React采用聲明范式,可以輕松描述應(yīng)用。為你應(yīng)用的每一個狀態(tài)設(shè)計簡潔的視圖,當(dāng)數(shù)據(jù)改變時 React 能有效地更新并正確地渲染組件。以聲明式編寫 UI,可以讓你的代碼更加可靠,且方便調(diào)試。
2.組件化: 通過 React 構(gòu)建組件,使得代碼更加容易得到復(fù)用,能夠很好的應(yīng)用在大項目的開發(fā)中。創(chuàng)建擁有各自狀態(tài)的組件,再由這些組件構(gòu)成更加復(fù)雜的 UI。組件邏輯使用 JavaScript 編寫而非模版,因此你可以輕松地在應(yīng)用中傳遞數(shù)據(jù),并使得狀態(tài)與 DOM 分離。
3.一次學(xué)習(xí),隨處編寫:無論你現(xiàn)在正在使用什么技術(shù)棧,你都可以隨時引入 React 來開發(fā)新特性,而不需要重寫現(xiàn)有代碼。React 還可以使用 Node 進行服務(wù)器渲染,或使用 React Native 開發(fā)原生移動應(yīng)用。
React里組件化是比較重要的,一般來說有兩種組件,一是一般組件,二是有狀態(tài)的組件。來看一個簡單的組件是怎樣組成的,如圖:

React 組件使用一個名為 render() 的方法,接收輸入的數(shù)據(jù)并返回需要展示的內(nèi)容。在示例中這種類似 XML 的寫法被稱為 JSX。被傳入的數(shù)據(jù)可在組件中通過 this.props 在 render() 訪問。
使用 React 的時候也可以不使用 JSX 語法。嘗試使用 Babel REPL,了解 JSX 被編譯成原生 JavaScript 代碼的步驟。
狀態(tài)組件,如圖:

除了使用外部數(shù)據(jù)(通過 this.props 訪問)以外,組件還可以維護其內(nèi)部的狀態(tài)數(shù)據(jù)(通過 this.state 訪問)。當(dāng)組件的狀態(tài)數(shù)據(jù)改變時,組件會再次調(diào)用 render() 方法重新渲染對應(yīng)的標(biāo)記。
現(xiàn)在,隨著前端技術(shù)的發(fā)展,如REACT、VUE等前后端分離技術(shù),現(xiàn)在很多產(chǎn)品應(yīng)用都采用這種開發(fā)方式,前端和后端采用API方式溝通,完全分離,增加了前端的難度,但更好的分工。(這里注意一下,如果是展示型網(wǎng)站,還是不太適合,不太適合搜索引擎優(yōu)化。)
目前前端有三大主流框架(vue,react,angular),react就是其中之一。Reaact有三個顯著的特點:1.聲明式;2.組件化;3.一次學(xué)習(xí),隨處編寫。
1.聲明式:React采用聲明范式,可以輕松描述應(yīng)用。為你應(yīng)用的每一個狀態(tài)設(shè)計簡潔的視圖,當(dāng)數(shù)據(jù)改變時 React 能有效地更新并正確地渲染組件。以聲明式編寫 UI,可以讓你的代碼更加可靠,且方便調(diào)試。
2.組件化: 通過 React 構(gòu)建組件,使得代碼更加容易得到復(fù)用,能夠很好的應(yīng)用在大項目的開發(fā)中。創(chuàng)建擁有各自狀態(tài)的組件,再由這些組件構(gòu)成更加復(fù)雜的 UI。組件邏輯使用 JavaScript 編寫而非模版,因此你可以輕松地在應(yīng)用中傳遞數(shù)據(jù),并使得狀態(tài)與 DOM 分離。
3.一次學(xué)習(xí),隨處編寫:無論你現(xiàn)在正在使用什么技術(shù)棧,你都可以隨時引入 React 來開發(fā)新特性,而不需要重寫現(xiàn)有代碼。React 還可以使用 Node 進行服務(wù)器渲染,或使用 React Native 開發(fā)原生移動應(yīng)用。
React里組件化是比較重要的,一般來說有兩種組件,一是一般組件,二是有狀態(tài)的組件。來看一個簡單的組件是怎樣組成的,如圖:

React 組件使用一個名為 render() 的方法,接收輸入的數(shù)據(jù)并返回需要展示的內(nèi)容。在示例中這種類似 XML 的寫法被稱為 JSX。被傳入的數(shù)據(jù)可在組件中通過 this.props 在 render() 訪問。
使用 React 的時候也可以不使用 JSX 語法。嘗試使用 Babel REPL,了解 JSX 被編譯成原生 JavaScript 代碼的步驟。
狀態(tài)組件,如圖:

除了使用外部數(shù)據(jù)(通過 this.props 訪問)以外,組件還可以維護其內(nèi)部的狀態(tài)數(shù)據(jù)(通過 this.state 訪問)。當(dāng)組件的狀態(tài)數(shù)據(jù)改變時,組件會再次調(diào)用 render() 方法重新渲染對應(yīng)的標(biāo)記。