Vue.js 如何在Nuxt中以桌面模式但在移动设备上以页面模式打开路由

Vue.js 如何在Nuxt中以桌面模式但在移动设备上以页面模式打开路由,vue.js,vuejs2,modal-dialog,nuxt.js,vue-router,Vue.js,Vuejs2,Modal Dialog,Nuxt.js,Vue 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(Rout

我正在使用该模块定义自定义管线。这是我的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路径,但在手机上打开页面。我该怎么做呢?

简单的回答是你不能,至于使用模式,你需要告诉应用程序你的“实际路线”——想象一下直接导航到桌面上的
/login
,问题就变得很清楚了

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

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

在移动设备上,模式可以设置为全屏模式。

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

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

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

在手机上,模式可以设计成全屏模式。

好的,我探索了所有可能的选项,我想只有两个可用,一个是将其作为子路径,我没有这样做,因为它没有意义/登录不是任何东西的子对象,另一个是按照你说的做,但我唯一的问题是URL,从未见过有人将查询url用于登录,SEO受到了冲击,为了将a/login视为一种模式,我想我需要让它由处理剩余路由的同一页面处理,这在我的情况下是新闻,然后也许我可以做$route.name=='News'model是开的,否则我会尝试一下,然后发布我的解决方案如果它有效你不应该关心SEO,我会说-如果登录是一个model,那么它就不是一个“页面”-页面是新闻(只要它有SSR,就可以正确地进行SEO)或任何公共页面(我猜你想要模态的原因是它可以在任何公共页面中打开?)我的问题是-为什么你需要对登录页面进行搜索引擎优化,而登录页面“不是页面”?登录页面将有较高的退出率,登录模式不会除了我的利基中的类似网站都有一个模式获取所有这些-我的意思是你搜索模式所在的页面,而不是登录页面(从技术上讲,它不存在,它是一个模式)好的,我探索了所有可能的选择,我想只有2个是可用的,一个是让它成为一个我没有做的子路径,因为它没有意义/登录不是任何事情的子路径,另一个是按照你说的做,但我唯一的问题是URL,从来没有见过任何人为登录设置查询URL,SEO受到攻击,以便处理/登录作为一个模式,我想我需要让它由处理剩余路由的同一个页面来处理,在我的例子中,这是新闻,那么也许我可以做$route.name=='News'模式是开的,否则关的话,我会尝试一下并发布我的解决方案,如果它有效,你不应该关心SEO,我会说-如果登录是一个模式,那么它就不是一个“页面”-页面是新闻(只要它有SSR,就可以正确地进行SEO)或任何公共页面(我猜你想要模态的原因是它可以在任何公共页面中打开?)我的问题是-为什么你需要对登录页面进行SEO,而登录页面“不是页面”?登录页面将有较高的退出率,登录模式不会除了我的利基中的类似网站都有一个模式获取所有这些-我的意思是你搜索模式所在的页面,而不是登录页面(从技术上讲,它不存在,它是一个模式)