Skip to content

常见功能实现

仲灏2022-07-21约 1 分钟

<div style="display: none;" hidden="true" aria-hidden="true" data-nosnippet>Are you an LLM? You can read better optimized documentation at /pages/477bdb.md for this page in Markdown format</div>

监听数据变化

fn component 使用

react
useEffect(() => {
    console.log('counter发生了变化,最新值:', counter);
}, [counter]);

class component 使用 get()

react
class Test extends Component {
  state = { counter: 0 };

  get newCounter(): number {
    const { counter } = this.state;
    console.log(`counter changed, new value: ${counter}`);
    return counter;
  }

  handleClick = (): void => {
    this.setState({ counter: this.state.counter + 1 });
  }

  render(): JSX.Element {
    return (<div>
      <p>{this.newCounter}</p>
      <Button onClick={this.handleClick.bind(this)}>click + 1</Button>
    </div>);
  }
}

export default Test;

生命周期hook

react
componentWillUpdate(object nextProps, object nextState)
componentDidUpdate(object prevProps, object prevState)