zoukankan      html  css  js  c++  java
  • React-虚拟dom、diff算法、创建组件、css的模块化、组件生命周期、组件的单向数据绑定、组件的传值(方法)

        1、前端3大框架的对比

      

      

      

      

    2、React  基本介绍

      虚拟dom

      

      diff算法---对比差异

      

     3、搭建react开发环境

      npx create-react-app my-app

      cd my-app

      npm start

      

      

      

       React中定义组件

      方式1: 构造函数-----这种是创建的组件是无状态组件

      

      

      方式2: class-----es6新语法

      

      

      

       创建组件方式2---用class----利用继承React组件的方式创建的组件是由状态组件,组件内部可以定义私有的数据

       

     4、React中css的模块化

      

      用create-react-app创建出来的项目,我们得先找到那个配置文件在哪,文件默认路径为: ode_modules eact-scriptsconfigwebpack.config.js,然后找到如下代码,新增一个参数modules:true就可以了:

      

      

      

       

     5、组件的生命周期

      

      

        

    6、组件的使用

      设置默认值

      

      设置默认值的类型校验

      

      生命周期函数---注意生命周期函数的执行顺序(也决定了再组件中书写的位置,比如不要把componentWillMount 写在render的后面了)

        组件创建阶段:第一个componentWillMount(在这个函数中拿得到数据和方法,拿不到dom对象)

         

        组件创建阶段:第二个render函数----内存中会创建好虚拟dom,到时还没渲染到页面上去

         

         组件创建阶段最后一个执行的函数:componentDidMount

         

        组件运行阶段:这里的5个生命周期函数触发是由条件的,必须是props属性改变或者状态state发生改变才会触发,否则执行次数时0

          props里的属性是只读的(这点也和vue一样),所以我们通过改变state里面的值触发

          第一个:componentWillReceiveProps----

          

         

         

         

          注意:以上的原生dom事件不推荐----和vue一样,不推荐操作dom

         所以使用react提供的事件绑定机制---onClick  (注意:原生的是 onclick   vue的是@click)

          jsx语法注意事项:  jsx时,在标签中要使用js时要用{}包起来

          

         第二个   shouldComponentUpdate

          

          第3个  componentWillUpdate

          

          

          组件运行阶段的:render函数----第4个函数

                       

          组件运行阶段的最后一个函数:   componentDidUpdate

          

          组件销毁阶段的函数:   componentWillUnmount

     7、react中绑定this并传参的方法

      方式1:  利用bind  修改this指向

        

        

      方式2: 在构造函数中绑定并传参---注意bind不是在调用函数

        

      方式3:箭头函数(箭头函数的内部this和外部this指向是一样的,所以说箭头函数this指向时在函数定义时决定的,而不同于我们之前学的谁调用了那个方法this就指向谁)

         

        函数调用时要传参时可如上写箭头函数,一举两得;

        若函数调用不需要传参的话,

        那就可以在定义函数时写箭头函数

          onClick = {this.changeMsg3}

          changeMsg3= () => {//此时this指向组件了

          }

     8、react如何把页面数据更新到数据中------react中是单向绑定,支持数据到页面的自动刷新(必须用setState方法),但是不支持页面到数据的同步,想要同步要自己在事件函数中设置下

      

      

      

      

      

     9、评论列表组件案例

      

    10、当组件嵌套比较多层时,子组件想拿到父组件的值时若是一层层传递和获取的话会比较麻烦,这是可以利用context  来取父传过来的值

      用法:

        

        

      

      

      

     

  • 相关阅读:
    Session的使用与Session的生命周期
    Long-Polling, Websockets, SSE(Server-Sent Event), WebRTC 之间的区别与使用
    十九、详述 IntelliJ IDEA 之 添加 jar 包
    十八、IntelliJ IDEA 常用快捷键 之 Windows 版
    十七、IntelliJ IDEA 中的 Maven 项目初体验及搭建 Spring MVC 框架
    十六、详述 IntelliJ IDEA 创建 Maven 项目及设置 java 源目录的方法
    十五、详述 IntelliJ IDEA 插件的安装及使用方法
    十四、详述 IntelliJ IDEA 提交代码前的 Code Analysis 机制
    十三、IntelliJ IDEA 中的版本控制介绍(下)
    十二、IntelliJ IDEA 中的版本控制介绍(中)
  • 原文地址:https://www.cnblogs.com/yangyutian/p/11094698.html
Copyright © 2011-2022 走看看