[ React ] Fetch apply
13103 ワード
Fetch関数を使って簡単に会員加入&登録ができました.
論理を記述した後、コードの確認を行います.
登録とログインの実装に関する全体的なプロセスを作成します.
の最初のパラメータは の2番目のパラメータは 通信を行う場合は、String形式のJSONを送信する必要があります.
HTTP通信は、他の論理よりも長い時間を要するため、非同期処理が可能である.JSではPromiseオブジェクトは非同期を扱う構文である.したがって、fetch関数はPromiseオブジェクトを返します.
上記の例のコード出力コンソールですが、実際にはブランチ処理ロジックが実装されています.
-ログインに成功したら、ホームページに移動
-ログインに失敗した場合は、alertウィンドウで「ID/パスワード」を確認します.フロート
同じ論理が必要です.
下に書いてあるコードについて説明しましたので、思い出して確認してみます
そして、上記のコードは要求を表し、次のコードは受信応答を表す.
以下にinputの値をサーバに送信し,会員登録を実現するコードを示す.
上記のセクションでは、要求されたサーバアドレス、POSTメソッド、およびサーバに送信されたコンテンツを作成します.
一番目.そして,サーバに導入されたJSONの値を,ユーザ,JSが理解できる値に変更する.
2番目.そして、入力した値がサーバにスムーズに届くと、alertで成功値がアラートウィンドウとして表示され、alert通知が発生するとIDとPWの入力値が「空文字列」に変更されます.このように解釈できる.
なぜメソッドを使用できないのですか?
会員が入金した時だけPOSTなのではないでしょうか.という考えがありましたが、これは間違いの接近です.最終的には、ログイン時にもinputの値を記入してサーバーに送信し、私が会員登録した時に入力した値と有効性チェックを行い、正しければトークンを発行します.
定数を書いた理由のように?
サーバは、サーバに送信された入力値ではなく、別の値を定数として扱い、必要なオブジェクトのKEYに合わせます.
論理を記述した後、コードの確認を行います.
제발,, 벨로그 자동 임시저장을 너무 믿지말자,,
1시간동안 작성된 내용들이 다 날라갔,,,ㅜ
애증의 fetch 절대 안잊을 것 같다.
まず。
[Fetchが必要な会員に加入し、登録を実施]
登録とログインの実装に関する全体的なプロセスを作成します.
1. 유저가 이메일을 입력합니다. Email Input의 `onChange` 이벤트 핸들러에 연결된 함수가 실행.
2. 함수에서 Email Input의 `value`를 `setId`를 통해 업데이트 합니다.
3. 유저가 비밀번호를 입력합니다. Password Input의 `onChange` 이벤트 핸들러에 연결된 함수가 실행.
4. 함수 안에서 Password Input의 `value`를 `setPw`를 통해 업데이트 한다.
5. Button을 클릭하면 `onClick`이벤트 핸들러에 연결된 함수가 실행.
6. 함수 안에서 `fetch`함수를 통해 server에 요청(Request)을 보낸다.
7. server에서 인증 / 인가 과정을 거친 후의 결과를 응답(Response)으로 보내 준다.
8. 응답의 결과에 따라 Main 페이지로 이동 하거나 에러 메세지를 띄운다.
[Fetch関数]
fetch関数は2つのパラメータを受け入れます。
API 주소
HTTP 통신에 관한 내용
この時の2番目の因子は?
method
理由を表す GET
, POST
, PATCH
などのHTTPメソッドを入力します.body
で、JSON形式で送受信するデータを入力します.JSON.stringify()
既存のJavaScriptオブジェクトからJSON Stringにフォーマットを変換するには、という方法を使用します.では、使い方の原因は?
HTTP通信は、他の論理よりも長い時間を要するため、非同期処理が可能である.JSではPromiseオブジェクトは非同期を扱う構文である.したがって、fetch関数はPromiseオブジェクトを返します.
then()
メソッドはPromiseオブジェクトに使用できるメソッドです.上記のサンプルコードでは、 then()
fetch関数の実行結果をフィルタリングしています.これは、非同期処理のfetch関数の結果値が到来したときにthenメソッドの動作が実行されることを意味します.そして方法の解釈!
.then((response) => response.json())
最初に、サーバから送信された応答をオブジェクトに変換します..then((result) => console.log("결과: ", result));
その後、応答をコンソールオブジェクトに変換します.logを使用して確認します.上記の例のコード出力コンソールですが、実際にはブランチ処理ロジックが実装されています.
たとえば、
-ログインに成功したら、ホームページに移動
-ログインに失敗した場合は、alertウィンドウで「ID/パスワード」を確認します.フロート
同じ論理が必要です.
下に書いてあるコードについて説明しましたので、思い出して確認してみます
簡単に言えば、
そして、上記のコードは要求を表し、次のコードは受信応答を表す.
以下にinputの値をサーバに送信し,会員登録を実現するコードを示す.
// fetch함수를 이용해 api 호출 - 회원가입
const goToSignup = () => {
fetch('http://10~~~~/users/signup', {
method: 'POST',
body: JSON.stringify({
name: 'kyuhyun',
email: id,
password: pw,
phone_number: '010',
}),
})
.then(res => res.json())
.then(result => alert(result.message));
setId('');
setPw('');
};
// fetch함수를 이용해 api 호출 - 로그인
const goToLogin = () => {
fetch('http://10~~~~/users/signin', {
method: 'POST',
body: JSON.stringify({
name: 'kyuhyun',
email: id,
password: pw,
phone_number: '010',
}),
})
.then(res => res.json())
.then(result => (result.token ? goToMain() : alert(result.message)));
setId('');
setPw('');
};
会員番号の基準に基づいて見る.上記のセクションでは、要求されたサーバアドレス、POSTメソッド、およびサーバに送信されたコンテンツを作成します.
一番目.そして,サーバに導入されたJSONの値を,ユーザ,JSが理解できる値に変更する.
2番目.そして、入力した値がサーバにスムーズに届くと、alertで成功値がアラートウィンドウとして表示され、alert通知が発生するとIDとPWの入力値が「空文字列」に変更されます.このように解釈できる.
APIを直接呼び出して知った内容
なぜメソッドを使用できないのですか?
会員が入金した時だけPOSTなのではないでしょうか.という考えがありましたが、これは間違いの接近です.最終的には、ログイン時にもinputの値を記入してサーバーに送信し、私が会員登録した時に入力した値と有効性チェックを行い、正しければトークンを発行します.
定数を書いた理由のように?
サーバは、サーバに送信された入力値ではなく、別の値を定数として扱い、必要なオブジェクトのKEYに合わせます.
onClick={() => {
fetch('http://10.58.3.10:8000/users/signin', {
method: 'POST',
body: JSON.stringify({
name: 'kyuhyun',
email: id,
password: pw,
phone_number: '010',
}),
})
.then(res => res.json())
.then(result => (result.token ? goToMain() : alert(result.message)));
setId('');
setPw('');
};}
上のコードはbuttonタグにonClickイベントを付与し、fetch関数でAPIをロードします.すなわち,関数を用いずにタグを直接使用する方法である.最後に、
< 개똥이는 오늘도 성장한다 ! >
Reference
この問題について([ React ] Fetch apply), 我々は、より多くの情報をここで見つけました https://velog.io/@rxxdo/React-Fetch-applyテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol