react 学习(一) 实现简版虚拟 dom 和挂载

楼主最近入职新单位了,恰好新单位使用的技术栈是 react,因为之前一直进行的是 vue2/vue3 和小程序开发,对于这些技术栈实现机制也有一些了解,最少面试的也都能答出来。但对于 react 只是有一定的了解,没有真实的学习过实现,虽然之前也看过一些文章,但是只停留在表面,因为别人这么写了,也就下意识的认为是这样。本次正好配合工作的契机,我们从零开始学习一下,使用的话呢就简单一过,相信大家也都用过或者看完官网也都了解了。如果您是大佬,欢迎批评指正;如果您是初级选手,希望能够一起学习。

初始化项目

我们借助脚手架实现开发环境,内部使用的库用自己开发的。

  1. npx create-react-app react-dome1 (当然也可以全局安装脚手架)
    public 目录只留下 index.htmlsrc 目录下只留下 index.js
  2. 修改 scripts 命令
    我们需要使用旧的转换方式,这样我们可以自己实现 createElement 方法
// cross-env 需要自己安装
scripts": {
  "start": "cross-env DISABLE_NEW_JSX_TRANSFORM=true react-scripts start",
  "build": "cross-env DISABLE_NEW_JSX_TRANSFORM=true react-scripts build",
  "test": "cross-env DISABLE_NEW_JSX_TRANSFORM=true react-scripts test",
  "eject": "cross-env DISABLE_NEW_JSX_TRANSFORM=true react-scripts eject"
},

react 17 引入了新的 jsx 转换特性,因为之前的开发,即使页面中未直接使用 React,但是也要引入,这是因为 babel 在转译之后会触发 React.createElement,如果不引入会报错,但是引入了可能也会触发 eslint 的报错,引入但是未使用。新特性可以单独使用 JSX 而无需引入 React

新特性一些好处
  1. 使用全新的转换,你可以单独使用 JSX 而无需引入 React
  2. 根据你的配置ÿ
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
React中的虚拟DOM和真实DOM是用于构建用户界面的两个不同的概念。虚拟DOMReact中的一种技术,它是通过在内存中创建一个轻量级的JavaScript对象来表示DOM结构的副本。这个副本被称为虚拟DOM树。React使用虚拟DOM来表示用户界面的状态,并根据需要对其进行更新。 真实DOM则是浏览器中实际存在的DOM树,它是由HTML文档解析而来,并且直接与用户交互。当使用React创建虚拟DOM后,React会比较虚拟DOM和真实DOM之间的差异,并且仅更新真实DOM中需要改变的部分,从而提高性能和效率。 虚拟DOM的主要优势在于它可以在内存中进行快速的操作和计算,而不会直接影响到真实DOM。这使得React可以通过一系列优化算法来批量更新DOM,从而减少了对浏览器的重绘和重排,提高了性能。 总结来说,React虚拟DOM是通过在内存中创建一个轻量级的JavaScript对象来表示DOM结构的副本,而真实DOM是浏览器中实际存在的DOM树。React使用虚拟DOM来管理用户界面的状态,并将其转化为真实DOM更新到浏览器中。这种机制提高了React应用的性能和效率。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [[react] 什么是虚拟dom虚拟dom比操作原生dom要快吗?虚拟dom是如何转变成真实dom并渲染到页面的?](https://blog.csdn.net/echolunzi/article/details/125586796)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值