记录下学习历程

1.什么是虚拟dom?

他是一个js对象

React.createElement(
  ‘div‘,
  { className : ‘cn‘ },

  ‘content 1’,

  ‘content 2’,
);

浏览器编译后:

{

  type:‘div‘,

  props: {

    className : ‘cn‘,

    children: [

      ‘content 1’,

      ‘content 2’,

    ]

  } 

}; 

除了type和attribute以外的属性,原本是单独传进来的,转换之后,会以props中children数组形式打包传入。无论children作为数组还是参数列表传递都没关系 - 在生成虚拟dom的时候,最终都会打包在一起。

React使用===(triple equals)来比较type的值,所以这两个值需要是相同类或相同函数的相同实例。

值得注意的是,一个component的render(只有类组件在声明时有这个函数)跟ReactDom.render不是同一个函数。

想象一下,我们已经从1000行中删除了第一行。React不得不‘更新’剩余的999个子项,因为按index去对比的话,内容从第一条开始就已经不相同了。幸运的是,React有一个内置的方法(built-in)来解决这个问题。元素将根据key属性来比较,只要key是唯一,React就会移动元素,而不是将他它们从dom树中移除再将他们放回。(这个过程在react中叫mounting和unmounting)

原文地址:https://www.cnblogs.com/jiadaxiadedaimashenghuo/p/12419289.html

时间: 2024-11-13 09:50:22

记录下学习历程的相关文章

记录下学习Go语言时用到的一些项目

IDE:liteide Web Framework:beego,Martini,macaron Orm:gorm,xorm 脚手架: goconfig,go-sql-driver 一些应用项目: cms:sudochina spider:go_spider blog:go_blog Go还是比较适合服务器开发,后台服务应用.不建议纯Web

Oracle学习历程--创建用户,分配表空间

记录下学习Oracle12c的过程中的点点滴滴. Oracle12c新特性:http://www.cnblogs.com/kerrycode/p/3386917.html --创建临时表空间CREATE TEMPORARY TABLESPACE ADMIN_TEMPTEMPFILE '文件的绝对路径'//如:'J:\software\myOracle\oradata\orcl\TEMP.DBF'SIZE 50MAUTOEXTEND ONNEXT 50 MAXSIZE 100MEXTENT MAN

记录JAVA学习的历程之关于局部变量与成员变量

最近一段时间开始学习JAVA,遇到了不少问题. 写下这些东西,纯粹为了记录自己的学习历程,借此激励自己,希望能在程序员的路上越走越远. 在JAVA中, 我们会遇到局部变量与成员变量这两个变量的分类, 这是按声明位置划分的,下面是对这两个变量的简单定义. 局部变量:方法或语句块内部定义的变量. 成员变量:方法外部,类的内部定义的变量. 更重要的一点是在局部变量中,JAVA不会默认初始化,必须自行初始化. 而在成员变量中,JAVA可自行初始化,初始化变量的值 我以图片的形式给大家浏览学习 以上只是我

android金阳光自动化测试——学习历程:电池续航上&&下

章节:自动化基础篇——电池续航自动化测试上&&下 网易云课堂: http://study.163.com/course/courseLearn.htm?courseId=712011#/learn/video?lessonId=878098&courseId=712011 http://study.163.com/course/courseLearn.htm?courseId=712011#/learn/video?lessonId=878099&courseId=7120

android金阳光自动化测试——学习历程:自动化预备知识上&&下

章节:自动化基础篇——自动化预备知识上&&下 网易云课堂: 上:http://study.163.com/course/courseLearn.htm?courseId=712011#/learn/video?lessonId=877113&courseId=712011 下:http://study.163.com/course/courseLearn.htm?courseId=712011#/learn/video?lessonId=877114&courseId=71

gulp 粗粗学习 记录下

看视频学习 粗粗记录下 以便以后学习 1.初记录 gulp.task //定义一个任务 gulp.src //锁定到做task任务的文件路径 gulp.dest //锁定到任务做完后文件去向的路径 gulp.watch //监控的一个任务 可以看做一个人任务 pipe:任务流的函数 2.常用的方法记录 需要把gulp 放在gulpfile.js // 定义一个任务 任务名:message 执行任务:gulp message gulp.task('message', function(){ ret

SQL Server 2008从基础开始学习历程(1)------创建表与查询

[by:yy] 无论我们学什么呢,都要讲究一个Why,一个How.那么我们为什么要学SQL呢?无非就那么几点. 1.为了适应其他技术,和其他技术配对而学. 我个人的理解呢,只要在IT行业,无论你学什么,或者做什么工作.都离不开数据库.而学习数据库呢,又太文字化了,看的心里就烦.我是很抵触文字的.看着一大排一大排的字,就怕.可能是大天朝的教育所致.已经怕了学生生涯了. 2.为了适应社会而学. 随便找个招聘信息,都会有标注需要会SQL语言啊.了解MySql呀.会搞Oracle呀.所以呢,为了能在找工

《软件工程》学习历程1

最近学生们经常找我聊天,希望能让我给他们指明方向,这个问题我不太里手,只是和他们说了说我的学习历程,说得多了,觉得有必要写下来.虽然历程比较平凡,但也许能让他们有所启发,对我而言,自然是记录成长. 大三时开始开始学习<软件工程>,清晰记得给我们上课的刚留美归国的博士,后来他成了学校的校级领导,当时他同时承担了我们的<离散数学>教学,对他个人印象深刻,但对他所授的课程,我只是记住了"瀑布模型"和他的全英文教学,甚至考试试卷也是英文的. 大三挂了大学期间第一门考试,

大三仍是Linux系统小白的我给大家讲讲学习历程

我与Linux结缘是在大三的时候.我与Linux熟识是在偶然遇到<Linux就该这么学>的时候.因为我是电子信息工程专业,在高年级时开设了嵌入式课程,嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分.所有带有数字接口的设备,如录像机.车子等,都使用嵌入式系统,有些嵌入式系统还包含操作系统.嵌入式操作系统包括μC/OS-II.嵌入式Linux.VxWorks等,但大部分嵌入式操作系统是不开源且不能免费使用,只有Linux是基于GPL协议,所以它成为了嵌入式系统的绝对主流. 我们学校的嵌入