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ù)雙向綁定,這個避免不了的