WEB
-
2021-09-14
Reactのページネーション実装
import React, { FC, useState, useRef, useEffect } from ‘react’import styles from ‘./Pagination.module.css’import classNames from ‘classnames’interface Props {first: numbertotal: numbercurrent?: numberonChange: (e: { page: number }) =>void}const Pagination: FC<Props> = ({ first, total, current = 1, onChange }) => {constisFirstRender = useRef(true)const [currentPage, setCurrentPage] = useState(current)// ページングした後に絞り込みするとページングのstateが戻らないuseEffect(() => {setCurrentPage(current)}, [current]);useEffect(() => {if (isFirstRender.current) {isFirstRender.current = falsereturn}onChange({ page:currentPage })}, [currentPage])consttotalPage: number = Math.ceil(total / first)// 最初に戻るconsthandleAllBack = (): void=> {if (currentPage === 1) {return}setCurrentPage(1)}// 1つ戻るconsthandleBack = (): void=> {if (currentPage === 1) {return}setCurrentPage(currentPage – 1)}// 1つ進むconsthandleForward = (): void=> {if (currentPage === totalPage) {return}setCurrentPage(currentPage + 1)}// 最後のページに進むconsthandleAllForward = (): void=> {if (currentPage === totalPage) {return}setCurrentPage(totalPage)}// 番号クリックconsthandleMove = (page: number): void=> {setCurrentPage(page)}// 範囲の指定letrangeStart: number = currentPage – 3if (rangeStart < 0) {rangeStart = 0}letrangeEnd: number = currentPage + 1if (rangeEnd > totalPage) {rangeEnd = totalPage}lettotalPageArray: number[] = Array.from(newArray(totalPage)).map((_, i) => i++)totalPageArray = totalPageArray.filter((range) => {returnrangeStart <= range && range <= rangeEnd})// 省略された時に…で表示するconstbeforeRange: boolean = rangeStart > 0constafterRange: boolean = rangeEnd + 1 < totalPagereturn (<>{totalPage > 1 && (<ulclassName={classNames(styles.pagination)}><spanclassName={classNames(`${styles.pageAllArrow}${styles.pageAllArrowPrev}`)}onClick={() =>handleAllBack()}></span><spanclassName={classNames(`${styles.pageArrow}${styles.pageArrowPrev}`)}onClick={() =>handleBack()}></span>{beforeRange ? <span>…</span> : null}{totalPageArray.map((page) => {page++returnpage === currentPage ? (<likey={page}className={classNames(`${styles.pageItem}${styles.pageItemActive}`)}>{page}</li>) : (<liclassName={classNames(styles.pageItem)}key={page}onClick={() =>handleMove(page)}>{page}</li>)})}{afterRange ? <span>…</span> : null}<spanclassName={classNames(`${styles.pageArrow}${styles.pageArrowNext}`)}onClick={() =>handleForward()}></span><spanclassName={classNames(`${styles.pageAllArrow}${styles.pageAllArrowNext}`)}onClick={() =>handleAllForward()}></span></ul>)}</>)}export default Pagination -
2020-05-22
gitコマンド忘備録
おそらくこのブログとかかなり需要ないし誰もみてないと思われるので忘備録っぽく使ってやろうかと思います。
最近やっとgitとか使うようになったので。。。
git branch 今いるブランチを調べる
git checkout feature/~~~ ブランチの切り替え
git diff
git log ログを確認 Qで戻る
git status ステータス確認 変更したファイルが赤文字 addした後は緑文字
git add . 変更したファイルを登録する ファイルごとに登録する場合は git add FILENAME
git reset 変更をリセット
git commit 登録した変更をコミットする Aでコメント追加 ”[○○] コメントコメントコメント”の形式でコミットすること。
ESC コメントの編集終わり
Shift + Z + Z コミットの決定
git push origin feature/~~~ コミットをブランチにプッシュ
git fetch ブランチからフェッチする
-
2019-11-22
WEBサイトが検索にヒットするまで
最近フォトショップが楽しくて仕事中いじりまくってる吉田です。
たまにはweb関係のことも書かないとマズいような気がするのでってことでこのタイトルです。
表題の通りですが詳しく説明すると「ホームページをサーバーにアップ、公開してからどのくらいの期間で検索にヒットするのか」ってことです。
結論から言いますと「だいたい3日〜7日」です。
なんだすぐじゃん、と思うかもしれません。
で
す
が
これはあくまで「4041 design studio」とか競合のない検索ワードや会社名でヒットするっていう話です。
実際にホームページ制作をお願いしたい人は「ホームページ 制作 フリーランス」とかで調べるでしょう。
webからの売上を狙っている場合このようなキーワードでヒットさせなければ売上は伸びないでしょう。
もちろん広告を出せばヒットさせることは簡単です。
広告なしで上位にヒットさせたい場合は記事・ブログを書いたり、コンテンツを増やすなどしてSEO対策をして行かなければなりません。
これには競合などでバラつきが出ますが一週間に一記事書いて3ヶ月〜6ヶ月くらいはかかると思います。
もちろん業務に関係ないブログを書いていても意味はありません。グーグルの評価を上げて上位表示されるには記事ひとつひとつの内容が大事になります。
定期的に更新する。これはなかなか地道で大変な作業ですが、現代で集客を行うならWEBは必須だと思います。
ホームページを作っても放置してしまう人があまりにも多いので、少しもったいないなぁと思ってしまいます。
効果のあるブログの書き方などはまた次回書いていこうかな…と思います。