博客 / 詳情

返回

邂逅react(八)-虛擬DOM

一直聽説虛擬dom這個概念,虛擬dom到底是什麼,下面我們一起探索,揭開這層神秘的面紗~~~
react中React.createElement形成的js樹就是虛擬dom

class App extends React.Component{//jsx寫法
        
        render(){
                        
               let obj=(
                    <div>
                        <header>我是頭部</header>
                        <div>
                            <h2>我是身體</h2>
                            <h2>我是body</h2>
                        </div>
                        <footer>我是尾部</footer>
                    </div>
                )                   
            console.log(obj)
            return obj
        }

    }

    ReactDOM.render(<App/>,document.getElementById('root'))

編譯後 並打印結果

class App extends React.Component {
  render() {
    let obj = /*#__PURE__*/React.createElement("div", null, 
    /*#__PURE__*/React.createElement("header", null, 
    "\u6211\u662F\u5934\u90E8"), 
    /*#__PURE__*/React.createElement("div", null, 
    /*#__PURE__*/React.createElement("h2", null, 
    "\u6211\u662F\u8EAB\u4F53"), /*#__PURE__*/
    React.createElement("h2", null, "\u6211\u662Fbody")), 
    /*#__PURE__*/React.createElement("footer", null,
    "\u6211\u662F\u5C3E\u90E8"));
    console.log(obj);
    return obj;
  }

}

ReactDOM.render( /*#__PURE__*/React.createElement(App, null),
document.getElementById('root'));

image.png

image.png
小結:jsx語法其實在底層是通過React.createElement創建一個js對象樹ReactElement,ReactElement通過render將虛擬dom映射到真實dom
本節分享完畢,能力有限有不足之處希望各位大神海涵

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.