Hello React

一、原生js操作dom

  <ul id="list"></ul>
  <script>
    let personArr=[
      {id: "001",name:"messi",age:18},
      {id: "002",name:"kobe",age:19}
    ];
    let htmlStr="";
    personArr.forEach((person)=>{
      htmlStr+=`<li>${person.name}-${person.age}</li>`;
    })
    document.getElementById("list").innerHTML=htmlStr;
  </script>

二庵楷、react實(shí)現(xiàn)hello world

  • 第一步:按順序引入依賴
<!-- 引入react核心庫 -->
  <script src="../依賴/react.development.js"></script>
  <!-- 引入raect-dom用于支持raect操作dom -->
  <script src="../依賴/react-dom.development.js"></script>
  <!-- 引入babel 用于將jsx轉(zhuǎn)換為js -->
  <script src="../依賴/babel.min.js"></script>
  • 第二步:將type類型寫為babel表示標(biāo)簽內(nèi)寫的是jsx

    <script type="text/babel">

  • 第三步:書寫jsx

    • 創(chuàng)建虛擬dom
      const VDOM=<h1>hello,react</h1>;
    • 渲染虛擬dom到頁面
      render(要渲染的虛擬DOM罢艾,容器),表示要把哪一個(gè)虛擬DOM渲染到哪個(gè)容器里
      ReactDOM.render(VDOM,document.getElementById("test"));

三尽纽、創(chuàng)建虛擬dom的兩種方式

  • jsx創(chuàng)建虛擬dom
  <script type="text/babel">
    const VDOM=(
      <h1 id="title">
        <span>hello,react</span>
      </h1>
    );
    ReactDOM.render(VDOM,document.getElementById("test"));
  </script>
  • js創(chuàng)建虛擬dom
  <script>
    //createElement(標(biāo)簽名咐蚯,標(biāo)簽屬性,標(biāo)簽內(nèi)容)
    const VDOM=React.createElement("h1",{id:"title"},React.createElement("span",{},"hello,react"));
    ReactDOM.render(VDOM,document.getElementById("test"));
  </script>

四弄贿、虛擬dom與真實(shí)dom

  • 關(guān)于虛擬dom
    1.虛擬dom本質(zhì)是Object類型的對象(一般對象)
    2.虛擬dom比較“輕”春锋,真實(shí)dom比較重,因?yàn)樘摂Mdom是react內(nèi)部再用差凹,無需真實(shí)dom上那么多屬性
    3.虛擬dom最終會(huì)被react轉(zhuǎn)化為真實(shí)dom期奔,呈現(xiàn)在頁面上
  <div id="test"></div>
  <div id="test2"></div>
  ...
  <script type="text/babel">
    const VDOM=(
      <h1 id="title">
        <span>hello,react</span>
      </h1>
    );
    ReactDOM.render(VDOM,document.getElementById("test"));
    var TDOM=document.getElementById("test2");

    console.log("虛擬dom",VDOM);//虛擬dom Object
    console.log("真實(shí)dom",TDOM);//<div id="test2"></div>
    console.log(VDOM instanceof Object);//true
  </script>

執(zhí)行語句console.log("虛擬dom",VDOM)輸出:

虛擬dom

執(zhí)行語句console.log(VDOM instanceof Object)輸出true

執(zhí)行語句console.log("真實(shí)dom",TDOM)輸出:

真實(shí)dom

五、jsx語法規(guī)則

