React组件的使用

 1、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 )

 

2、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;

 

3、对上方的解释
    一、render 【生命周期函数】
        做用:渲染虚拟DOM
 
        特色:当 render 渲染虚拟DOM的时候会将数据和虚拟DOM进行相结合生成真实的DOM结构,会将当前的虚拟DOM在缓存中保存一份,当数据发生改变的时候会将缓存中的虚拟DOM和第二次改变的虚拟DOM进行对比。修改须要改变的虚拟DOM节点,而不是改变全部的虚拟DOM【diff算法】
    
    二、constructor 初始化函数 能够用来存放当前组件所须要的一些状态
 
            状态(属性)
 
            this.state = {
                name:"tom"
            }
 
    三、react 中若是须要改变this.state里面的数据 须要用this.setState方法
 
        用法为:
            this.setState({
                key:val
            },
            ()=>{
                //在这能够验证状态是否修改, 获取到最新的DOM结构【而vue经过this.$nextTick获取最新的DOM结构】
            })
 
        参数一:对象【改变状态】
            key:须要修改的状态
            val:值
        参数二:回调函数
相关文章
相关标签/搜索