React コンポーネントは、独立した再利用可能なコードです。React コンポーネントはオプションの入力を受け取り、画面にレンダリングされるReact 要素を返します。
React コンポーネントには主に 2 つのタイプがあります。
機能コンポーネントは、props を引数として受け取り、react 要素を返す単純な JavaScript 関数です。機能コンポーネントは、他のコンポーネントからのデータを必要とせず、他のコンポーネントと相互作用しません。
機能コンポーネントができること:
this.statecomponentDidmount)。import React from "react"
const Welcome = props => {
return (
<div>
<h1>Hello, {props.name}</h1>
</div>
)
}
export default Welcome
これらのコンポーネントは、ES6 のクラス構文を使用して作成されます。これらには、ロジックを含める機能 (onClick イベントを処理するメソッドなど)、ローカル状態 (これについては次の章で詳しく説明します)、および本書の後半のセクションで説明するその他の機能など、いくつかの追加機能があります。
クラス コンポーネントでできること:
Componentし、React でクラスを拡張するthis.statecomponentDidmount)。this.propsimport React, {Component} from "react"
class Welcome extends Component {
render() {
return (
<div>
<h1>Hello, {this.props.name}</h1>
</div>
)
}
}
export default Welcome
次の必要がない限り、常に機能コンポーネントを使用してください。
プレゼンテーション コンポーネントは、props を取得して UI をレンダリングするステートレスな機能コンポーネントと呼ばれることがよくあります。機能コンポーネントと同様に、プレゼンテーション コンポーネントは次のことができません。
this.statecomponentDidmount)。import React from 'react'
const Book = ({ title, img_url }) => (
<div className="book">
<img src={ img_url } alt={title}/>
<h3>{ title }</h3>
</div>
)
export default Book
コンテナー コンポーネントは、動作部分を処理します。コンテナー コンポーネントは、props を使用して何をレンダリングする必要があるかをプレゼンテーション コンポーネントに伝えます。限定された DOM マークアップとスタイルを含めることはできません。Redux を使用している場合、コンテナー コンポーネントには、アクションをストアにディスパッチするコードが含まれています。または、これは API 呼び出しを配置し、結果をコンポーネントの状態に保存する場所です。
コンテナ コンポーネント パターンの簡潔な定義を次に示します。
<div>class BookList extends Component {
constructor(props) {
super(props);
this.state = {
books: []
};
}
componentDidMount() {
fetch('https://learn-co-curriculum.github.io/books-json-example-api/books.json')
.then(response => response.json())
.then(bookData => this.setState({ books: bookData.books }))
}
renderBooks = () => {
return this.state.books.map(book => {
return (
<div className="book">
<img src={ book.img_url } />
<h3>{ book.title }</h3>
</div>
)
})
}
render() {
return (
<div className="book-list">
{ this.renderBooks() }
</div>
)
}
}
純粋なコンポーネントは、主に最適化を提供するために使用されます。これらは、私たちが作成できる最も単純で最速のコンポーネントです。それらは、そのスコープ外の変数の状態に依存したり変更したりしません。したがって、純粋なコンポーネントが単純な機能コンポーネントを置き換えることができるのはなぜですか。
React.Componentただし、通常の aと aの主な違いの 1 つReact.PureComponentは、純粋なコンポーネントが状態の変化に対して浅い比較を実行することです。純粋なコンポーネントはshouldComponentUpdate()、それ自体で処理します。前のstateand/orpropsが次と同じである場合、コンポーネントは再レンダリングされません。
React.PureComponentはパフォーマンスを最適化するために使用されます。なんらかのパフォーマンスの問題が発生しない限り、使用を検討する理由はありません。
import React from ‘react
class Welcome extends React.PureComponent{
render(){
return (
<div>
<h1>Welcome!</h1>
</div>
)
}
}
export default Welcome
今週、毎日のメールリストのメンバーからメールを受け取りました。彼らは次のことを知りたかったのです。毎日、毎週、毎月どのリソースにアクセスしていますか? 素晴らしい質問です!私のワークフローと使用している主なリソースについての洞察を共有したいと思います。
サイバー愛好家の皆さん、こんにちは!OSINT for Threat Hunting シリーズへようこそ。最初の記事では、OSINT の概要と脅威ハンティングにおけるその重要性について説明しました。
一緒に過ごした夜を終え、ヘイデンがケイティを大学の寮に車で送ったのは真夜中過ぎだった。彼女は朝早くから授業があり、前夜彼と一緒にいた後、着替えを持っていませんでした。
先週、私はPressGazette(英国のメディアニュースウェブサイト)経由で送信されたプレスリリースに気づきました。この記事は、スカンジナビアのポッドキャスト ホスティングおよび広告会社である Acast が、ポッドキャスティングにおいて「おそらく最も影響力のある」パブリッシャーのコンソーシアムを率いることになると発表しました。
西のなだらかな丘陵地帯では、太陽の最初の光が平原の曇った草を照らす、まばゆいばかりの金色の朝です。真っ黒で巨大な穏やかなアンガス牛の群れが日の出を背景にシルエットを描き、誰もがよく知っている場所へ人里離れた道を進んでいます。朝食バー。