⛳[Kaka Friendsゴルフ]クローンプロジェクト終了-(2)
21195 ワード
🏌️♀️ 覚えたいコード
「削除付き」から「テキスト」へのHTMLコードを追加したい場合!!
직접 목이미지들을 만들어 웹페이지에 활용
、だから製品によって詳しい画像を作るのは時間の制限があります.카테고리(일렉트로닉, 웨어, 리빙)별로 같은 상세 이미지 리스트
を飛ばすことにしました.제품 정보와 함께 해당 HTMl정보를 데이터화
を提供する.string형으로 전달되기 때문에 프로그램으로 하여금 HTMl이라는 것을 인식하게 하려면 특정 메서드가 필요
です.“난 문자열을 html 형태로 렌더링하게되면 취약한걸 알고있어. 그리고 여기에 난 대비하고 있으니까 걱정 마!”
というコードの ‘dangerouslySetInnerHTML’
に通知すると、所望の結果が得られる.その後javascript構文が必要な場所があったので、HTMLコードをバックエンドに転送しました.これらのデータをレンダリングしたときは
자바스크립트 문법을 사용한 부분이 전혀 적용되지 않는 것
でした.ここで再学習した部分->
‘dangerouslySetInnerHTML’
はHTMLコードのみ受信でき、残りの部分は適用されません...だから途中でjavascript文法が必要な部分を除いて悲しい話を改めて伝えました...しかし、必要な部分を学びました:)「消費者クラス詳細」ページのAPI fetch()
カートを実施する過程で、カートの内部機能の実現自体も困難に直面したが、最初のプロジェクトが発表される前に、バックエンドとどのようにデータ交換を行うかが最も困惑し、困難であった.
私は詳細なページとショッピングバスケットを担当しています.ある意味では、消費者から
구매가 이루어질 수 있는 거의 모든 루트
を担当しています.カートの内部機能を実施する際、バックグラウンドスタッフは상세페이지 - 장바구니페이지 - 구매페이지
間のデータ移動ロジックを整理し、教えてくれたが、エンドポイントを取得しようとする前に、全く感じなかった.order typeキー
バックエンドで記述される論理には、次の4つのorder typeキーのbellクラス値があり、データを送信するたびにこれらの値を入力する必要があります.これらの値は状況に応じて正確に入力する必要があるため、バックエンドスタッフはTRELOというコラボレーションツールで親切に説明した.
HTTPメソッド-メソッド:「POST」/「PATCH」
GETおよびDELETEに加えて、POST、PUT、およびPATCHは、要求の送信時に本明細書を一緒に送信することができる.
メソッド:「POST」-メッセージ・ボディを介して要求データをサーバに送信します.サーバは、メッセージボディを介して受信データを処理するすべての機能を実行します.主に新資源の登録、プロセス処理などに用いられる
方法:PATCH-リソースの一部を変更します(完全な変更とは異なります).
POST /orders
order typeをIN CART POST
「
order typeをPURCHASE INSTANT POST
変更されたアイテム情報POSTからorder type「IN CART」へ
-ショッピングバスケットでアイテムの数を変更したり、リストからアイテムを削除したりした場合、ショッピングバスケットページから注文ページに移動すると、
'POST'
を介して変更データが渡されます.-->受注ページに移動した場合、上記の手順が成功した場合(status==="SUCCESS")、order type"PURCCHASE CART"を使用して
'PATCH'
(下記のPATCH/ordersを参照)PATCH /orders
カートページで「注文」(Order)をクリックします.
注文する製品のorder idをorder idリストに含め、order typeをPURCCHASE CARTとしてPATCHする
//카트에서 주문하기 버튼
onClickOderBtn = () => {
const currentCart = [];
this.state.cartProductData.forEach(el => {
const newObj = {};
newObj['product_id'] = el.product_id;
newObj['quantity'] = el.quantity;
currentCart.push(newObj);
});
const orderData = this.state.cartProductData.map((el, i) => el.order_id);
fetch('http://api.kokoafriendsmart.com/orders', {
method: 'POST',
headers: {
Authorization: localStorage.getItem('accessToken'),
},
body: JSON.stringify({
order_list: currentCart,
order_type: 'IN_CART', //카트에서 수정데이터 전달
}),
})
.then(res => res.json())
.then(data => {
if (data.status === 'SUCCESS') {
fetch('http://api.kokoafriendsmart.com/orders', {
method: 'PATCH',
headers: {
Authorization: localStorage.getItem('accessToken'),
},
body: JSON.stringify({
order_id_list: orderData,
order_type: 'PURCHASE_CART', //카트에서 주문하기 버튼
}),
})
.then(res => res.json())
.then(data => {
if (data.status === 'SUCCESS') {
this.props.history.push('/payment?orderType=PURCHASE_CART');
}
});
}
});
};
//상세페이지 장바구니 추가 버튼
onClickAddCartBtn = e => {
if (window.confirm('이 상품을 장바구니 추가하시겠습니까?')) {
fetch('http://api.kokoafriendsmart.com/orders', {
method: 'POST',
headers: {
Authorization: localStorage.getItem('accessToken'),
},
body: JSON.stringify({
order_list: [
{
product_id: this.props.match.params.id,
quantity: this.state.quantity,
},
],
order_type: 'IN_CART', //상세페이지 장바구니 추가 버튼
}),
});
} else {
e.preventDefault();
}
};
//상세페이지 구매 버튼
purchaseInstantBtn = e => {
if (window.confirm('이 상품을 구매하시겠습니까?')) {
fetch('http://api.kokoafriendsmart.com/orders', {
method: 'POST',
headers: {
Authorization: localStorage.getItem('accessToken'),
},
body: JSON.stringify({
order_list: [
{
product_id: this.props.match.params.id,
quantity: this.state.quantity,
},
],
order_type: 'PURCHASE_INSTANT', //상세페이지 구매 버튼
}),
})
.then(response => response.json())
.then(result => {
if (result.status === 'SUCCESS') {
this.props.history.push('/payment?orderType=PURCHASE_INSTANT');
}
});
} else {
e.preventDefault();
}
};
機能の実現も重要ですが、個人的には非常に重要なプロジェクトだと思います.バックエンドとのコミュニケーション方法と、データとのシームレスなコミュニケーション方法がどれほど重要かを理解しました.)Reference
この問題について(⛳[Kaka Friendsゴルフ]クローンプロジェクト終了-(2)), 我々は、より多くの情報をここで見つけました https://velog.io/@yyeonjju/카카오-프렌즈-골프-클론-프로젝트를-마무리하며-2テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol