03.04 React 01 -- 後端人員 React 知識點掃盲

React 01 -- 後端人員 React 知識點掃盲

React 01 -- 後端人員 React 知識點掃盲



作為後端攻城獅,寫前端代碼是一種什麼體驗?囧

非專業前端人員,如有不當之處,請指出,不甚感激!

1、運行前端項目

● 配置

React 01 -- 後端人員 React 知識點掃盲

修改 hosts 文件 127.0.0.1 項目中的域名

● 執行命令

前提:確保你安裝了較新版本的 Node.js

終端(cmd)切換到前端項目目錄下,一般開發工具自帶,點擊終端 Terminal,第一次運行:

>> npm install

注意:npm 從遠程安裝包,公司一般會有自己的庫,如果安裝包失敗,發現含有公司的域名,找前端要 npm 源,切換即可,下載比較慢,可以先去喝杯咖啡,聽首音樂。一切順利然後執行
>>> npm start

這個主要用於本地項目啟動,比如線上,使用 npm run prod,這個都是配置文件控制,咱不研究。

2、參考文檔

● React 官方網站

不懂就扒拉一下文檔

https://react.docschina.org/docs/getting-started.html

3、瞭解 React

● JSX 簡介

使用 React 框架,你需要掌握 JSX 語法


① 在 JSX 中嵌入表達式

React 01 -- 後端人員 React 知識點掃盲

這個和 Python 中 format 參數化的形式一樣。在 JSX 語法中,你可以在大括號內放置任何有效的 JavaScript 表達式。一般的話,我們把 JSX 拆分成多行,包裹到括號內。

React 01 -- 後端人員 React 知識點掃盲

② 注意事項

假如一個標籤裡面沒有內容,你可以使用 /> 來閉合標籤。

使用 React 框架,他會檢測你的語法,如果不正確,會報錯。

● 組件

我們 N 年前開發,主要是 html + js,修改東西,都得重啟項目,往往可以看到某個開發人員瀏覽器打開了 N 個頁面。什麼是組件式開發,舉個栗子,我現在要做一個表格,我只需要在一個html 裡寫一個 div 元素,剩下的表格部分,通過 React 虛擬dom 動態增加。當數據發生改變時,React 會高效地更新並重新渲染我們的組件。

React 01 -- 後端人員 React 知識點掃盲

組件

有沒有覺得,這段 js 代碼像 Java 程序,ShoppingList 繼承 React.Component,裡面有一個 render(中文:渲染) 的方法,裡面有我們熟悉的 html 代碼

● props

當 React 元素為用戶自定義組件時,它會將 JSX 所接收的屬性(attributes)轉換為單個對象傳遞給組件,這個對象被稱之為 “props”。

React 01 -- 後端人員 React 知識點掃盲

① 我們調用 ReactDOM.render() 函數,並傳入 <welcome> 作為參數。

② React 調用 Welcome 組件,並將 {name: 'Sara'} 作為 props 傳入。

③ Welcome 組件將

Hello, Sara

元素作為返回值。

④ React DOM 將 DOM 高效地更新為

Hello, Sara

注意: 組件名稱必須以大寫字母開頭。

React 會將以小寫字母開頭的組件視為原生 DOM 標籤。例如,

代表 HTML 的 div 標籤,而 <welcome> 則代表一個組件,並且需在作用域內使用 Welcome。所有 React 組件都必須像純函數一樣保護它們的 props 不被更改。

● state與生命週期

State 與 props 類似,但是 state 是私有的,並且完全受控於當前組件。

componentDidMount() 方法會在組件已經被渲染到 DOM 中後運行,所以,最好在這裡設置計時器:

React 01 -- 後端人員 React 知識點掃盲


① 當 <clock> 被傳給 ReactDOM.render() 的時候,React 會調用 Clock 組件的構造函數。因為 Clock 需要顯示當前的時間,所以它會用一個包含當前時間的對象來初始化 this.state。我們會在之後更新 state。

② 之後 React 會調用組件的 render() 方法。這就是 React 確定該在頁面上展示什麼的方式。然後 React 更新 DOM 來匹配 Clock 渲染的輸出。

③ 當 Clock 的輸出被插入到 DOM 中後,React 就會調用 ComponentDidMount() 生命週期方法。在這個方法中,Clock 組件向瀏覽器請求設置一個計時器來每秒調用一次組件的 tick() 方法。

④ 瀏覽器每秒都會調用一次 tick() 方法。 在這方法之中,Clock 組件會通過調用 setState() 來計劃進行一次 UI 更新。得益於 setState() 的調用,React 能夠知道 state 已經改變了,然後會重新調用 render() 方法來確定頁面上該顯示什麼。這一次,render() 方法中的 this.state.date 就不一樣了,如此以來就會渲染輸出更新過的時間。React 也會相應的更新 DOM。

⑤ 一旦 Clock 組件從 DOM 中被移除,React 就會調用 componentWillUnmount() 生命週期方法,這樣計時器就停止了。

>>>正確地使用 State:

React 01 -- 後端人員 React 知識點掃盲

事件處理

注意:這裡一般用箭頭函數比較方便,自動綁定 this

React 01 -- 後端人員 React 知識點掃盲

條件渲染

使用 if

React 01 -- 後端人員 React 知識點掃盲

● 列表 & Key

React 01 -- 後端人員 React 知識點掃盲

● 表單

React 01 -- 後端人員 React 知識點掃盲

● 使用 PropTypes 進行類型檢查

注意:

自 React v15.5 起,React.PropTypes 已移入另一個包中。請使用 prop-types 庫 代替。


① 限制單個元素

你可以通過 PropTypes.element 來確保傳遞給組件的 children 中只包含一個元素。


React 01 -- 後端人員 React 知識點掃盲

② 默認 Prop 值

您可以通過配置特定的 defaultProps 屬性來定義 props 的默認值:

React 01 -- 後端人員 React 知識點掃盲

● React 發起 ajax 請求(接口請求)

以 Axios 為例。

我們推薦你在 componentDidMount 這個生命週期函數中發起 AJAX 請求。這樣做你可以拿到 AJAX 請求返回的數據並通過 setState 來更新組件。


React 01 -- 後端人員 React 知識點掃盲

React 路由

我們訪問一個 URL,最終定向到哪個資源,這部分工作的處理程序,就是路由。

React 01 -- 後端人員 React 知識點掃盲

路由也是有狀態的,不同狀態對應不同功能,路由的參數傳遞,同樣也是綁定在 Props屬性 上面。

React 01 -- 後端人員 React 知識點掃盲

>>>


分享到:


相關文章: