• React组件的使用


     一、index.js 文件【基本配置】
     
     1 //react语法塘
     2 import React from 'react';
     3 //reactDom用来操作虚拟DOM
     4 import ReactDom from 'react-dom';
     5 //导入组件
     6 import App from './App';
     7 ReactDom.render(
     8     /*使用时需将组件App设置为 标签格式 */
     9     <App/>,
    10     document.querySelector('#root'),
    11     ()=>{
    12         console.log('渲染完成');
    13     }
    14 )
    二、App.js【组件App】
     
     1 //只需调入react语法塘【结构化赋值】
     2 import React,{Component,Fragment} from 'react';
     3  
     4  
     5 // React.Component : 所有组件的父类【在react当中所有的组件创建的时候必须首字母大写,为了区分Element元素和组件的区别】
     6 class App extents Component{
     7     // constructor 初始化函数 可以用来存放当前组件所需要的一些状态【必须写一个函数 render】
     8     constructor(){
     9         // super 必须要写
    10         super();
    11         this.state = {
    12             message:"王五"
    13         }
    14     }
    15  
    16     // react的生命周期函数【具体信息请向下划】【react中的函数不用加()】
    17     render(){
    18         let {message} = this.state;
    19         return (
    20             // Fragment 作用当做节点标签使用,但是不会被渲染成标签【类似文档碎片】
    21             <Fragment>
    22                 /*改变handleClick方法中this的指向,未改之前this指向此div元素【但又因为此div是虚拟dom,所以this指向null】*/
    23                 <div onClick={this.handleClick.bind(this)}>{message}</div>
    24             </Fragment>
    25         )
    26     }
    27  
    28     handleClick(){
    29         /*
    30             react 中不允许这这样改变数据
    31             this.state.message = '1234';
    32         */
    33  
    34         this.setState({
    35             message:"1234"
    36         })
    37     }
    38 }
    39  
    40 //将组件导出去
    41 export default App;
    三、对上方的解释
        1、render 【生命周期函数】
            作用:渲染虚拟DOM
     
            特点:当 render 渲染虚拟DOM的时候会将数据和虚拟DOM进行相结合生成真实的DOM结构,会将当前的虚拟DOM在缓存中保存一份,当数据发生改变的时候会将缓存中的虚拟DOM和第二次改变的虚拟DOM进行对比。修改需要改变的虚拟DOM节点,而不是改变所有的虚拟DOM【diff算法】
        
        2、constructor 初始化函数 可以用来存放当前组件所需要的一些状态
     
                状态(属性)
     
                this.state = {
                    name:"tom"
                }
     
        3、react 中如果需要改变this.state里面的数据 需要用this.setState方法
     
            用法为:
                this.setState({
                    key:val
                },
                ()=>{
                    //在这可以验证状态是否修改, 获取到最新的DOM结构【而vue通过this.$nextTick获取最新的DOM结构】
                })
     
            参数一:对象【改变状态】
                key:需要修改的状态
                val:值
            参数二:回调函数
     
  • 相关阅读:
    解决Windows 7下IE11无法卸载、无法重新安装,提示安装了更新的IE版本
    [SQL Server] 数据库日志文件自动增长导致连接超时的分析
    DataTable转换为List<T>或者DataRow转换为T
    比较Js的substring、substr和C#的Substring
    .NET(c#)Parameters
    SheetJS保存Excel文件
    SheetJS将table转为Excel
    JS中使用let解决闭包
    Font Awesome图标的粗细
    滚动条样式修改
  • 原文地址:https://www.cnblogs.com/jokehl/p/9998137.html
Copyright © 2020-2023  润新知