直接上代码
const element = <h1>Hello, world</h1>;
ReactDOM.render(
    element, 
    document.getElementById('root’)
);
声明了一个变量element,将JSX语法的h1标签赋值给它,然后React.render()是渲染方法,它可以将element添加到#root中
 
注意:
    1.根节点只能有一个
    2.根节点只能有一个
    3.根节点只能有一个
const element1=<div>
    <h1>Hello,World!</h1>
    <h2>Hello,Siri!</h2>
</div>
 
 
const element2=<h1>
    <small></small>
    <strong></strong>
</h1>
element1的跟节点是div,element2的根节点是h1,根节点只能有一个!!!
function tick() {
  const element = (
    <div>
      <h1>Hello, world!</h1>
      <h2>It is {new Date().toLocaleTimeString()}.</h2>
    </div>
  );
  ReactDOM.render(element, document.getElementById('root'));
}
 
 
setInterval(tick, 1000);//定时器
    上述代码中,最下面是一个定时器,每1000毫秒,tick执行一次,tick函数做的事情是:声明一个element变量,
在element中获取当前时间new Date()是获取当前时间戳,然后通过toLocalTimeString获取到当前“上午11:11:11”,再然后通过渲染方法ReactDOM.render()将element放到#root中。每1000毫秒获取新的时间放到#root中去。
    留心的同学可能会发现element赋值后面有一个括号,这个括号是为了方便,如果你不想写这个括号的话,那么你必须把代码写成这个样子
function tick() {
  const element = <div>
      <h1>Hello, world!</h1>
      <h2>It is {new Date().toLocaleTimeString()}.</h2>
    </div>;
  
  ReactDOM.render(element, document.getElementById('root'));
}
setInterval(tick, 1000);//定时器
    注意div被提前了一行,放到了等号后面,如果放到下一行,将出错。
    这时候有同学可能有疑问了,不是说const声明的变量不可被修改吗,为什么element重复声明?
    稍微解释一下:每次都声明一个新的element变量,新的element变量跟之前的没有关系,并不是修改,而是重新声明,比如:
const a=1;
!function() {
  const a=2; //这个a跟外界的a没有任何关系
}()
注:看不懂的话,请看我另一篇文章let与var与const;
 
注意:我们的React在这个过程中,实际是引入了一个虚拟DOM的一个概念。虽然我们每1000毫秒都将
    <div>
      <h1>Hello, world!</h1>
      <h2>It is {new Date().toLocaleTimeString()}.</h2>
    </div>
添加进#root中,但其实真正在操作dom之前,我们亲爱的React又做了一步工作,那就是通过伟大的Diff算法来计算我们要新加入的标签与之前页面中已经存在的页面都有哪些差距,然后只在dom上更新那一点点不同的位置即可。具体Diff算法是怎么工作的,对于现在的我们,还不需要了解那么多。
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

小白学习React官方文档看不懂怎么办?3.元素渲染的更多相关文章

  1. 小白学习React官方文档看不懂怎么办?

    最近在上React课程的时候,发现好多同学不会看文档,所以在这里写一篇文章,希望能给同学们一点点启发. 我们首先打开React官方网站——https://react.docschina.org/doc ...

  2. 小白学习React官方文档看不懂怎么办?2.JSX语法

      接下来我们就要讲到JSX语法了,在我们讲它之前,我们先引入一个概念叫语法糖.     听到这个名字首先我们可能会想到一个词叫”糖衣炮弹“,那么什么叫糖衣炮弹呢,就是给你说各种好听的话,来迷惑你,但 ...

  3. React官方文档笔记之快速入门

    快速开始 JSFiddle 我们建议在 React 中使用 CommonJS 模块系统,比如 browserify 或 webpack. 要用 webpack 安装 React DOM 和构建你的包: ...

  4. 学习android 官方文档

    9.29 1. 今天,FQ,看到android studio中文网上有一个FQ工具openVPN,我就使用了. 之前用过一个FQ工具开眼,但由于网速慢,我就弃用了. 2. 现在,我就可以FQ去andr ...

  5. requests库的学习——跟随官方文档

    发送GET请求: import requests r=requests.get("http://www.kekenet.com/") 如果需要传递参数可以有以下几种方法: impo ...

  6. 照着官方文档学习react

    笨人学习法 10000个小时策略来学习,因为笨.先照着官方文档敲一遍,写一遍. 准备 先要准备环境.搭建一个基于webpack的react环境:Hello ReactJS. demo: https:/ ...

  7. 看官方文档学习springcloud搭建

    很多java的朋友学习新知识时候去百度,看了之后一知半解,不知道怎么操作,不知道到底什么什么东西,那么作为java码农到底该怎么学习额 一  百度是对还是错呢? 百度是一个万能的工具,当然是对也是错的 ...

  8. 学习h264 的语法规则,如何才能看懂H264 的官方文档

    1. 今天想查h264 的帧率,查找资料如下: 首先要解析sps,得到两个关键的数值: num_units_in_tick, time_scale fps=time_scale/num_units_i ...

  9. webpack新手名词解释……妈妈再也不担心我看不懂webpack官方文档了

    __dirname : 在任何模块文件内部,可以使用__dirname变量获取当前模块文件所在目录的完整绝对路径. path.resolve(): 方法将一系列路径或路径段解析为绝对路径. 语法: p ...

随机推荐

  1. 利用ansible书写playbook在华为云上批量配置管理工具自动化安装ceph集群

    首先在华为云上购买搭建ceph集群所需云主机: 然后购买ceph所需存储磁盘 将购买的磁盘挂载到用来搭建ceph的云主机上 在跳板机上安装ansible 查看ansible版本,检验ansible是否 ...

  2. 百万年薪python之路 -- 前端CSS基础介绍

    一. CSS介绍 CSS定义 CSS(Cascading Style Sheet,层叠样式表)定义如何显示HTML元素,给HTML设置样式,让它更加美观. 语法结构 div{ color: green ...

  3. redis之管道

    Redis 的消息交互当我们使用客户端对 Redis 进行一次操作时,如下图所示,客户端将请求传送给服务器,服务器处理完毕后,再将响应回复给客户端.这要花费一个网络数据包来回的时间. 如果连续执行多条 ...

  4. Mybaits 源码解析 (四)----- SqlSession的创建过程(看懂框架源码再也不用死记硬背面试题)

    SqlSession是mybatis的核心接口之一,是myabtis接口层的主要组成部分,对外提供了mybatis常用的api.myabtis提供了两个SqlSesion接口的实现,常用的实现类是De ...

  5. 双系统开机引导菜单修复方法 进win7无须重启|metro引导|双系统菜单名字修改

    此文转自互联网,一部分是原创. 主要内容 1.修复双系统菜单(win7与win8双系统),进入win7不再需要重启,普通菜单样式(普通引导,非metro界面),更加简洁,实用,开机即可选择操作系统 2 ...

  6. Tkinter 之Entry输入框标签

    一.参数说明 语法 作用 Entry(root,width=20) 组件的宽度(所占字符个数) Entry(root,fg='blue') 前景字体颜色 Entry(root,bg='blue') 背 ...

  7. vue 请求图片方法

    node的每一个文件,都是一个域,那么里面所有的变量都不允许被外界引用,除非导出.要使用外界的变量,也必须使用导入的方式来导入.import 文件路径. css可以直接使用import +文件路径导入 ...

  8. fenby C语言 P18

    #include <stdio.h> int main(){ int i; for(i=1;i<=15;i++) { if((i%2==1)) { printf("%d\n ...

  9. 热门开源网关的性能对比:Goku > Kong > Tyk

    不多说,先展示最后的性能测试结果 我们将Goku与市场上的其他同类热门产品进行比较,使用相同的环境和条件,测试以下产品:Goku.Kong.Tyk.简单介绍下, Goku API Gateway (中 ...

  10. Unity5-ABSystem(三):AssetBundle加载

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/lodypig/article/detai ...