ステートレスコンポーネント
26490 ワード
この品は後援するFlutterwave - FlutterWaveは、簡単かつ簡単に両方のオンラインとオフラインのお客様からの世界のどこで支払いを受け入れる方法です.それは絶対に無料です!
反応コンポーネントは次のように要約できます.
ステートレスコンポーネント
ステートレスコンポーネントには状態が含まれません.これは、ほとんどのアプリケーションは、同じコンポーネントをゼロから複数回作成を避けるために使用できるテンプレートのようなコンポーネントを構築するために使用されます.これは、アプリケーション内の多くのステートレスコンポーネントを持つことができることを意味します.
ステートレスコンポーネントは、機能コンポーネントまたはクラスコンポーネント、どちらでも好きです.ただし、さまざまなファイルのステートレスコンポーネントを使用して、より良いワークフローをお勧めします.これは、機能、ウェブパックを利用します.
その最も基本的な形の機能的な構成要素は、ちょうど成分です.これは、関数レスコンポーネントをステートレスコンポーネントとして使用するのが最善です.
以下は機能的なコンポーネントです.
人・人.js
import React from 'react';
const Person = props => {
return (
<div className="App">
<h3>Name: {props.name}</h3>
<h3>Skill: {props.language}</h3>
<h3>ID: {props.id}</h3>
</div>
);
};
export default Person;
以下はクラスベースの関数型ですが、ステートレスです.人・人.js
import React from 'react';
import { Component } from 'react';
class Person extends Component {
render() {
return (
<div className="App">
<h3>Name: {this.props.name}</h3>
<h3>Skill: {this.props.language}</h3>
<h3>ID: {this.props.id}</h3>
</div>
);
}
};
export default Person;
観測
2つのコードスニペットでは、これらは観察です.
機能性成分
React
からインポートされますreact
モジュールを使用する必要があります.クラスコンポーネント
React
and Component
両方ともreact
モジュールを使用する必要があります.this.props
クラス、人を指します.ステーフル成分
ステートフルコンポーネントは状態を含みます.テンプレートのようなコンポーネントをビルドするために使用されません.これは、ステートレスコンポーネントからテンプレートのようなコンポーネントを使用することができることを意味します.
ステートフルコンポーネントは、関数コンポーネントまたはクラスコンポーネント、どちらでも好きです.反応フックは、機能的なコンポーネントが状態を管理するのを許すために、反応16.8で導入されました.
以下は機能的なコンポーネントです.
アプリ.js
import React from 'react';
import { useState } from 'react';
import './App.css';
import Person from './Person/Person';
const App = () => {
const [state, setState] = useState({
persons: [
{ name: 'Bello', language: 'React', id: '2sdr3' },
{ name: 'Michael', language: 'Vue', id: 'de6c3' },
{ name: 'Mary', language: 'Angular', id: 'c1z3x' }
]
});
const personHandler = () => {
setState({
persons: [
{ name: 'Andela', language: 'Ember', id: '2sdr3' },
{ name: 'John', language: 'Backbone', id: 'de6c3' },
{ name: 'Mary', language: 'Angular', id: 'c1z3x' }
],
})
};
return (
<div>
<Person
name={state.persons[0].name}
language={state.persons[0].language}
id={state.persons[0].id} />
<Person
name={state.persons[1].name}
language={state.persons[1].language}
id={state.persons[1].id} />
<Person
name={state.persons[2].name}
language={state.persons[2].language}
id={state.persons[2].id} />
<button
onClick={personHandler}>Change Person State</button>
</div>
);
};
export default App;
以下はクラスベースの機能的コンポーネントですが、アプリ.js
import React from 'react';
import { Component } from 'react';
import './App.css';
import Person from './Person/Person';
class App extends Component {
state = {
persons: [
{ name: 'Bello', language: 'React', id: '2sdr3' },
{ name: 'Michael', language: 'Vue', id: 'de6c3' },
{ name: 'Mary', language: 'Angular', id: 'c1z3x' }
]
};
personHandler = () => {
this.setState({
persons: [
{ name: 'Andela', language: 'Ember', id: '2sdr3' },
{ name: 'John', language: 'Backbone', id: 'de6c3' },
{ name: 'Mary', language: 'Angular', id: 'c1z3x' }
]
})
};
render() {
return (
<div>
<Person
name={this.state.persons[0].name}
language={this.state.persons[0].language}
id={this.state.persons[0].id} />
<Person
name={this.state.persons[1].name}
language={this.state.persons[1].language}
id={this.state.persons[1].id} />
<Person
name={this.state.persons[2].name}
language={this.state.persons[2].language}
id={this.state.persons[2].id} />
<button
onClick={this.personHandler}>Change Person State</button>
</div>
);
}
}
export default App;
観測
2つのコードスニペットでは、これらは観察です.
機能性成分
state
and useState
データを保持するパラメータは従来の名前です.つまり、関数の構成要素のパラメータとして使用する方が好きです.React
and useState
からインポートされますreact
クラスコンポーネントの代わりに状態を管理する機能コンポーネントのためのモジュール.クラスコンポーネント
React
and Component
両方ともreact
モジュールを使用します.this.state
クラス、アプリケーションを参照してください.ハッピーコーディング!
.ltag__user__id__428113 .アクションボタン
背景色:こっち重要
カラー:竜華ffffff!重要
ボーダーカラー:こっち重要
}
ベリョ
Hi, I am Bello Osagie, a tech blogger, writer, and web developer. I teach web development for free… Join me to learn, discover, and have fun coding together!
(株) TECStack
FlutterWave主催のTechstack記事.FlutterWaveは、簡単かつ簡単に両方のオンラインとオフラインのお客様からの世界のどこで支払いを受け入れる方法です.それは絶対に無料です!また、リンクを介してサインアップするときにFlutterWaveドルバーターカードを取得します.オンラインストアを開き、世界のどこでもあなたのビジネスを取る.
Sign up today to get started
Support テクスタック
Reference
この問題について(ステートレスコンポーネント), 我々は、より多くの情報をここで見つけました https://dev.to/bello/react-stateless-vs-stateful-components-3hfiテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol