React介紹
react不是一個(gè)mvc的框架鸿捧,它僅僅是V層。它是一個(gè)鼓勵(lì)構(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í)傳遞所需參數(shù)霜旧。
(截圖)以dom結(jié)構(gòu)形式調(diào)用組件
react組件模型
樹狀圖例說明
react 更加符合封裝思想
template、js 儡率、css 都可寫在一個(gè)文件中挂据,但是由于css是通過一個(gè)對(duì)象引入的,所以對(duì)動(dòng)畫支持的并不好喉悴。
react和redux結(jié)合
redux介紹
數(shù)據(jù)管理器棱貌,用redux充當(dāng)react的model層,統(tǒng)一管理model,model的所有改變都需要通過redux
react 和其他mvc庫的比較
backbone
react完美的解決了箕肃,backbone view層對(duì)dom的整體刷新婚脱。
解決backbone model的混亂
vue.js
vue是一個(gè)mvvm框架,支持?jǐn)?shù)據(jù)雙向綁定勺像,最小的dom改變障贸。但是vue的dom最小改變,是借助于真實(shí)dom
vue 也是符合封裝思想的吟宦,但是比較混亂篮洁,組織的并不好,但是對(duì)動(dòng)畫支持很好殃姓。
vue對(duì)dom限制比較多袁波, 但是數(shù)據(jù)雙向綁定,這個(gè)避免不了的