Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在通用和通用之间切换;spa模式取决于查询字符串?_Javascript_Vue.js_Nuxt.js - Fatal编程技术网

Javascript 在通用和通用之间切换;spa模式取决于查询字符串?

Javascript 在通用和通用之间切换;spa模式取决于查询字符串?,javascript,vue.js,nuxt.js,Javascript,Vue.js,Nuxt.js,我正在构建一个设置为通用模式的Nuxt.js应用程序,并通过Nuxt generate将其部署为静态网站。它通过连接到CMS的GraphQLAPI拉入数据,一切都正常工作。当内容在CMS中更新时,部署脚本将运行numxt generate,更新将在几秒钟内显示在网站上 我的问题是CMS(Craft CMS)有一个实时预览模式,在编辑内容时可以访问。预览窗口将令牌传递给应用程序,然后应用程序可以根据令牌值修改其查询。这似乎在spa模式下有效,但在通用模式下无效。在通用模式下,当生成静态文件时,查询

我正在构建一个设置为通用模式的Nuxt.js应用程序,并通过
Nuxt generate
将其部署为静态网站。它通过连接到CMS的GraphQLAPI拉入数据,一切都正常工作。当内容在CMS中更新时,部署脚本将运行
numxt generate
,更新将在几秒钟内显示在网站上

我的问题是CMS(Craft CMS)有一个实时预览模式,在编辑内容时可以访问。预览窗口将令牌传递给应用程序,然后应用程序可以根据令牌值修改其查询。这似乎在spa模式下有效,但在通用模式下无效。在通用模式下,当生成静态文件时,查询已经在服务器上运行

我尝试了基于这个示例的服务器中间件。我尝试了serverMiddleware函数中的各种逻辑,但似乎没有任何结果

具有可通过插件设置的预览模式:

export default async function ({ query, enablePreview }) => {
  if (query.preview) {
    enablePreview()
  }
}
设置enablePreview()时,页面将查询实时API,而不是使用生成的页面。

具有可通过插件设置的预览模式:

export default async function ({ query, enablePreview }) => {
  if (query.preview) {
    enablePreview()
  }
}

设置enablePreview()时,页面将查询实时API,而不是使用生成的页面。

enablePreview()仅在路由更改时起作用。即使在页面刷新时,也不会进行asyncData调用。我正在多个站点上使用此代码的一个版本。如果条件匹配,则运行enablePreview()并进行asyncData调用。您也可以在组件中执行类似的操作:
mounted(){if($nuxt.isPreview){//此处的预览代码}
enablePreview()仅在路由更改时工作。即使在页面刷新时,也不会进行asyncData调用。我正在多个站点上使用此代码的一个版本。如果条件匹配,则运行enablePreview()并进行asyncData调用。您也可以在组件中执行类似的操作:
mounted(){if($nuxt.isPreview){//此处预览代码}}