40行代码内实现一个React.js

Posted 前端先锋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了40行代码内实现一个React.js相关的知识,希望对你有一定的参考价值。

链接:https://zhuanlan.zhihu.com/p/25398176


目录

  • 1 前言

  • 2 一切从点赞说起

  • 3 实现可复用性

    • 3.1 结构复用

    • 3.2 生成 DOM 元素并且添加事件

  • 4 为什么不暴力一点?

    • 4.1 状态改变 -> 构建新的 DOM 元素

    • 4.2 重新插入新的 DOM 元素

  • 5 抽象出 Component 类

  • 6 总结

1、前言

本文会教你如何在 40 行代码内,不依赖任何第三方的库,用纯 javascript 实现一个 React.js 。

本文的目的是:揭开对初学者看起来很很难理解的 React.js 的组件化形式的外衣。如果你刚开始学习 React.js 并且感觉很迷茫,那么看完这篇文章以后就能够解除一些疑惑。

另外注意,本文所实现的代码只用于说明教学展示,并不适用于生产环境。代码托管这个 仓库。心急如焚的同学可以先去看代码,但本文会从最基础的内容开始解释。

2、一切从点赞说起

接下来所有的代码都会从一个基本的点赞功能开始演化,你会逐渐看到,文章代码慢慢地越来越像 React.js 的组件代码。而在这个过程里面,大家需要只需要跟着文章的思路,就可以在代码的演化当中体会到组件化形式。

假设现在我们需要实现一个点赞、取消点赞的功能。

如果你对前端稍微有一点了解,你就顺手拈来:

html:

  <body>
    <div class='wrapper'>
      <button class='like-btn'>
        <span class='like-text'>点赞</span>
        <span>

以上是关于40行代码内实现一个React.js的主要内容,如果未能解决你的问题,请参考以下文章

如何将此 JavaScript 代码片段翻译成 Parenscript?

Wordpress - 将代码片段包含到布局的选定部分的插件

React.js 创建具有动态行数和可编辑列的表

Socket.IO 在一个房间内多次发射(与 React.js 一起使用)

在 Webpack 和 React.js 中设置代码拆分

Python代码阅读(第40篇):通过两个列表生成字典