React组件

84 阅读1分钟

1.类组件和函数组件:

  • 函数返回值是元素,这个东西就叫做组件

image.png

  • 函数名第一个必须要大写 类组件:class 类名 继承 React.Component render函数用来渲染组件视图。return 一个元素 image.png bable将代码翻译成js image.png

image.png 类使用方式,不会就把3~10行代码背下来。 extends(继承)。 constructor初始化一个state(其实也就是data),它的值是n:0. image.png

import React from "react";
import ReactDOM from "react-dom";

import "./styles.css";

class App extends React.Component {
  constructor(){
    super();
    this.state={
      n:0
    };
  }
  add(){
   this.setState({n:this.state.n+1}) 
  }
  render(){
    return (
      <div className="App">
        n{this.state.n} 
        <button onClick={()=>this.add()}>+1<button/>
      </div>
    );
  } 
}

//声明一个state初始值为0,用n代替这个0,用setN对这个0进行修改。setN后得到一个新的n.
const [n,setN] = React.useState(0);

2.props(外部数据)和state(内部数据)

  • 类组件传props的方式; 图片.png
  • 函数组件传props的方式; 图片.png
  • 类组件传送state,需要使用setState告诉react数据发生了变化,react里数据是不可变的,所以它产生了一个新的对象。 图片.png
  • 一般会将setState写成一个函数,setState更新过程是异步的。 图片.png
  • 函数组件传送state 图片.png

图片.png

图片.png

3.vue和react模型对比。

图片.png 图片.png

  • react{}花括号之内都是js语法,花括号之外是标签。

4.复杂state

图片.png

5.事件绑定

//React事件绑定终极写法;
addN = ()=>this.setState{(n:this.state.n+1)}
//使用
this.addN()