javascript SEO友好的分页组件与像谷歌一样的反应

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript SEO友好的分页组件与像谷歌一样的反应相关的知识,希望对你有一定的参考价值。

import React from "react";
import { Link } from "react-router-dom";

const makePaginationHref = (pages, active) => {
  let pageNumbersArray = [];
  var startIndex, endIndex;
  if (pages <= 10) {
    // less than 10 total pages so show all
    startIndex = 1;
    endIndex = pages;
  } else {
    // more than 10 total pages so calculate start and end pages
    if (active <= 6) {
      startIndex = 1;
      endIndex = 10;
    } else if (active + 4 >= pages) {
      startIndex = pages - 9;
      endIndex = pages;
    } else {
      startIndex = active - 5;
      endIndex = active + 4;
    }
  }

  // add first pagination if startIndex is not the 1
  if (startIndex > 1) {
    pageNumbersArray.push(
      <Link to={"/page/" + (active - 1)} key="1">
        <span>&lt;</span>
      </Link>
    );
  }

  // Outer loop to create parent
  for (let i = startIndex; i <= endIndex; i++) {
    pageNumbersArray.push(
      <Link to={"/page/" + i} key={i} className={active === i ? "active" : ""}>
        <span>{i}</span>
      </Link>
    );
  }

  // add last pagination if endPage is not the last pagination
  if (endIndex < pages) {
    pageNumbersArray.push(
      <Link to={"/page/" + (active + 1)} key={pages}>
        <span>&gt;</span>
      </Link>
    );
  }

  return pageNumbersArray;
};

function Pagination(props) {
  const activePage = parseInt(props.params.match.params.page_no);
  return (
    <div className="pagination">
      <h1>Active Page: {activePage}</h1>
      <h2>{makePaginationHref(props.totalPages, activePage)}</h2>
    </div>
  );
}

export default Pagination;

以上是关于javascript SEO友好的分页组件与像谷歌一样的反应的主要内容,如果未能解决你的问题,请参考以下文章

SEO友好的分页结构

像谷歌一样的分页背后的逻辑

使用 SEO 友好的 url 从访问中分页数据

基于 jQuery公司的分页组件

Laravel 中通过自定义分页器分页方法实现伪静态分页链接以利于 SEO

如何在应用引擎上实现谷歌风格的分页?