十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
這篇文章主要講解了“React是不是雙向數(shù)據(jù)流”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“React是不是雙向數(shù)據(jù)流”吧!
創(chuàng)新互聯(lián)建站-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比鄖西網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式鄖西網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋鄖西地區(qū)。費用合理售后完善,十余年實體公司更值得信賴。
React不是雙向數(shù)據(jù)流,而是單向數(shù)據(jù)流。單向數(shù)據(jù)流是指數(shù)據(jù)在某個節(jié)點被改動后,只會影響一個方向上的其他節(jié)點;React中的表現(xiàn)就是數(shù)據(jù)主要通過props從父節(jié)點傳遞到子節(jié)點,若父級的某個props改變了,React會重渲染所有子節(jié)點。
本教程操作環(huán)境:Windows10系統(tǒng)、react17.0.1版、Dell G3電腦。
React不是雙向數(shù)據(jù)流,react是單向數(shù)據(jù)流
vue和ng都是雙向數(shù)據(jù)流、VM雙向數(shù)據(jù)綁定。而react是單向數(shù)據(jù)流,model層的數(shù)據(jù)流向view層。
單向數(shù)據(jù)流是什么意思?
單向數(shù)據(jù)流就是:數(shù)據(jù)在某個節(jié)點被改動后,只會影響一個方向上的其他節(jié)點。
單向數(shù)據(jù)流指只能從一個方向修改數(shù)據(jù),姑且我們可以這樣理解,如下圖所示。一個父組件下有兩個子組件1和子組件2,父組件可以向子組件傳遞數(shù)據(jù)。假如子組件都獲取到了父組件的name,在子組件1中對name重新修改之后,子組件2和父組件中的值并不會發(fā)生改變,這正是因為Vue中的機制是單向數(shù)據(jù)流,子組件不能直接改變父組件的狀態(tài)。但反過來,如果是父組件中的name修改了,當(dāng)然兩個子組件中的name也就改變了。
簡單的單向數(shù)據(jù)流(unidirectional data flow)是指用戶訪問View,View發(fā)出用戶交互的Action,在Action里對state進行相應(yīng)更新。state更新后會觸發(fā)View更新頁面的過程。這樣數(shù)據(jù)總是清晰的單向進行流動,便于維護并且可以預(yù)測。
React遵循從上到下的數(shù)據(jù)流向,即單向數(shù)據(jù)流。
React是單向數(shù)據(jù)流,數(shù)據(jù)主要從父節(jié)點傳遞到子節(jié)點(通過props)。如果頂層(父級)的某個props改變了,React會重渲染所有的子節(jié)點。
單向數(shù)據(jù)流并非‘單向綁定’,甚至單向數(shù)據(jù)流與綁定沒有‘任何關(guān)系’。對于React來說,單向數(shù)據(jù)流(從上到下)與單一數(shù)據(jù)源這兩個原則,限定了React中要想在一個組件中更新另一個組件的狀態(tài)(類似于Vue的平行組件傳參,或者是子組件向父組件傳遞參數(shù)),需要進行狀態(tài)提升。即將狀態(tài)提升到他們最近的祖先組件中。子組件中Change了狀態(tài),觸發(fā)父組件狀態(tài)的變更,父組件狀態(tài)的變更,影響到了另一個組件的顯示(因為傳遞給另一個組件的狀態(tài)變化了,這一點與Vue子組件的$emit()方法很相似)。
感謝各位的閱讀,以上就是“React是不是雙向數(shù)據(jù)流”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對React是不是雙向數(shù)據(jù)流這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!