React介紹
react不是一個mvc的框架,它僅僅是V層。它是一個鼓勵構(gòu)建隨著數(shù)據(jù)變化而改變UI表現(xiàn)的庫。
React的特點(diǎn)
虛擬dom
什么是虛擬dom?
一種在內(nèi)存中描述dom樹狀態(tài)的數(shù)據(jù)結(jié)構(gòu),當(dāng)數(shù)據(jù)改變之后,diff出最小的dom改變,渲染dom元素。
符合聲明式編程的思想
聲明式編程(what):告訴“機(jī)器”,我們想要什么,讓“機(jī)器”去做。
命令式編程(how):告訴“機(jī)器”,怎么做。
可構(gòu)建可復(fù)用的組件
符合api的思想
什么是api的思想?
例如和后端制定接口一樣,我們約定好, request以及response。用在react組件上,就是我們規(guī)定要組件需要接受的參數(shù),在創(chuàng)建組件時傳遞所需參數(shù)。
(截圖)以dom結(jié)構(gòu)形式調(diào)用組件
react組件模型
樹狀圖例說明
react 更加符合封裝思想
template、js 、css 都可寫在一個文件中,但是由于css是通過一個對象引入的,所以對動畫支持的并不好。
react和redux結(jié)合
redux介紹
數(shù)據(jù)管理器,用redux充當(dāng)react的model層,統(tǒng)一管理model,model的所有改變都需要通過redux
react 和其他mvc庫的比較
backbone
react完美的解決了,backbone view層對dom的整體刷新。
解決backbone model的混亂
vue.js
vue是一個mvvm框架,支持?jǐn)?shù)據(jù)雙向綁定,最小的dom改變。但是vue的dom最小改變,是借助于真實(shí)dom
vue 也是符合封裝思想的,但是比較混亂,組織的并不好,但是對動畫支持很好。
vue對dom限制比較多, 但是數(shù)據(jù)雙向綁定,這個避免不了的