class.jpg

    1. // tsx class 类组件
    2. import React from 'react'
    3. // props组件之间的数据传递
    4. interface Props {
    5. }
    6. // state 组件内的数据,自己的状态
    7. interface State {
    8. visible: boolean
    9. }
    10. /**
    11. * 在 UI render前获取一些 DOM数据
    12. * static getSnapshotBeforeUpdate()
    13. *
    14. * 定义类型 1 type,2 interface
    15. */
    16. class CardModel extends React.component<Props, State> {
    17. constructor(props: Props) {
    18. super(props)
    19. this.state = {
    20. visible: false
    21. }
    22. }
    23. onClick = (e: React.MoseEvent<HTMLButtonElement, MouseEvent>) => {
    24. this.setState(state => ({visible: !state.visible }))
    25. }
    26. render() {
    27. const { visible } = this.state
    28. const style = {display: visible ? 'block' : 'none' }
    29. return (
    30. <div style={style}>
    31. <button onClick={this.onClick}>确定</button>
    32. </div>
    33. )
    34. }
    35. }
    36. export default CardModel