首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从data NuxtJS创建动态路由

从data NuxtJS创建动态路由
EN

Stack Overflow用户
提问于 2020-05-20 00:52:58
回答 1查看 148关注 0票数 0

如何在Nuxt中将此数据转换为以下路由,我可以从示例中看出,使用唯一的id很容易,但对于make/model这样的非唯一数据,这是否可行?

代码语言:javascript
复制
/_make/_model/_memory

例如

代码语言:javascript
复制
/Apple/iPhone-8/64GB

数据:

代码语言:javascript
复制
 {
    "id": 1,
    "make": "Apple",
    "model": "iPhone 8",
    "memory": 64,
 },
 {
    "id": 2,
    "make": "Apple",
    "model": "iPhone X",
    "memory": 64,
 },
 {
    "id": 3,
    "make": "Samsung",
    "model": "S20",
    "memory": 128,
 },

理想情况下,这将为每个手机创建一个页面,以及模型和制作页面?

这是使用axios的正确方式吗?

代码语言:javascript
复制
  generate: {
    routes() {
      return axios.get(`${process.env.API_URL}/phones`)
      .then((res) => {
        return res.data.map((phone) => {
          return {
            route: `/${phone.makeCanonical}/${phone.modelCanonical}/${phone.memory}GB`,
            payload: phone
          }
        })
      })
    }
  },
EN

回答 1

Stack Overflow用户

发布于 2020-05-20 01:50:11

查看Nuxt configgenerate.routes函数。此示例使用payload返回属性来加快速度。

代码语言:javascript
复制
const data = [
  {
    id: 1,
    make: 'Apple',
    model: 'iPhone 8',
    memory: 64
  },
  {
    id: 2,
    make: 'Apple',
    model: 'iPhone X',
    memory: 64
  },
  {
    id: 3,
    make: 'Samsung',
    model: 'S20',
    memory: 128
  }
]

export default {
  generate: {
    routes() {
      return data.map(item => ({
        route: `/${item.make}/${item.model}/${item.memory}`,
        payload: item
      }))
    }
  }
}

这将为make、model和memory的每个配置创建一个页面。要为每个make或每个模型创建一个页面,您只需要为您想要的页面添加额外的{ route, payload }对象。当然,您还需要设置页面组件来处理您返回的每个route

然后,在您的页面组件中:

代码语言:javascript
复制
async asyncData ({ params, error, payload }) {
    if (payload) return { phone: payload }
    else return { phone: await backend.fetchPhone(params.make, params.model, params.memory) }
}

由于Nuxt当前处理静态生成的方式,我上次使用它时,需要检查asyncData中的payload属性。有关说明,请参阅this问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61896546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档