zoukankan      html  css  js  c++  java
  • react特点和创建虚拟DOM

    react:用于构建用户界面的JavaScript库

    特点:

    1.声明式(只需要更新数据,不需要操作DOM,页面就会变化)

    2.组件化(页面简化,方便维护)

    3.一次学习,随处编写(ReactNative,可以运用在手机上,包括安卓和ios,既可以写浏览器端也可以写服务器端)

    4.高效(虚拟dom:不总是直接操作DOM 和 dom diff:最小化页面重绘)

    5.单项数据流

    注意:react高效的原因:

     相关js库:

    react.js:React的核心库

    react-dom.js:提供操作DOM的react扩展库

    babel.min.js:解析jsx语法代码转为纯js语法代码的库

    实现一个小案例:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
      <script src="../js/react.development.js"></script>
      <script src="../js/react-dom.development.js"></script>
      <script src="../js/babel.min.js"></script>
      <script type="text/babel">
        //1.创建虚拟DOM元素对象
        var vDom = <h1>hello world!</h1>   //不是字符串,这是jsx语法
        //2.将虚拟DOM元素对象渲染到页面真实DOM容器中
        ReactDOM.render(vDom,document.getElementById("test"))
      </script>
    </head>
    <body>
    <div id="test"></div>
    </body>
    </html>

    虚拟Dom:

    1.React提供了一些API来创建一种特别的js对象

      var element=React.createElement('h1',{id:'my Title'},'hello')

      这就是一个简单的虚拟DOM对象

    2.虚拟dom对象最终都会被React转换为真实的DOM

    3.我们编码时基本只需要操作react的虚拟DOM相关数据,react会转换为真实的DOM变化而更新界面

    实现第二个小案例:

    实现下面的效果:

    <div id="keep calm and carry on">
        <h2>ATGUIGU</h2>
    </div>
    <div id="KEEP CLAM AND CARRY ON">
        <h3>atguigu</h3>
    </div>
    //代码:
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <div id="test1"></div>
    <div id="test2"></div>
    <script src="https://unpkg.com/react@16/umd/react.development.js"></script>
    <script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
    <script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
    <script>
        const msg='Keep Calm and Carry On';
        const myId='Atguigu';
        //第一种方法:本质方法
        const vDom1=React.createElement('h2',{id:myId.toLowerCase()},msg.toUpperCase());
     //    虚拟dom             标签 id名称 标签里面的内容 ReactDOM.render(vDom1,documentById(
    'test1'))
      //         将虚拟DOM:vDom1渲染到test1中
    </script> <script type="text/babel"> //第二种方法:书写简单 const vDom2=<h3 id={myId.toUpperCase()}>{msg.toLowerCase()}</h3>; ReactDOM.render(vDom2,documentById('test2')) </script> </body> </html> //注意:react中所有的变量是放在{}里面的
  • 相关阅读:
    [SQL]数据更新
    Hadoop之mapred
    hadoop之hdfs
    HTML —— 11.25日总结
    HTML —— 11.19日的总结
    三个爬虫的小栗子
    HTML —— video标签
    py爬虫 —— 三个爬虫的小栗子
    HTML —— img标签
    py爬虫 —— py爬虫requests
  • 原文地址:https://www.cnblogs.com/czh64/p/12091651.html
Copyright © 2011-2022 走看看