zoukankan      html  css  js  c++  java
  • React重新学习

    react和vue对比:

    1 什么是模块化: 从代码的角度进行分析。(可以复用的代码 ,抽离为单个模块,便于模块的维护和开发)

    2 什么是组件化:从UI界面进行分析。(把可复用的UI元素,抽离为单独的组件)

    3 组件化的好处:  抽离出为单独的组件。

    4 vue如何实现组件化: 通过 vue文件,创建对应的组件。 template scirpt style

    5 react如何实现组件化:组件模板文件,一切都是js表现的。(ES6+ES7(async和await)要会用)。

    react的核心概念!!!

    1 DOM的本质。 浏览器提供的!!!! js对象表示页面上的元素,并且提供的操作的DOM对象的API

    2 虚拟DOM: 程序员提供的!!!js对象模拟页面上的DOM和DOM 嵌套。

    3 为什么实现虚拟DOM ,为了实现页面中,DOM元素的高效更新。

    问题1: 只需要按新更新, 如何获取到新旧DOM树, 从实现DOM树的对比呢?

      答案:浏览器并没有直接提供获取DOM树的API ,因此无法拿到浏览器内存中DOM树。

    问题2:程序员如何模拟DOM树? 如何模拟DOM元素? 1本质:数据结构:对象形式。 2 目的:实现页面元素的高效更新。

      <div id =’mydiv' title='number1'>caomei</div>
    
       var div =  {
        tagName:‘div’
        attrs:{
          id: 'mydiv'
    
          title: ' number1'
          'data-index':'0'
          }
    
        childrens: [
    
            'caomei'
          ]
    
      }
      
    <div id =’mydiv' title='number1'>
      caomei
       <p>pinggu</p> 
    
      </div>
        
       var div =  {
        tagName:‘div’
        attrs:{
          id: 'mydiv'
    
          title: ' number1'
          'data-index':'0'
          }
    
        childrens: [
    
            'caomei',
            { tagName :‘p',
              attrs:{},
              childrebn:['apple']
    
          ]
    
      }

    Diff 算法:

    一个网页的呈现过程:

    1 浏览器 请求服务器获取页面HTML的代码

    2 浏览器要在内存中,解析DOM结果,在内存中,渲染出DOM树。

    3 浏览器把DOM书,呈现在页面是。(栅格化)

    组件:

    类组件。

  • 相关阅读:
    javascript-事件代理
    控制DIV属性——实现盒子长、宽、背景等变化
    mac环境下VSCODE 全局搜索无效的问题
    VSCODE snippets的使用
    JS单线程与setTimeout执行原理(转载)
    ES6
    SQL聚合函数
    MySQL函数(转发)
    关于mysql中int(1)中int后面的数字(转发)
    关于xcode8.0 VVDocumenter无法使用的解决办法
  • 原文地址:https://www.cnblogs.com/hacker-caomei/p/14430780.html
Copyright © 2011-2022 走看看