react 的状态 简单介绍

react 的 state状态

function 函数组件 视图组件 通常拥有展示 (推荐使用) 通常拥有展示 class 类组件 容器组件 存储组件 处理数据

快捷创建 imrc ccc

传参

// 导入react 和react的组件 从react
import React, { Component } from "react";
//创建个App 类继承Component组件
class App extends Component {
  // 构造函数 props 是父组件传入的参数
  constructor(props) {
    //调用父类的构造函数
    super(props);
    // 定义状态state
    this.state = {
      num: 5,
        };
  }
  add = (n = 1) => {
    this.setState({
      num: this.state.num + n,
    });
  };
  // 渲染内容
  render() {
      return (
      <div>
        <h1>state状态</h1>
        {/* 如果传入函数名不带括号 默认调用会传入事件对象 */}
        <button onClick={this.add}>{this.state.num}</button>
        <button onClick={() => this.add()}>{this.state.num}</button>
        <button onClick={this.add.bind(this, 1)}>{this.state.num}</button>
      </div>
    );
  }
}
​
export default App;
​

双向绑定

// 导入react 和react的组件 从react
import React, { Component } from "react";
//创建个App 类继承Component组件
class App extends Component {
  // 构造函数 props 是父组件传入的参数
  constructor(props) {
    //调用父类的构造函数
    super(props);
    // 定义状态state
    this.state = {
      msg: "我爱前端",
    };
  }
  // 渲染内容
  render() {
    const state = this.state;
    return (
      <div>
        {/* 当表单发送变化时候 更新msg的值 */}
        {/* e.target 事件对象 表单input */}
        <h1>表单双向绑定</h1>
        <p>{this.state.msg}</p>
        <input
          value={state.msg}
          onChange={(e) => this.setState({ msg: e.target.value })}
        />
      </div>
    );
  }
}
​
export default App;
​
​
​

dom引用

// 导入react 和react的组件 从react  
import React, { Component, createRef } from "react";
//创建个App 类继承Component组件
class App extends Component {
  // 构造函数 props 是父组件传入的参数
  constructor(props) {
    //调用父类的构造函数
    super(props);
    // 定义状态myref
     this.myref = createRef();
  }
  // 渲染内容
  render() {
    const state = this.state;
    return (
      <div>
        <h1>dom引用</h1>
        {/* 非受空表单 */}
        <input ref={this.myref} />
        {/* this.myref.current 代表input */}
        <button onClick={() => alert(this.myref.current.value)}>获取</button>
      </div>
    );
  }
}
​
export default App;
​

条件渲染

三元运算 条件? 正确 :错误

​
// 导入react 和react的组件 从react  
import React, { Component } from "react";
//创建个App 类继承Component组件
class App extends Component {
  // 构造函数 props 是父组件传入的参数
  constructor(props) {
    //调用父类的构造函数
    super(props);
   // 定义状态state
    this.state = {
        isLand: true,
    };
  }
  // 渲染内容
  render() {
    const state = this.state;
    return (
      <div>
        <h1>条件渲染</h1>
        <button onClick={() => this.setState({ isLand: !this.state.isLand })}>
          切换
        </button>
        {this.state.isLand ? <p>欢迎回来</p> : <p>请先登录</p>}
        {this.state.flag && <p>你好</p>}
      </div>
    );
  }
}
​
export default App;
​

条件&&内容

// 导入react 和react的组件 从react  
import React, { Component } from "react";
//创建个App 类继承Component组件
class App extends Component {
  // 构造函数 props 是父组件传入的参数
  constructor(props) {
    //调用父类的构造函数
    super(props);
   // 定义状态state
    this.state = {
      flag: true,
    };
  }
  // 渲染内容
  render() {
    const state = this.state;
    return (
      <div>
        <h1>条件渲染</h1>
        {this.state.flag && <p>你好</p>}
      </div>
    );
  }
}
​
export default App;
​

列表渲染

// 导入react 和react的组件 从react  
import React, { Component } from "react";
//创建个App 类继承Component组件
class App extends Component {
  // 构造函数 props 是父组件传入的参数
  constructor(props) {
    //调用父类的构造函数
    super(props);
   // 定义状态state
    this.state = {
     list: ["react", "vue", "jquery"],
    };
  }
  // 渲染内容
  render() {
    const state = this.state;
    return (
      <div>
      <h1>列表渲染</h1>
        {/* item 当前被遍历的元素项 react vue jquery */}
        {/* index 当前元素逇下标 0 1 2 3 */}
        {state.list.map((item, index) => (
          <h4 key={index}>{item}</h4>
        ))}
        <p>{state.list}</p>
      </div>
    );
  }
}
export default App;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值