前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >React虚拟dom的两种创建方式

React虚拟dom的两种创建方式

作者头像
张苹果
发布2022-09-22 10:17:16
4320
发布2022-09-22 10:17:16
举报
文章被收录于专栏:vae

1,使用jsx创建虚拟DOM

案例代码

PlainBashC++C#CSSDiffHTML/XMLJavaJavascriptMarkdownPHPPythonRubySQL

<body>

<!--准备好一个容器 -->

<div id="test"></div>

<!-- 加载 React。引入react核心库-->

<!-- 注意: 部署时,将 "development.js" 替换为 "production.min.js"。-->

<script src="https://unpkg.com/react@16/umd/react.development.js" crossorigin></script>

<!-- 引入react-dom,用于支持react操作dom-->

<script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js" crossorigin></script>

<!--引入babel,用于jsx转为js-->

<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>

<script type="text/babel">/*此处一定要写babel,不写默认js*/

//1,创建虚拟dom

const VDOM=<h1 id="title"><span>Hello,React</span></h1> //此处不要加引号,因为不是字符串

//2,渲染虚拟dom到页面

ReactDOM.render(VDOM,document.getElementById('test'))

</script>

</body>

2,用js创建虚拟DOM

案例代码

PlainBashC++C#CSSDiffHTML/XMLJavaJavascriptMarkdownPHPPythonRubySQL

<body>

<!--准备好一个容器-->

<div id="test"></div>

<!-- 加载 React。引入react核心库-->

<script src="https://unpkg.com/react@16/umd/react.development.js" crossorigin></script>

<!-- 引入react-dom,用于支持react操作dom-->

<script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js" crossorigin></script>

<script type="text/javascript">

//1,创建虚拟dom

//标签,属性,内容

const VDOM=React.createElement('h1',{id:'title'},React.createElement('span',{},"hello react"))

//2,渲染虚拟dom到页面

ReactDOM.render(VDOM,document.getElementById('test'))

</script>

</body>

3,虚拟DOM与真实DOM

虚拟DOM:

  1. 本质是object类型的对象(一般对象)
  2. 虚拟DOM比较“轻”,真实DOM比较“重”,因为虚拟DOM是react内部在用,无需真实DOM上那么多的属性
  3. 虚拟DOM最终会被react转化为真实DOM,呈现在页面上。

PlainBashC++C#CSSDiffHTML/XMLJavaJavascriptMarkdownPHPPythonRubySQL

<body>

<!--准备好一个容器-->

<div id="test"></div>

<div id="demo"></div>

<!-- 加载 React。引入react核心库-->

<!-- 注意: 部署时,将 "development.js" 替换为 "production.min.js"。-->

<script src="https://unpkg.com/react@16/umd/react.development.js" crossorigin></script>

<!-- 引入react-dom,用于支持react操作dom-->

<script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js" crossorigin></script>

<!--引入babel,用于jsx转为js-->

<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>

<script type="text/babel">/*此处一定要写babel,不写默认js*/

//1,创建虚拟dom

const VDOM=<h1 id="title"><span>Hello,React</span></h1> //此处不要加引号,因为不是字符串

//2,渲染虚拟dom到页面

ReactDOM.render(VDOM,document.getElementById('test'))

console.log('虚拟dom',VDOM);//对象

console.log(typeof VDOM);//object

console.log(VDOM instanceof Object);//true

const TDOM = document.getElementById('demo')

console.log('真实dom',TDOM);//标签

debugger;

console.log(typeof TDOM);//object

console.log(TDOM instanceof Object);//true

/*

* 关于虚拟dom

* 1,本质是object类型的对象(一般对象)

* 2,虚拟dom比较“轻”,真实dom比较“重”,因为虚拟dom是react内部在用,无需真实dom上那么多的属性

* 3,虚拟dom最终会被react转化为真实dom,呈现在页面上。

* */

</script>

</body>

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022/02/13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1,使用jsx创建虚拟DOM
  • 2,用js创建虚拟DOM
  • 3,虚拟DOM与真实DOM
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档