react如何通信?

  • 父子组件 props
  • 自定义事件
  • Redux
  • context(提供者 Provider 和 消费者 Cosumer)

jsx本质

  • createElement 函数
  • 执行会返回一个 vnode

context是什么?

  • 父组件,向其下所有子孙组件传递信息
  • 应用:主题切换,语言切换,用户信息

shouldComponentUpdate用途

  • 性能优化
  • 配合 “ 不可变值 “ 一起使用,否则会出错

redux单向数据流

点击查看【processon】

setState 是同步还是异步?

  1. import React from "react";
  2. interface Props {}
  3. interface StateType {
  4. count: number;
  5. }
  6. export class C extends React.Component<Props, StateType> {
  7. constructor(props: Props) {
  8. super(props);
  9. this.state = { count: 0 };
  10. }
  11. componentDidMount() {
  12. this.setState({ count: this.state.count + 1 });
  13. console.log(this.state.count);
  14. this.setState({ count: this.state.count + 1 });
  15. console.log(this.state.count);
  16. setTimeout(() => {
  17. this.setState({ count: this.state.count + 1 });
  18. console.log(this.state.count);
  19. }, 0);
  20. setTimeout(() => {
  21. this.setState({ count: this.state.count + 1 });
  22. console.log(this.state.count);
  23. }, 0);
  24. }
  25. render() {
  26. const { count } = this.state;
  27. return <div>{count}</div>;
  28. }
  29. }