如何在nextJS中分离amp-page而不是amp-page?

时间:2017-11-14 02:12:33

标签: reactjs amp-html nextjs

我知道在使用nextJS时,nextJS提供_document.js来制作全局标题,但我不想使用_document.js。我有两个不同的页面,让我们说它的主页和关于页面,我想将页面作为一个放大页面和家庭作为一个普通的html页面。我如何实现这一目标?

1 个答案:

答案 0 :(得分:0)

假设您具有正确的Nextjs版本,则应该可以使用withAmp高阶组件来包装页面:

import { withAmp } from 'next/amp'

...

export default withAmp(Page)

如果您希望能够根据页面是否支持Amp有条件地呈现组件,则可以使用hybriduseAmp(假设您将组件编写为功能组件)。 / p>

import { withAmp, useAmp } from 'next/amp'


...

const Page = () => {
  const isAmp = useAmp()
  return (
    {isAmp ? <AmpComponent /> : <NonAmpComponent /> }
  )
}

...

export default withAmp(Page, { hybrid: true })

但是,根据我目前的经验,这会导致与附加样式表有关的问题,而样式表对于Amp的限制通常太长了。希望Zeit在将来的版本中解决这个问题。