React, 初見

何宏偉

React

[嵌牛導(dǎo)讀]

作為前端愛好者,對于“前端”

又愛又恨, 無可奈何, 欲罷不能

作為React“初學(xué)者”,我不得不承認

React, This is really cool !

本文將從一個初學(xué)者的角度來探索,觀察React,希望能夠嘗試用自己的角度去解讀React.

[嵌牛鼻子]

React, 組件化(Component), 狀態(tài)(state), 數(shù)據(jù)綁定,狀態(tài)管理, VirtualDOM

[嵌牛提問]

  • 當(dāng)你覺得你的代碼組織簡直不能直視, 當(dāng)你覺得你的代碼構(gòu)思時邏輯清晰,可真正寫出來一團糟,這個時候你得停下來,嘗試著去解決為什么自己在用代碼表達邏輯時是混亂的?
  • React如何能夠獲得如此青睞,為何具有如此魅力以至于不管項目大小都會去采用React?
  • 當(dāng)把React的思想運用在自己的項目中,會產(chǎn)生什么樣的變化,是否會產(chǎn)生正向變化?

[嵌牛正文]

React官方圖標(biāo)
1. MVC

MVC(Model, View, Controller),模型-視圖-控制器.
對于MVC,存在兩種觀點:

  • MVC看作是一種設(shè)計模式
  • MVC是一種架構(gòu)方式

我更傾向于后者。


MVC-圖片來自網(wǎng)絡(luò)
  • Model - 模型
    通常用于保存用戶數(shù)據(jù)模型,或者數(shù)據(jù)庫數(shù)據(jù)模型,負責(zé)處理或是管理數(shù)據(jù)邏輯
  • View - 視圖
    通常用于構(gòu)建視圖來展示數(shù)據(jù),負責(zé)顯示來自Model建立的數(shù)據(jù)
  • Controller - 控制器
    通常被認為是Model 和 View 中間的傳話者,接受來自View層的數(shù)據(jù),傳遞給Model層更新數(shù)據(jù),或是接受來自Model完成的數(shù)據(jù) ,交付給View層來展示

之所以提到MVC,是因為React正是擔(dān)任View層這一重要角色,用于構(gòu)建頁面動態(tài)UI。在接收到Controller傳遞的Model數(shù)據(jù),通過動態(tài)建立組件(Component)組織,嵌套,生成頁面。

2. React核心思想-組件化

組件,Component,是React中非常重要的概念,因為最終生成的向用戶展示的頁面正是由許多個不同的組件,相互組合,嵌套,拼接而成。

示例 - Src

如上圖示例所示,頁面組件化

整個頁面 <Index />組件
頂部導(dǎo)航欄 <Nav />組件
中間搜索框 <Search />組件

最終頁面構(gòu)成(僅作示例說明)

<Index>
    <Nav />
    <Search />
<Index />

當(dāng)我們在設(shè)計View層時,只需要構(gòu)建這3個組件,進行組合即可。整個頁面結(jié)構(gòu)非常清晰明確,代碼簡潔便于維護閱讀。

這其實就是React帶來的好處,它以一種高效的,易于理解的方式來構(gòu)建頁面,整個頁面被分成各個不同的小塊,每個小塊就是一個組件(<Index /> | <Nav /> | <Search />),只需要將這些組件進行組合就可以高效的完成整個視圖層的開發(fā)。

3. 狀態(tài)(state)
class Clock extends React.Component {
  constructor() {
    super()
    this.state = {date: new Date()}; // state 與頁面<h2>內(nèi)容綁定
  }

  render() {
    return (
      <div>
        <h1>Hello, world!</h1>
        <h2>It is {this.state.date.toLocaleTimeString()}.</h2>
      </div>
    )
  }
}

React中頁面有許多個組件構(gòu)成,每一個組件有自己獨立的數(shù)據(jù)(Model)需要展示,為了能夠?qū)?strong>數(shù)據(jù)變化能夠及時的反應(yīng)在視圖層(View),React采用state 將數(shù)據(jù)綁定在頁面,通過這種雙向數(shù)據(jù)綁定可以完美解決數(shù)據(jù)和組件之間的完美同步

Model 變化 ?。怠iew變化
View變化  ?。怠。蚾del變化


END

官方文檔
參考文章 React 小書
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容