React创建虚拟DOM的两种方式

本文介绍了React中创建虚拟DOM的两种方式,包括使用JavaScript的React.createElement()函数,这种方式创建多层标签较为复杂。另一种是使用JSX,它更简洁且开销较小,有助于模块化和组件化开发,提升代码运行效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一种方式:使用js的方式创建

需要调用React.createElement()的方式进行创建。

React.createElement()

第一个参数:创建的标签;

第二个参数:标签的属性;

第三个参数:为第一个参数标签里的内容;

<div id='test'></div>
    <script type="text/babel">
        const vDom = React.createElement('h1',{id:'title'},'hello react')
        ReactDOM.render(vDom,document.getElementById('test'))
    </script>

使用js创建多个标签会很复杂,所以我们一般会采用第二种方式,也就是JSX的方式来创建。

使用js创建多个标签。

    <div id='test'></div>
    <script type="text/babel">
    const vDom = React.createElement('div',{id:'title'},
        React.createElement('h1','','div中的第一个h1'),
        React.createElement('h1','','div中的第二个h1'))
        ReactDOM.render(vDom,document.getElementById('test'))
    </script>

 

 注意:第二个参数在没有内容并且第三个参数有值的时候,第二个参数也要用‘’来占位,不能省略。

第二种方式:使用JSX的方式创建

<script type="text/babel">
    const vDom = (
        <div id="title">
            <span>hello react</span>    
        </div>
    )
    ReactDOM.render(vDom,document.getElementById('test'))
</script>

 使用JSX的方式的优点:

1.会比普通js创建开销小。

2.模块:向外提供特定功能的js程序,拆成模块,使用js得到简化,提高js 的运行效率。

3.组件:实现局部功能效果的代码或资源的集合,简化项目代码。

 

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、付费专栏及课程。

余额充值