[TIL]9月16日PagiNation,event-booling
8310 ワード
今日はページング、event-boolingの応用について学びました.
ページングとは?
ページングは、掲示板に投稿を表示するときにリストされる方法です.
大体2つの方法があります.無限スクロール方法 <1 2 3 4 5>方法 無限スクロールの方法は簡単に考えて、フェイスブックやユーチューブのようにスクロールすると、ずっと投稿が出てきます.
もう1つの方法は、ページをめくると同時に投稿を公開するページ上の投稿を指定することです.
今日は2つ目の方法を学びました.
ページングの適用方法
ページングを適用する場合は、まずquery設定が必要です.
これまでqueryはまだpageを書いていませんが、pageを書いてからページを分けることができます.
ページタイプを入力した後、ページ表示にクエリーを追加します.
fetchBoardsCountは、これらの投稿が何ページ目にあるかを判断できるクエリーです.
これでクエリー設定は終了します.
ページングするオブジェクトは、投稿、コメント、ページタグスタイル、または無限スタイルによって異なります.
変数を設定します.
まずstartPageという名前のstateを設定し、初期値を1に設定します.
この言葉は1ページ目が1ページ目だということです.
次に、fetchBoardsのデータ、refetchクエリー、変数はstartPageのstate値を作成します.
また、fetchBoardsCountをクエリーし、dataBoardsCountというクエリーを作成する必要があります.
ページ方式では、最後のページを表示し、lastPageという変数を作成して、次のように配置する必要があります.
Math.ceil(dataBoardsCount?.fetchBoardsCount/10)
これはfetchBoardsCountを10に引き上げることを意味する.
前のページ、次のページをクリックするときに使用する関数を定義します.
PrevPage、Next Pageの関数を定義します.
PrevPage
startPageが1の場合は、すぐに戻ります.そうしないと、前のページから10を減算した値が計算されます.
次の内容が含まれます.
startPage+10がlastPageより大きい場合は、すぐに戻ります.そうしないと、前のページに10を加えた値が計算されます.
クエリー、変数、関数などの設定が完了し、ページに適用されるようになりました.
mapにインポートする内容と適用するキー値を設定します.
次に、直接ページを含む部分に10個の新しい配列を作成し、その値を1に塗りつぶします.
このセクションをmap関数に再変換し、適切なインデックスを入れます.
この部分はまだ完全に理解されていないので、もっと使うべきです.
EventBubbling
eventBubblingは簡単です.
投稿は一般的にこのような形式で、投稿をクリックして移動したい場合は、どこでonClickをあげるべきか分からないことが多い.
すべての属性にonClickを与えると移動しますが、かなり面倒な作業です.
その時はeventBubblingを使います.
event.target.idとは少し違う方法です.
これにより、領域の任意の場所をクリックして投稿に移動できます.
ページングとは?
ページングは、掲示板に投稿を表示するときにリストされる方法です.
大体2つの方法があります.
もう1つの方法は、ページをめくると同時に投稿を公開するページ上の投稿を指定することです.
今日は2つ目の方法を学びました.
ページングの適用方法
ページングを適用する場合は、まずquery設定が必要です.
これまでqueryはまだpageを書いていませんが、pageを書いてからページを分けることができます.
ページタイプを入力した後、ページ表示にクエリーを追加します.
fetchBoardsCountは、これらの投稿が何ページ目にあるかを判断できるクエリーです.
これでクエリー設定は終了します.
ページングするオブジェクトは、投稿、コメント、ページタグスタイル、または無限スタイルによって異なります.
変数を設定します.
まずstartPageという名前のstateを設定し、初期値を1に設定します.
この言葉は1ページ目が1ページ目だということです.
次に、fetchBoardsのデータ、refetchクエリー、変数はstartPageのstate値を作成します.
また、fetchBoardsCountをクエリーし、dataBoardsCountというクエリーを作成する必要があります.
ページ方式では、最後のページを表示し、lastPageという変数を作成して、次のように配置する必要があります.
Math.ceil(dataBoardsCount?.fetchBoardsCount/10)
これはfetchBoardsCountを10に引き上げることを意味する.
前のページ、次のページをクリックするときに使用する関数を定義します.
PrevPage、Next Pageの関数を定義します.
PrevPage
startPageが1の場合は、すぐに戻ります.そうしないと、前のページから10を減算した値が計算されます.
次の内容が含まれます.
startPage+10がlastPageより大きい場合は、すぐに戻ります.そうしないと、前のページに10を加えた値が計算されます.
クエリー、変数、関数などの設定が完了し、ページに適用されるようになりました.
<div>
{data?.fetchBoards.map((el) => (
<div key={el.id}>{el.title}</div>
))}
</div>
<br />
<span onClick={onClickPrevPage}><</span>
{new Array(10).fill(1).map((_, index) => (
<Page
key={startPage + index}
onClick={onClickPage}
id={String(startPage + index)}
>
{startPage + index}
</Page>
))}
<span onClick={onClickNextPage}>></span>
map関数を使用して返します.mapにインポートする内容と適用するキー値を設定します.
次に、直接ページを含む部分に10個の新しい配列を作成し、その値を1に塗りつぶします.
このセクションをmap関数に再変換し、適切なインデックスを入れます.
この部分はまだ完全に理解されていないので、もっと使うべきです.
EventBubbling
eventBubblingは簡単です.
投稿は一般的にこのような形式で、投稿をクリックして移動したい場合は、どこでonClickをあげるべきか分からないことが多い.
すべての属性にonClickを与えると移動しますが、かなり面倒な作業です.
その時はeventBubblingを使います.
function onClickRow(event) {
alert("클릭!");
alert(event.currentTarget.id);
}
このように活動するcurrentTarget.idを追加します.event.target.idとは少し違う方法です.
これにより、領域の任意の場所をクリックして投稿に移動できます.
Reference
この問題について([TIL]9月16日PagiNation,event-booling), 我々は、より多くの情報をここで見つけました https://velog.io/@sangki2070/TIL9월-16일-PagiNation-event-bubblingテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol