美文网首页
Hello React

Hello React

作者: 西北有高楼lee | 来源:发表于2021-05-30 23:37 被阅读0次

一、原生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>
  • 第二步:将type类型写为babel表示标签内写的是jsx

    <script type="text/babel">

  • 第三步:书写jsx

    • 创建虚拟dom
      const VDOM=<h1>hello,react</h1>;
    • 渲染虚拟dom到页面
      render(要渲染的虚拟DOM,容器),表示要把哪一个虚拟DOM渲染到哪个容器里
      ReactDOM.render(VDOM,document.getElementById("test"));

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

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

四、虚拟dom与真实dom

  • 关于虚拟dom
    1.虚拟dom本质是Object类型的对象(一般对象)
    2.虚拟dom比较“轻”,真实dom比较重,因为虚拟dom是react内部再用,无需真实dom上那么多属性
    3.虚拟dom最终会被react转化为真实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语法规则

  • 定义虚拟DOM时,不要写引号
  • 标签中混入JS表达式时要用{}
  • 样式的类名指定不要用class,要用className
  • 内联样式,要用style={{key:value}}的形式去写
  • 只能写一个根标签
  • 标签必须闭合
  • 标签首字母
    • 若小写字母开头,则将该标签转为html中同名元素,若html中没有改标签对应的同名元素,则报错
    • 若大写字母开头,react就去渲染对应的组件,若组件没有定义,则报错
  <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/>

相关文章

  • Hello - RN

    Hello React-Native 导入 引入react 的 Component 抽象组件 引入react-n...

  • React网址

    React文档: https://react.docschina.org/docs/hello-world.html

  • Hello React

    知识点 1、JSX语法     2、React基本语法     3、bower的基本使用     4、babel的...

  • Hello React

    一、 开发环境配置(Mac) 1. node.js 安装 (node + npm) 2. 官方脚手架工具 crea...

  • Hello React!

    项目创建成功之后,会生成一个文件夹,文件夹里有很多文件,对文件进行简要介绍。 启动上次创建好的项目,在项目目录执行...

  • Hello React!

    React教程 React 是一个用于构建用户界面的 JAVASCRIPT 库。React 主要用于构建UI,很多...

  • Hello React

    一、原生js操作dom 二、react实现hello world 第一步:按顺序引入依赖 第二步:将type类型写...

  • 最强React精讲教程+源码,资源地址⬇️

    React_模块化,组件化介绍.avi React_hello React.avi React_虚拟DOM对象, ...

  • CDN React

    目录CDN 3 个React CDN Hello WorldReact CDN 卡片组件 CDN React 与其...

  • React-Native入门指南 - 完整版

    React-Native入门指南 [Lession1: Hello React-Native](http://vc...

网友评论

      本文标题:Hello React

      本文链接:https://www.haomeiwen.com/subject/jhhvsltx.html