ReactJS-类组件

类组件继承自React的Component类,具有一个组件的完整生命周期

以下生命周期适用于React0.14.9版本,以上版本生命周期发生较大变化
componentDidMount:组件初次挂载到页面时执行,只会在组件挂载时执行一次
挂载的含义以后再进行解释,现在我也理解的不是很清除,也希望大神们可以给我留言教教我

组件的数据来源

组件的数据来源有两种PropsState

Props来源于实例化组件时传递给组件的参数


State
State以对象的形式保存在组件上,通常是调用方法setState方法去改变组件的state。
setState(updater,[,callback])方法接受两个参数,返回的是一个要更新this.state的对象,或者返回改对象的函数,callback是更新完成后的执行的回调函数。
setState是一个批量异步的操作,react会在短时间内批量更新,callback函数调用时才会访问到更新后的state

组件方法

setState():更新组件的State,有机会触发render()执行
forceUpdate():强制执行一次render()

数据传递

先上一段代码

import  * as React from 'react'
import * as ReactDOM from 'react-dom'
class SimpleComponent extends React.Component {
    state = {}
    componentDidMount() {
        this.setState({text: this.props.defaultText})
    }
    render() {
        return (
            

{ this.props.title }

this.updateText(event.target.value)} />
{this.state.text }
) } updateText(text) { this.setState({text: text}) } } class App extends React.Component { state = { title: 'initial title' } componentDidMount() { setTimeout(() => { this.setState({title: "title changed"}) }, 1000) } render(){ return() } } ReactDOM.render(
{/**/}
, document.querySelector("#root") )

运行的最终结果如图:

ReactJS-类组件_第1张图片
image.png

App挂载时,界面显示 initial title,随后会触发一个定时器, 1s之后显示 title changed。写代码时要注意, render()函数一定要有 return语句,不然运行后界面无内容

子组件与子元素

子组件是指在一个组件的render()函数中使用到的另一个组件,比如App中使用了SimpleComponent,则SimpleComponentApp的子组件。
子元素JSX中组件的嵌套关系,inputdiv的子元素

 
this.updateText(event.target.value)} />

无状态组件

通常为纯函数形式,返回JSX片段。无状态组件没有state,接受props作为函数参数,通常进行一些数据展示的功能

你可能感兴趣的:(ReactJS-类组件)