React属性(props)和状态(state)

组件的属性和状态

Props和State是组件的数据管理方法,用于在组件之间传递数据等。
简要说明如下:
State:在组件内部管理的私有值。
Props:传递给另一个组件的全局值。

道具

Props是用于在父组件和子组件之间传递数据的对象。通过在父组件中为子组件设置属性,可以将值作为props传递给子组件。

Props的使用方法

父组件

const ParentComponent = () => {
	const name = 'John';
	
	return (
		<div>
			<ChildComponent name={name} age={30} message="Hello"/>
		</div>
	);
}

通过指定子组件的属性值作为父组件所使用的属性来传递数据。
属性名可以自由命名,如果要传递的值是变量或者数字,需要用花括号{}包裹,如果是字符串则需要用双引号””包裹。

子组件 (zǐ

const ChildConponent = (props) => {
	return(
		<div>
			<p>Name: {props.name}</p>
			<p>Age: {props.age}</p>
			<p>Message: {props.message}</p>
		</div>
	);
}

子组件接受一个作为参数的props对象,并接收来自父组件指定的属性。

使用props传递数据时,数据是单向的。也就是说,虽然可以从父组件向子组件传递数据,但不能直接从子组件向父组件传递数据。

陈述

State指的是用于管理组件状态的数据。通过使用State,可以根据用户的操作或来自外部的数据变化,动态地改变组件的显示。与props不同的是,State允许在赋值后进行修改,而props的赋值后则不可改变。

在 State 的特性中,State 被更新时会自动进行再渲染。这是因为更新 State 会触发调用重新渲染的方法。因为在使用类组件和函数组件时,State 有不同的用法,所以对它们分别进行解释。

State的使用方式

类组件

class TextInput extends React.Component {
	//初期化
	constructor(props){
		super(props);
		this.state = {
			text: 'hello'
		};
	}

	handleChange(event) {
		this.setState({ text: event.target.value });
	}	

	render(){
		return(
			<div>
				<input 
						type="text" 
						value={this.state.text}
						onChange={(event) => this.handleChange(event)}
				/>
				<p>入力されたテキスト:{this.state.text}</p>
			</div>
		);
	}
}

2. 设定组件的初始状态
→ 当组件首次渲染时,在 constructor 方法中初始化 this.state。

2.更新State:
调用this.handleChange,通过this.setState方法来更新state。
当onChange(即输入字段的值发生变化时),会调用handleChange。

函数组件

import React, { useState } from 'react';

function TextInput() {
  const [text, setText] = useState('Hello');

  const handleChange = (event) => {
    setText(event.target.value);
  };

  return (
    <div>
      <input
        type="text"
        value={text}
        onChange={handleChange}
      />
      <p>入力されたテキスト: {text}</p>
    </div>
  );
}

在函数组件中,通过使用 Hooks(钩子),来进行状态的管理和更新。

    • const [text, setText] = useState(‘Hello’)

 

    • useStateフックを使用して,初期値がHelloのtextというstate変数と,そのstate変数を更新するための関数setTextを宣言する.

 

    • handleChange

 

    handleChange関数は入力フォームが変更されたときに呼び出される関数で,その中では,state変数を変更する処理を行っている.useStateで宣言したstate変数を変更する関数を利用することで,一緒に宣言したstate変数の値を変更する.

关于钩子函数的内容,我已经整理在另一篇文章中了。

 

广告
将在 10 秒后关闭
bannerAds