jsx語法規(guī)則

  • 定義虛擬DOM時(shí)危尿,不要寫引號(hào)
  • 標(biāo)簽中混入JS表達(dá)式時(shí)要用{}
  • 樣式的類名指定不要用class呐萌,要用className
  • 內(nèi)聯(lián)樣式,要用style={{key:value}}的形式去寫
  • 只能寫一個(gè)根標(biāo)簽
  • 標(biāo)簽必須閉合
  • 標(biāo)簽首字母
    • 若小寫字母開頭谊娇,則將該標(biāo)簽轉(zhuǎn)為html中同名元素肺孤,若html中沒有改標(biāo)簽對應(yīng)的同名元素,則報(bào)錯(cuò)
    • 若大寫字母開頭济欢,react就去渲染對應(yīng)的組件赠堵,若組件沒有定義,則報(bào)錯(cuò)
  <div id="test"></div>

  <script type="text/babel">
    const myId="Dexter";
    const myData="hello,REACT";

    const VDOM=(
      <div>
        <h2 className="title" id={myId.toLowerCase()}>
          <span style={{color:"black",fontSize:"20px"}}>{myData.toLowerCase()}</span>
        </h2>
        <h2 className="title" id={myId.toUpperCase()}>
          <span style={{color:"blue",fontSize:"20px"}}>{myData.toLowerCase()}</span>
        </h2>
        <input type="text"/>
      </div>
    );
    ReactDOM.render(VDOM,document.getElementById("test"));
  </script>
  <script type="text/babel">
    const data=["Angular","React","Vue"];

      const VDOM=(
        <div>
          <h1>前端js框架列表</h1>
          <ul>
            {
              data.map((item,index)=>{
                return <li key={index}>{item}</li>
              })
            } 
          </ul>  
        </div>
      );
  <script/>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末法褥,一起剝皮案震驚了整個(gè)濱河市顾腊,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌挖胃,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,204評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異酱鸭,居然都是意外死亡吗垮,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門凹髓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來烁登,“玉大人,你說我怎么就攤上這事蔚舀《祝” “怎么了?”我有些...
    開封第一講書人閱讀 164,548評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵赌躺,是天一觀的道長狼牺。 經(jīng)常有香客問我,道長礼患,這世上最難降的妖魔是什么是钥? 我笑而不...
    開封第一講書人閱讀 58,657評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮缅叠,結(jié)果婚禮上悄泥,老公的妹妹穿的比我還像新娘。我一直安慰自己肤粱,他們只是感情好弹囚,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著领曼,像睡著了一般鸥鹉。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上悯森,一...
    開封第一講書人閱讀 51,554評(píng)論 1 305
  • 那天宋舷,我揣著相機(jī)與錄音,去河邊找鬼瓢姻。 笑死祝蝠,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的幻碱。 我是一名探鬼主播绎狭,決...
    沈念sama閱讀 40,302評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼褥傍!你這毒婦竟也來了儡嘶?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,216評(píng)論 0 276
  • 序言:老撾萬榮一對情侶失蹤恍风,失蹤者是張志新(化名)和其女友劉穎蹦狂,沒想到半個(gè)月后誓篱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,661評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡凯楔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評(píng)論 3 336
  • 正文 我和宋清朗相戀三年窜骄,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片摆屯。...
    茶點(diǎn)故事閱讀 39,977評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡邻遏,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出虐骑,到底是詐尸還是另有隱情准验,我是刑警寧澤,帶...
    沈念sama閱讀 35,697評(píng)論 5 347
  • 正文 年R本政府宣布廷没,位于F島的核電站糊饱,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏腕柜。R本人自食惡果不足惜济似,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望盏缤。 院中可真熱鬧砰蠢,春花似錦、人聲如沸唉铜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽潭流。三九已至竞惋,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間灰嫉,已是汗流浹背拆宛。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評(píng)論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留讼撒,地道東北人浑厚。 一個(gè)月前我還...
    沈念sama閱讀 48,138評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像根盒,于是被迫代替她去往敵國和親钳幅。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • React炎滞,用于構(gòu)建用戶界面的 JavaScript 庫敢艰,是Facebook公司的開源項(xiàng)目,用于開發(fā)單頁面應(yīng)用册赛; ...
    hellomyshadow閱讀 253評(píng)論 0 0
  • 課前提醒 學(xué)習(xí)這個(gè)課程需要具備這樣的基礎(chǔ):-- HTML钠导、CSS震嫉、JavaScript(ES6以上) 上課時(shí)間:-...
    JackLeeVip閱讀 809評(píng)論 0 4
  • Q1:什么是虛擬DOM? 難度::star: 虛擬DOM(VDOM)它是真實(shí)DOM的內(nèi)存表示,一種編程概念辈双,一種模...
    陳二狗想吃肉閱讀 445評(píng)論 0 1
  • 目錄: JS在Web端的簡單應(yīng)用 類比JS,React的作用 React 的組件责掏、虛擬DOM、組件的render方...
    七月_3155閱讀 231評(píng)論 0 1
  • 表情是什么湃望,我認(rèn)為表情就是表現(xiàn)出來的情緒。表情可以傳達(dá)很多信息痰驱。高興了當(dāng)然就笑了证芭,難過就哭了。兩者是相互影響密不可...
    Persistenc_6aea閱讀 125,043評(píng)論 2 7