React学习第2天——hello_React虚拟DOM和真实DOM

 一定要先后引入三个js

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>hello_react</title>
 6 </head>
 7 <body>
 8     <!-- 准备好一个“容器” -->
 9     <div id="test"></div>
10 
11     <!-- 引入react核心库 -->
12     <script type="text/javascript" src="../js/react.development.js"></script>
13     <!-- 引入react-dom,用于支持react操作DOM -->
14     <script type="text/javascript" src="../js/react-dom.development.js"></script>
15     <!-- 引入babel,用于将jsx转为js -->
16     <script type="text/javascript" src="../js/babel.min.js"></script>
17 
18     <script type="text/babel" > /* 此处一定要写babel */
19         //1.创建虚拟DOM
20         const VDOM = <h1>Hello,React</h1> /* 此处一定不要写引号,因为不是字符串 */
21         //2.渲染虚拟DOM到页面
22         ReactDOM.render(VDOM,document.getElementById('test'))
23     </script>
24 </body>
25 </html>

 18行注意是babel

 虚拟DOM的两种创建方式

 

  1. 使用JSX创建虚拟DOM
     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>Title</title>
     6 </head>
     7 <body>
     8 <script src="../js/react.development.js"></script>
     9 <script src="../js/react-dom.development.js"></script>
    10 <script src="../js/babel.min.js"></script>
    11 <div id="test"></div>
    12 
    13 <script type="text/babel">
    14     const VDOM = <h1 id="title"><span>hello React</span></h1>
    15     ReactDOM.render(VDOM,document.getElementById('test'))
    16 </script>
    17 </body>
    18 </html>
  2. 使用JS创建虚拟DOM   
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>2_使用js创建虚拟DOM</title>
    </head>
    <body>
        <!-- 准备好一个“容器” -->
        <div id="test"></div>
    
        <!-- 引入react核心库 -->
        <script type="text/javascript" src="../js/react.development.js"></script>
        <!-- 引入react-dom,用于支持react操作DOM -->
        <script type="text/javascript" src="../js/react-dom.development.js"></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>
    </html>

     

    bable的作用就是将JSX的写法转换成JS的写法

           

 1 //1.创建虚拟DOM
 2         const VDOM = (  /* 此处一定不要写引号,因为不是字符串 */
 3             <h1 id="title">
 4                 <span>Hello,React</span>
 5             </h1>
 6         )
 7         //2.渲染虚拟DOM到页面
 8         ReactDOM.render(VDOM,document.getElementById('test'))
 9 
10         const TDOM = document.getElementById('demo')
11         console.log('虚拟DOM',VDOM);
12         console.log('真实DOM',TDOM);
关于虚拟DOM:
1.本质是Object类型的对象(一般对象)
2.虚拟DOM比较“轻”(属性少),真实DOM比较“重”(属性多),因为虚拟DOM是React内部在用,无需真实DOM上那么多的属性。
3.虚拟DOM最终会被React转化为真实DOM,呈现在页面上。
posted @ 2022-02-10 17:09  JO斯大  阅读(55)  评论(0)    收藏  举报