React介紹
react不是一個mvc的框架叉袍,它僅僅是V層。它是一個鼓勵構建隨著數(shù)據(jù)變化而改變UI表現(xiàn)的庫刽酱。
React的特點
- 虛擬dom
- 什么是虛擬dom喳逛?
一種在內存中描述dom樹狀態(tài)的數(shù)據(jù)結構,當數(shù)據(jù)改變之后棵里,diff出最小的dom改變润文,渲染dom元素。
- 什么是虛擬dom喳逛?
- 符合聲明式編程的思想
- 聲明式編程(what):告訴“機器”殿怜,我們想要什么典蝌,讓“機器”去做。
- 命令式編程(how):告訴“機器”稳捆,怎么做赠法。
- 可構建可復用的組件
- 符合api的思想
什么是api的思想?
例如和后端制定接口一樣乔夯,我們約定好砖织, request以及response。用在react組件上末荐,就是我們規(guī)定要組件需要接受的參數(shù)侧纯,在創(chuàng)建組件時傳遞所需參數(shù)。 - (截圖)以dom結構形式調用組件
- 符合api的思想
- react組件模型
樹狀圖例說明 - react 更加符合封裝思想
- template甲脏、js 眶熬、css 都可寫在一個文件中妹笆,但是由于css是通過一個對象引入的,所以對動畫支持的并不好娜氏。
react和redux結合
- redux介紹
數(shù)據(jù)管理器拳缠,用redux充當react的model層,統(tǒng)一管理model,model的所有改變都需要通過redux
react 和其他mvc庫的比較
- backbone
- react完美的解決了贸弥,backbone view層對dom的整體刷新窟坐。
- 解決backbone model的混亂
- vue.js
- vue是一個mvvm框架,支持數(shù)據(jù)雙向綁定绵疲,最小的dom改變哲鸳。但是vue的dom最小改變,是借助于真實dom
- vue 也是符合封裝思想的盔憨,但是比較混亂徙菠,組織的并不好,但是對動畫支持很好郁岩。
- vue對dom限制比較多婿奔, 但是數(shù)據(jù)雙向綁定,這個避免不了的