# react-dom
## 开始
- 1:为什么要学习react-dom
- 2: 如何使用-react-dom
> 与react相比较,react-dom优势是什么,推广jsx语法
### code
~~~html
<!-- 设置app 为react 项目的根元素 -->
<div id="app">
<!-- <h1 id="title">hellwo word</h1> -->
</div>
<div id="count"></div>
<!-- react 的核心库 -->
<script src="./asstes/react16.4.js"></script>
<script src="./asstes//react-dom.js"></script>
<!--
用户编译 jsx 语法。变为js语法
注意:这样写在浏览器中进行编译,在运行
当代码量过大是后,页面运行会迟钝,我们一般会在本地编译,然后运行编译后的js
-->
<script src="./asstes/babel.min.js"></script>
<!-- js语法 -->
<!-- <script> -->
<!-- jsx -->
<script type="text/babel">
// 1:创建虚拟dom
// React.createElement(TagetNmae,attrObjdect,child) 作用:创建虚拟dom
// 写法痛点:
// let Vnode = React.createElement('h1',{id:'title'},React.createElement('span',{},'hell word'),React.createElement('span',{},'123'));
// 解决方式: jsx 语法
let Vnode = (
<h1>
<span>hellow word</span>
<span>123</span>
</h1>
)
// 2:将虚拟dom渲染到页面上
ReactDOM.render(Vnode,document.getElementById('app'));
~~~
<body>
<div id="app">
<!-- <h1>
<span>hellow word</span>
<span>123</span>
</h1> -->
</div>
<script src="./assets/react16.4.js"></script>
<script src="./assets/react-dom.js"></script>
<!--
编译 jsx 的语法
因为默认情况下,浏览器不能识别jsx语法
注意:大量的jsx不能用这种方式解决,用脚手架工程化方式
-->
<script src="./assets/babel.min.js"></script>
<script type="text/babel">
// 1创建虚拟dom
let Vnode = (
<h1>
<span>hellow word</span>
<span>123</span>
</h1>
)
// 2:渲染虚拟dom
ReactDOM.render(Vnode,document.getElementById('app'));
</script>
</body>
<!-- 变为虚拟dom -->
<!-- <div>
<h1>hellow word</h1>
<main>
<header>header</header>
<footer>FOOTER</footer>
</main>
</div> -->
</html>