Nuxt在初始化之前选择布局

时间:2020-07-02 13:01:11

标签: vue.js nuxt.js nuxtjs

我使用nuxt-generate和nuxt / device软件包。它提供设备类型但用于布局,因为我在首次加载时使用nuxt-generate应用程序使用默认布局。不是nuxt / device提供的。但是当我转到另一页后,它开始使用正确的布局。所以问题是我如何在第一次初始化时让应用程序使用布局。或至少在初始化后进行更改。有什么办法吗? 这就是我尝试选择布局的方法,但是第一次打开后就无法使用。

layout (context) {
    if(context.isMobile) {
        return 'mobile'
    } else if (context.isDesktop) {
        return 'default'
    } 
},

1 个答案:

答案 0 :(得分:1)

当您使用nuxt-generate时,nuxt会生成一系列静态html文件,我认为没有简单的方法可以解决此问题,但是可以有一系列解决方法:

  • ssr模式中使用nuxt,这样您就可以知道谁在调用该特定资源
  • 在(/ desktop / ***和/ mobile / ***)之类的路由级别上进行区分,其中两种路由均导致不同的布局,并且在网络服务器配置中执行重定向在正确的路线上
  • 做一个重定向到正确路由/ desktop / mobile的中间件,但我不建议这样做,因为您失去了静态生成nuxt的优势