Hello React

2021-05-30  本文已影响0人  西北有高楼lee

一、原生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实现hello world

<!-- 引入react核心库 -->
  <script src="../依赖/react.development.js"></script>
  <!-- 引入raect-dom用于支持raect操作dom -->
  <script src="../依赖/react-dom.development.js"></script>
  <!-- 引入babel 用于将jsx转换为js -->
  <script src="../依赖/babel.min.js"></script>

三、创建虚拟dom的两种方式

  <script type="text/babel">
    const VDOM=(
      <h1 id="title">
        <span>hello,react</span>
      </h1>
    );
    ReactDOM.render(VDOM,document.getElementById("test"));
  </script>
  <script>
    //createElement(标签名,标签属性,标签内容)
    const VDOM=React.createElement("h1",{id:"title"},React.createElement("span",{},"hello,react"));
    ReactDOM.render(VDOM,document.getElementById("test"));
  </script>

四、虚拟dom与真实dom

  <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("真实dom",TDOM);//<div id="test2"></div>
    console.log(VDOM instanceof Object);//true
  </script>

执行语句console.log("虚拟dom",VDOM)输出:

虚拟dom

执行语句console.log(VDOM instanceof Object)输出true

执行语句console.log("真实dom",TDOM)输出:

真实dom

五、jsx语法规则

jsx语法规则

  <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/>
上一篇 下一篇

猜你喜欢

热点阅读