React學習筆記

2021-10-02 01:18:57 字數 1727 閱讀 5462

專案需要使用react進行開發,故從vue與react的異同切入學習,記錄一下學習筆記

react整體的思路就是函式式,所以推崇純元件,資料不可變,單向資料流(單向繫結),當然需要雙向的地方也可以做到,比如結合redux-form;vue是響應式的思想,認為資料可變,通過watcher監聽每乙個屬性,如果有變化就更新虛擬dom。

react元件的擴充套件一般是通過高階元件,而vue元件會使用mixin。

vue內建了很多功能,而react做的很少,很多都是由社群來完成的,vue追求的是開發的簡單,而react更在乎方式是否正確

在建構函式中通過bind繫結this

在元件上使用箭頭函式

實驗特性: 通過匿名箭頭函式的方式繫結,const func = () =>與vue的雙向繫結不同,react不推薦雙向繫結,這樣丟失了單向資料流的特性,資料不易追蹤。

react使用props傳遞function,在子元件中呼叫父元件傳入的function修改父元件的state,從而維持state->props的單向流特性

子元件通過props.children獲得父元件填入槽的元素進行渲染,這種用法相當於vue中的預設插槽,children屬性是自帶prop

// child component

function

defaultslot

(props)

<

/div>)}

// parent component

function

(props)

父元件可以通過自定義的prop傳入react元素供子元件渲染,因為react元素本質上就是乙個物件(virtual dom)。

// child component

function

namedslot

(props)

<

/div>

"right"

>

<

/div>

<

/div>)}

// parent component, left & right is two component, it can be a react dom, too

function

(props)

right=

/>

)}

把乙個元件想象成乙個函式,props就是函式的入參,不可編輯,state就是函式內部自定義的變數,可以修改,給定入參(props)就會返回唯一的reactdom

在react中,如果是由react引發的事件處理(比如通過onclick引發的事件處理),呼叫setstate是非同步更新this.state(加入批處理佇列中,減少更新次數),除此之外的setstate呼叫會同步執行this.state(直接更新,不進行批處理)。所謂「除此之外」,指的是繞過react通過addeventlistener直接新增的事件處理函式,還有通過settimeout/setinterval產生的非同步呼叫。

該資料是否是由父元件通過 props 傳遞而來的?如果是,那它應該不是 state。

該資料是否隨時間的推移而保持不變?如果是,那它應該也不是 state。

你能否根據其他 state 或 props 計算出該資料的值?如果是,那它也不是 state。

vue和react的區別

元件 & props

事件處理

react哲學

學習react筆記

node中匯入模組 var 名稱 require 模組識別符號 node中向外暴露成員的形式 module.exports 在es6中,也通過規範的形式,規定了es6中如何匯入和匯出模組 es6中匯入模組,使用 import 模組名稱 from 模組識別符號 import 表示路徑 import f...

react獲取全域性 react學習筆記

個人之前也粗略看過react的文件,但是程式設計師最怕的就是沒有專案實操,看完後一段時間就全忘了,但是現在市面上react的使用又很多 我太難了 最近因為疫情只能呆在家裡,剛好利用這段時間搞一搞。當然也是粗略的搞,做完乙個大屏展示後,發現react上手確實比vue要難點。react沒有vue一樣的模...

React學習筆記 Props State

props是properties 屬性 效能 的縮寫,我們可以通過他把任意型別的資料傳遞給元件。大部分元件從props獲取資料並渲染 他是唯讀的!來看乙個例子 很明顯,在comment元件裡,我們通過this.props.author獲取到了hello world.裡author的值。通過獲取到了h...