【问题标题】:How to open route as modal on Desktop but page on mobile in Nuxt如何在桌面上以模式打开路由但在 Nuxt 中的移动设备上打开页面
【发布时间】:2020-08-30 13:15:29
【问题描述】:

我正在使用@nuxtjs/router 模块来定义自定义路由。这是我的 router.js 文件

import Vue from 'vue'
import Router from 'vue-router'

import News from '~/pages/News'
import Login from '~/pages/auth/Login'
import Signup from '~/pages/auth/Signup'
import Account from '~/pages/Account'

Vue.use(Router)

export function createRouter() {
  return new Router({
    mode: 'history',
    routes: [
      {
        path: '/',
        name: 'Index',
        component: News,
      },
      {
        path: '/news',
        name: 'News',
        component: News,
      },
      {
        path: '/news/:tag',
        name: 'TaggedNews',
        component: News,
      },
      {
        path: '/news/:id([a-f0-9]{32})/:title',
        name: 'NewsItem',
        component: News,
      },
      {
        path: '/news/:tag/:id([a-f0-9]{32})/:title',
        name: 'TaggedNewsItem',
        component: News,
      },
      {
        path: '/login',
        component: Login,
      },
      {
        path: '/signup',
        component: Signup,
      },
      {
        path: '/account',
        component: Account,
      },
    ],
  })
}

我想打开 /login 路由作为桌面上的模式,但在移动设备上打开页面。我该怎么办?

【问题讨论】:

    标签: vue.js vuejs2 modal-dialog nuxt.js vue-router


    【解决方案1】:

    简短的回答是你不能,至于使用模式,你需要告诉应用你在哪条“实际路线” - 想象一下直接导航到桌面上的/login,问题就很清楚了。

    我的建议是不要为登录添加路由,而是使用查询参数来确定是否应显示登录模式:

    • 查询参数将由应用根目录上的 LoginModal 组件处理
    • 关闭/打开将触发并通过更改查询参数进行管理

    在移动设备上,模态框可以设置为全屏块。

    【讨论】:

    • 好的,我探索了所有可能的选项,我想只有 2 个可用,一个是让它成为我没有做的子路由,因为它没有意义 /login 不是任何东西的孩子,其他是按照你说的做,但我唯一的问题是 URL,从未见过有人为登录和 SEO 输入查询 url,为了让 /login 被视为一种模式,我想我需要让它由处理剩余路线的同一页面处理,在我的情况下是新闻,那么也许我可以做 $route.name == 'News' modal is ON else OFF 将尝试这个并发布我的解决方案,如果它有效
    • 你不应该关心搜索引擎优化,我会说 - 如果登录是一个模式,那么它不是一个“页面” - 页面是新闻(它可以正确获得 SEO,只要它有SSR)或任何公共页面(我猜你想要一个模式的原因是它可以在任何公共页面中打开?)我的问题是 - 为什么你需要搜索引擎优化登录页面,这是“不是一页”?
    • 登录页面会有更高的掉线率,登录模式不会,除了我所在领域的类似网站都有模式
    • 我明白了——我的意思是你对模态所在的页面进行 SEO,而不是登录页面(同样,从技术上讲,它不存在,它是一个模态)
    猜你喜欢
    • 2022-08-19
    • 2020-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-09
    • 2017-03-26
    • 1970-01-01
    相关资源
    最近更新 更多