使用 Mirage 设置 Vue 应用进行开发

模拟你的 Vue 应用程序的网络代码,以便你可以在没有后端服务的情况下开发你的 Vue 应用程序。

这是适用于熟悉 Mirage 的人员的快速入门指南。 如果你对 Mirage 完全陌生,请查看概览

步骤 1:安装 Mirage

首先,确保你已经安装了 Mirage

# Using npm
npm install --save-dev miragejs

# Using Yarn
yarn add --dev miragejs

步骤 2:定义你的服务器

创建一个新的 server.js 文件并定义你的模拟服务器。

这是一个基本示例

// src/server.js
import { createServer, Model } from "miragejs"

export function makeServer({ environment = "development" } = {}) {
  let server = createServer({
    environment,

    models: {
      user: Model,
    },

    seeds(server) {
      server.create("user", { name: "Bob" })
      server.create("user", { name: "Alice" })
    },

    routes() {
      this.namespace = "api"

      this.get("/users", (schema) => {
        return schema.users.all()
      })
    },
  })

  return server
}

在 Vue CLI 中,将此文件放在 src/server.js 中,这样对它的更改就会触发重建。

步骤 3:在开发环境中使用你的服务器

打开你的 Vue 应用程序的引导文件(在 Vue CLI 中为 src/main.js),导入你的 makeServer 函数,并在开发环境中调用它

// src/main.js
import Vue from "vue"
import App from "./App.vue"
import { makeServer } from "./server"

Vue.config.productionTip = false

if (process.env.NODE_ENV === "development") {
  makeServer()
}

new Vue({
  render: (h) => h(App),
}).$mount("#app")

现在,每当你的应用程序在开发环境中发出网络请求时,Mirage 都会拦截该请求并使用你的服务器定义中的数据进行响应。

例如,根据上面的服务器定义,以下组件将获取我们在 seeds 中定义的用户 BobAlice

<!-- src/App.vue -->
<template>
  <ul id="users">
    <li v-for="user in users" v-bind:key="user.id">{{ user.name }}</li>
  </ul>
</template>

<script>
  export default {
    name: "app",

    data() {
      return {
        users: [],
      }
    },

    created() {
      fetch("/api/users")
        .then((res) => res.json())
        .then((json) => {
          this.users = json.users
        })
    },
  }
</script>

你现在可以继续开发你的 Vue 应用程序,并使用 Mirage 逐步模拟你的后端 API 端点。