3.輸入命令:①npmigcreatereactapp ENTER②createreactapp ENTER③createreactapp demo ENTER(demo是項目名稱,可以隨意取)④cddemo ENTER ⑤npmstart ENTER,安裝成功。React的生命周期詳解我們可以把React的渲染看成UIfn(state)狀態,可以稱為reconciler。
index:當一個組件的狀態或道具發生變化時,它自己的渲染函數會重新執行。注意:當執行父組件的渲染時,將再次執行子組件的渲染(因為它在父組件的渲染中)。也就是說,當綁定的事件改變狀態或道具時,渲染函數會重新執行解析頁面。此時解析時會用到新的數據,所以頁面會發生變化。
我們可以把React的渲染看作UIfn(state)狀態,可以調用reconciler來計算狀態變化。fn的這一部分可以稱為渲染器,用來渲染視圖中的狀態變化。協調器中有一個協調算法(即diff算法)。React中渲染器的表示是ReactDOM渲染器。
如圖,我們可以分為兩個階段>渲染階段執行和提交階段執行。或者可以分為四種狀態,即渲染Mount首屏時,Update更新時,Unmount卸載時,Error的后代節點發生錯誤時。圖中用紅色標記的三個生命周期函數在React17中已被放棄,不推薦使用。代替它們的,是這兩個標綠色的函數。
3、React的生命周期這周開始學習React的生命周期。React的生命周期大致分為三個階段:掛載、渲染和卸載。因此,React的生命周期可以分為兩類:掛載卸載過程和更新過程。React的生命周期圖:構造函數()完成React數據的初始化,它接受兩個參數:props和context。當您想在函數內部使用這兩個參數時,需要使用super()來傳入它們。
否則會導致這個指向錯誤。ComponentWillMount()一般用的比較少,在服務器端渲染用的比較多。它表示組件已經完成了constructor()初始化數據,但還沒有呈現DOM的過程。當組件第一次呈現時,dom節點已經生成。在這里可以調用ajax request,在data setState返回后組件會被重新渲染,在這里組件被卸載,數據被銷毀。
4、React安裝步驟1。創建一個新文件夾,例如:react2。進入react文件夾,按住shift鍵,右鍵打開PowerShell窗口。3.輸入命令:①npmigcreatereactapp ENTER②createreactapp ENTER③createreactapp demo ENTER(demo是項目名稱,可以隨意取)④cddemo ENTER ⑤npmstart ENTER,安裝成功。
5、 react事件機制1。調用注冊事件時,直接調用回調函數,沒有指定被調用的組件,所以不進行手動綁定。此時這是未定義的2.1,是駝峰名,不全是小寫的2。通過jsx,函數可以作為事件處理程序傳遞。而不是字符串3。不能在react中返回false來停止默認行為。必須顯式調用preventDefault4。react實現一套事件機制,模擬事件冒泡和捕獲的過程,采用事件代理、批量更新等方法。平滑了所有瀏覽器5.1的兼容性問題。react所有事件都安裝在文檔2中。react事件只有在真正的dom觸發了文檔3的氣泡之后才會被處理。所以本機事件將首先執行4。然后執行react合成事件5。最后,執行實際安裝在文檔6上的事件。React使用事件池合成合成事件,無需頻繁創建和銷毀事件對象7,可以大大節省內存。
6、 react的ts配置最近準備自己造一套輪子,技術棧暫定為react typescript。react介紹ts的時候還是有些坑的,寫篇文章記錄一下介紹過程。要引入ts,首先要選擇一個ts解析工具。這里我根據文檔選擇了awesometypescriptloader,所以我在webpack.config.js中添加然后配置了ts.config.js文件,配置的時候添加了這樣一個選項然后yarntest出現了一些bug。Import react必須導入* asReactFrom react,否則會出錯,錯誤如下。所以ts.config.js的配置應該如下。另外,我需要再次介紹tslint,所以我需要配置一個tslint配置。我將在下一節中談論它。
7、來自一位 react新手的 react入門須知所有的html和css都可以用js寫,這是jsx的用法。用來驗證數據類型是否符合你的需求,但是我沒有在現有的項目中指定數據的屬性,因為這些都是前后臺約定好的,這種用法如下:這與vue組件中props中的type:Array相同,這與vuerouter類似。可以看文檔,react路由器中文官網:中文官網react和vue一樣,都是使用vituraldom,不處理dom節點,從而大大提高了頁面的渲染效率。