使用 Mirage 开发 Next.js 页面

直接在 Next.js 应用的页面中模拟客户端 API 请求,以便您可以在没有后端服务的情况下继续进行本地开发。

注意:目前,Mirage 仅在浏览器中运行,这意味着它不会模拟 Next.js 应用通过 getServerSideProps 等钩子发出的任何服务器端网络调用。

步骤 1:安装 Mirage

首先,确保您已将 Mirage 添加到项目中

# Using npm
npm install --save-dev miragejs

# Using Yarn
yarn add --dev miragejs

步骤 2:在页面中创建服务器

在页面文件中,从 Mirage 导入 Server,创建服务器,并开始模拟代码所需的 API 端点

// pages/index.js
import { useState, useEffect } from "react"
import { createServer } from "miragejs"

createServer({
  routes() {
    this.get("/api/movies", () => ({
      movies: [
        { id: 1, name: "Inception", year: 2010 },
        { id: 2, name: "Interstellar", year: 2014 },
        { id: 3, name: "Dunkirk", year: 2017 },
      ],
    }))
  },
})

export default function Index() {
  let [movies, setMovies] = useState([])

  useEffect(() => {
    fetch("/api/movies")
      .then((res) => res.json())
      .then((json) => {
        setMovies(json.movies)
      })
  }, [])

  return (
    <ul>
      {movies.map((movie) => (
        <li key={movie.id}>
          {movie.name} ({movie.year})
        </li>
      ))}
    </ul>
  )
}

您现在可以继续开发页面,在开发过程中使用 Mirage 模拟后端 API 端点。

注意:您一次只能实例化一个 Mirage 服务器,因此如果您希望在多个页面之间共享模拟代码,请查看有关 集中和共享 Mirage 服务器 的指南。