反応基本
26188 ワード
ちょっと開発者、反応基本シリーズの第3部へようこそ.我々は反応プロジェクトを設定することを学び、さまざまな種類の反応コンポーネントを見ました.約束されたこの部分では、コンポーネントの状態について学びます.
構成要素の状態
以前の部分で議論されるように、反応はHTMLテンプレートで変数の値をレンダリングする能力を持っています.このfuntionalityは、コンポーネントの状態の助けを借りて実行されることができます.
例を挙げましょう
ここで、ジョンはテンプレート(レンダリング関数で)にハードコード化されます.しかし、この名前を言いましょう
その前に、クラスのコンストラクタがどのように動作するかの基本的な考え方を理解する必要があります.
コンストラクタは、単純な単語で、クラスが呼ばれるとすぐに実行する命令のセットです.これらの命令は、アプリケーション/コンポーネントおよび多くのために重要なデータを格納するAPIを呼び出す重要な変数を作成することができます.この場合、コンポーネントの状態を初期化します.以下のスニペットを分析しましょう.
オブジェクトは、値に割り当てられた通常の変数と同様に、キーの値のペアのコレクションです.単純な単語では、変数のコレクションのように動作します.変数のように、オブジェクトのキーを呼び出し、割り当てられた値を得ることができます.現在、内部
通常使用 インデクシング方法の使用
電話しましょう
少し疑わしく感じるさま🧐?
ライン番号5をチェックしてください.あなたは
厳熙😉, それがどのように新しい価値に変わったかについて見てください
最初の1 -の値を変更するボタンを追加しましょう
反応コンポーネントでは、別のタスクの異なる関数を作成し、HTMLテンプレート内でそれらを呼び出すか、通常もそれを呼び出すことができます.これを行う関数を作成します.
うん、ちょうど機能を追加しました.
JavaScriptに精通している場合は、どこにいるのだろうか
インサイド
ステップ3 -バインド
ブラウザをチェックする時間です
それはtodayyyy!
コメントとしてクエリをドロップします.
あなたの時間をありがとう☺️
構成要素の状態
以前の部分で議論されるように、反応はHTMLテンプレートで変数の値をレンダリングする能力を持っています.このfuntionalityは、コンポーネントの状態の助けを借りて実行されることができます.
例を挙げましょう
Cart
コンポーネント.src/components/Cart.jsx
import React from 'react';
export default class Cart extends React.Component {
render () {
return (
<h1>Hello, John</h1>
)
}
}
Localhost
ここで、ジョンはテンプレート(レンダリング関数で)にハードコード化されます.しかし、この名前を言いましょう
John
ユーザーがWebアプリケーションと対話するときに変更する必要があります.これをするために、我々はコンポーネント状態の驚くべき力を使います.この変更された名前を保持する変数を定義することができます.そうしましょう.その前に、クラスのコンストラクタがどのように動作するかの基本的な考え方を理解する必要があります.
コンストラクタは、単純な単語で、クラスが呼ばれるとすぐに実行する命令のセットです.これらの命令は、アプリケーション/コンポーネントおよび多くのために重要なデータを格納するAPIを呼び出す重要な変数を作成することができます.この場合、コンポーネントの状態を初期化します.以下のスニペットを分析しましょう.
src/components/Cart.jsx
import React from 'react';
export default class Cart extends React.Component {
constructor () {
this.state = {}
}
render () {
return (
<h1>Hello, John</h1>
)
}
}
あなたはconstructor
レンダリングメソッドの前のキーワード.これはJavaScriptの特定のクラスのコンストラクターを定義する方法です.カーリーブレースの内部では、コールで実行するすべての命令を定義します.ここで変数を初期化するのを見ることができますthis.state
に指定されます.まあ二つの巻き😕. これは実際にJavaScriptでオブジェクトを定義する方法です.オブジェクトは、値に割り当てられた通常の変数と同様に、キーの値のペアのコレクションです.単純な単語では、変数のコレクションのように動作します.変数のように、オブジェクトのキーを呼び出し、割り当てられた値を得ることができます.現在、内部
this.state
オブジェクトは、テンプレートで使用するすべての変数を作成します.コードスニペットで理解しましょう.src/components/Cart.jsx
import React from 'react';
export default class Cart extends React.Component {
constructor () {
this.state = {
first_name: "John"
}
}
render () {
return (
<h1>Hello, John</h1>
)
}
}
ここでキーを作成しましたfirst_name
と文字列の値を割り当てた"John"
それに.このキーを呼ぶのはかなり簡単です.私たちが学んだように、オブジェクトは重要な値ペアのコレクションです.この場合、変数に格納しますthis.state
. オブジェクト内のキーを呼び出すには、まずオブジェクトを保持する変数を参照して、呼び出したいキーの名前を参照します.オブジェクトのキーを参照する複数の方法がありますobject.<key_name>
方法// Object
this.state = {
first_name: "John"
}
// Method 1
this.state.first_name
// Method 2
this.state["first_name"]
しばらくの間、メソッド1を使用します.その後、状況が発生すると、メソッド2を使用します.はい!これらの方法はいくつかの状況に基づいて使用しなければならない.それは複雑ではない、我々はこれを行うことができます!電話しましょう
first_name
HTMLテンプレートのキー.これを行うには奇妙な構文を使用する必要があります.下記のスニペットを分析しましょう.src/component/Cart.jsx
import React from "react";
export default class Cart extends React.Component {
constructor() {
super();
this.state = {
first_name: "John",
};
}
render() {
return <div>Hello, {this.state.first_name}</div>;
}
}
上記のコードスニペットでは、Render関数内で変数がどのように呼び出されるかを見ることができます.Curlyブレースを使用し、呼び出したい変数の名前を書く必要があります.少し疑わしく感じるさま🧐?
ライン番号5をチェックしてください.あなたは
super()
キーワード.これは、React.Components
オブジェクト.なぜそこにあるのだろうかthis
前のキーワードstate
変数.The this
キーワードは、クラスで作成されたオブジェクト、変数および関数にアクセスするために使用されます.はい、直接アクセスできませんstate
変数.今すぐブラウザをチェックしてください.何も変更されていません.first_name
キー、私たちは言うSarah
.src/component/Cart.jsx
import React from "react";
export default class Cart extends React.Component {
constructor() {
super();
this.state = {
first_name: "Sarah",
};
}
render() {
return <div>Hello, {this.state.first_name}</div>;
}
}
Localhost
厳熙😉, それがどのように新しい価値に変わったかについて見てください
Sarah
. これは、動的にHTMLをレンダリングする方法です.方法については、このレベルを取る.最初の1 -の値を変更するボタンを追加しましょう
first_name
をクリックします.src/component/Cart.jsx
import React from "react";
export default class Cart extends React.Component {
constructor() {
super();
this.state = {
first_name: "Sarah",
};
}
render() {
return (
<>
<div>Hello, {this.state.first_name}</div>
<button>Change name</button>
</>
);
}
}
ステップ2 -名前を変更する関数を作成します.反応コンポーネントでは、別のタスクの異なる関数を作成し、HTMLテンプレート内でそれらを呼び出すか、通常もそれを呼び出すことができます.これを行う関数を作成します.
src/component/Cart.jsx
import React from "react";
export default class Cart extends React.Component {
constructor() {
super();
this.state = {
first_name: "Sarah",
};
}
change_name = () => {
this.setState({ first_name: "John" });
}
render() {
return (
<>
<div>Hello, {this.state.first_name}</div>
<button>Change name</button>
</>
);
}
}
whoa whoa What何がちょうど起こったか😵うん、ちょうど機能を追加しました.
JavaScriptに精通している場合は、どこにいるのだろうか
function
キーワード.ここではどのように反応作品は、“もの”を見ただけの矢印機能と呼ばれています.矢印機能をクリックしたい場合はhere . クラスの変数にアクセスしなければならない場合、this
オブジェクト.しかし、クラス内で関数を作成すると、this
オブジェクト.今我々がバインドまたはネクタイthis
オブジェクトがクラス内で関数を作成するたびに、関数内でアクセスできます.これは反応のようなものです.結合する複数の方法がありますthis
オブジェクト.以下はそれを示す簡単な断片です.// Method 1
export default class App extends React.Component {
constructor (props) {
super(props);
this.state = {
first_name: "John"
}
this.change_name.bind(this);
}
change_name = function () {
// do something
}
render () {
return (
<h1>Hello, { this.state.first_name }</h1>
)
}
}
// Method 2
export default class App extends React.Component {
constructor (props) {
super(props);
this.state = {
first_name: "John"
}
}
change_name = () => {
// do something
}
render () {
return (
<h1>Hello, { this.state.first_name }</h1>
)
}
}
メソッド1では、関数を作成する通常の構文を使用します.しかし、メソッド2では、関数を作成するために矢印関数を使用しました.メソッド1を使用している間、手動でthis
関数はconstructor
とbind
関数.しかし、これはメソッド2の場合ではなく、関数に自動的にバインドされます.このシリーズではメソッド2を使用します.私たちは戻って我々のアプリを取得しましょう.src/component/Cart.jsx
import React from "react";
export default class Cart extends React.Component {
constructor() {
super();
this.state = {
first_name: "Sarah",
};
}
change_name = () => {
this.setState({ first_name: "John" });
}
render() {
return (
<>
<div>Hello, {this.state.first_name}</div>
<button>Change name</button>
</>
);
}
}
これは私たちだった場所です!インサイド
change_name
関数Iはいくつかのコードを追加しました.反応では、状態キーの値を直接再利用することはできません.私たちはsetState
関数は、状態を変更します.だから、単に呼び出すことができますthis.setState()
関数は、キーをキーとしてオブジェクトに渡し、値の後に値を変更するキーを新しい値とします.ステップ3 -バインド
change_name
ボタンの機能src/component/Cart.jsx
import React from "react";
export default class App extends React.Component {
constructor() {
super();
this.state = {
first_name: "Sarah",
};
}
change_name = () => {
this.setState({ first_name: "John" });
}
render() {
return (
<>
<div>Hello, {this.state.first_name}</div>
<button onClick={this.change_name}>Change name</button>
</>
);
}
}
我々は、使用するつもりですonClick
属性<button>
要素.属性の値は曲線括弧の内側でなければならず、関数を括弧で呼び出しないように注意してください.関数名の後に括弧を追加すると、コンポーネントがレンダリングされた直後に呼び出されます.ブラウザをチェックする時間です
Localhost -- before
Localhost -- after
それはtodayyyy!
コメントとしてクエリをドロップします.
あなたの時間をありがとう☺️
Reference
この問題について(反応基本), 我々は、より多くの情報をここで見つけました https://dev.to/elwinjyot/react-basics-part-3-3fa5テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol