...setState (state) {const oldEl = this.elthis.state = statethis.el = this.render()if (this.onStateChange) this.onStateChange(oldEl, this.el)}
...

读react.js小书 01_前端小臻的博客-CSDN博客

接上文的代码,将setstate的函数进行修改一下,将当前的dom元素赋值给oldel

赋值后进行state的操作,将state的这个状态进行更改,再里面调用this.render()来返回新的dom元素,在判断更改状态后调用切换state的状态(将新老的dom节点进行赋值操作)

const likeButton = new LikeButton()
wrapper.appendChild(likeButton.render()) // 第一次插入 DOM 元素
likeButton.onStateChange = (oldEl, newEl) => {wrapper.insertBefore(newEl, oldEl) // 插入新的元素wrapper.removeChild(oldEl) // 删除旧的元素
}

在将dom节点插入后将老的节点删除。

当然假如用户频繁的点击点赞和取消,都重新构造、新增、删除 DOM 元素,会导致浏览器进行大量的重排,严重影响性能。这种暴力行为可以被一种叫 Virtual-DOM 的策略规避掉(等我学到那个地方及时更新)

读react.js小书 02相关推荐

  1. React.js 小书 Lesson12 - state vs props

    React.js 小书 Lesson12 - state vs props 本文作者:胡子大哈 本文原文:http://huziketang.com/books/react/lesson12 转载请注 ...

  2. React.js 小书 Lesson14 - 实战分析:评论功能(一)

    React.js 小书 Lesson14 - 实战分析:评论功能(一) 本文作者:胡子大哈 本文原文:http://react.huziketang.com/blog/lesson14 转载请注明出处 ...

  3. React.js 小书 Lesson27 - 实战分析:评论功能(六)

    React.js 小书 Lesson27 - 实战分析:评论功能(六) 本文作者:胡子大哈 本文原文:http://huziketang.com/books/react/lesson27 转载请注明出 ...

  4. React.js 小书 Lesson5 - React.js 基本环境安装

    React.js 小书 Lesson5 - React.js 基本环境安装 本文作者:胡子大哈 本文原文:http://huziketang.com/books/react/lesson5 转载请注明 ...

  5. React.js 小书 Lesson15 - 实战分析:评论功能(二)

    作者:胡子大哈 原文链接: http://huziketang.com/books/react/lesson15 转载请注明出处,保留原文链接和作者信息. 上一节我们构建了基本的代码框架,现在开始完善 ...

  6. React.js 小书 Lesson24 - PropTypes 和组件参数验证

    作者:胡子大哈 原文链接: http://huziketang.com/books/react/lesson24 转载请注明出处,保留原文链接和作者信息. 我们来了到了一个非常尴尬的章节,很多初学的朋 ...

  7. React.js 小书 Lesson18 - 挂载阶段的组件生命周期(一)

    React.js 小书 Lesson18 - 挂载阶段的组件生命周期(一) 本文作者:胡子大哈 本文原文:http://huziketang.com/books/react/lesson18 转载请注 ...

  8. React.js 小书 Lesson1-2 - 前端组件化(一):从一个简单的例子讲起

    React.js 小书 Lesson1-2 - 前端组件化(一):从一个简单的例子讲起 本文作者:胡子大哈 本文原文:http://huziketang.com/books/react/lesson2 ...

  9. React.js小书总结

    (迁移自旧博客2017 08 27) 第一阶段 react的组件相当于MVC里面的View. react.js 将帮助我们将界面分成了各个独立的小块,每一个块就是组件,这些组件之间可以组合.嵌套,就成 ...

  10. 一起读JavaScript红宝书 —— 02语法基础(上)

    JavaScript高级程序设计读书笔记,前端神作不容错过.原书近100万字,内容太多,故作笔记尽量在不缩减内容的情况下缩减字数,方便复习和回顾. 语法基础(上) 1. 语法 2. 关键字和保留字 3 ...

最新文章

  1. 如何运用NLP向个性类型客户介绍产品
  2. java 设备指纹_使用Socket In(JAVA)处理生物识别指纹考勤设备
  3. 3.C#基础之基本概念(完成)
  4. 学习尤雨溪写的 Vue3 源码中的简单工具函数
  5. 形成性考核(计算机应用基础) 答案,2019年最新电大《计算机应用基础(Win7)》形成性考核册及答案.pdf...
  6. spring项目部署到resin4中的无法注入问题
  7. pyglet: a cross-platform windowing and multimedia
  8. 移远EC20基站定位
  9. EzCad 二次开发 金橙子激光雕刻机c# 能显示预览图
  10. 微信小程序运营之如何获取流量
  11. 通过网页端保存ins图片的方法(谷歌浏览器)
  12. glassfish配置Oracle数据源,GlassFish链接数据库
  13. 前端面试官常问的问题
  14. 使用MATLAB绘制Gazebo中的仿真小车的运动轨迹
  15. 【周志华机器学习】十二、计算学习
  16. mie散射理论方程_Mie光散射理论的数值计算方法.pdf
  17. 《信息安全保障》一2.2 我国信息安全保障工作主要内容
  18. 计算机主机主板,计算机主板的基本组成部分
  19. jsp 图片上传到oracle,jsp上传图片到数据库(oracle),并能在页面上显示解决办法
  20. python学习小组分组程序_自动分配小组更省事点击查看_云分组小程序

热门文章

  1. 《MBA一日读2.0 读书笔记》
  2. 计算机辅助园林设计考试题,计算机辅助园林规划设计之软件比较
  3. 又发现几个宝藏网站系列(二)
  4. vue项目element-ui中el-select回车键隐藏下拉框,实现按回车键查询
  5. 火狐8下,QQ邮箱大附件下载无法识…
  6. 统计报表可视化html,用统计图让数据可视化
  7. Android Widevine 基本概念
  8. 如何拼局域网所有ip_如何查看局域网内所有ip?
  9. IIC通信协议总结(详细说明完整过程)
  10. IntelliJ IDEA使用教程