javascript - 防止 gatsby 站点在页面更改时重新安装图像
问题描述
我是初学者,gatsby
我的网站标题组件中有一个包含 3 个静态图像的网站。在我创建网站的方式中,标题每次都会呈现,我看到我的静态图像在页面上刷新,这真的很烦人。我正在考虑将我的 gatsby 网站变成一个 SPA,但我想看看是否有更简单的方法来构建我的项目。
我的代码:
Layout.js(每个页面的布局组件)
const Layout = ({ children }) => {
return (
<>
<Header />
<Navbar />
<div
style={{
margin: `0 auto`,
maxWidth: 960,
padding: `0 1.0875rem 1.45rem`,
}}
>
<main>{children}</main>
</div>
<Footer />
</>
)
}
Index.js(以及我拥有的所有其他页面都是这样创建的)
import Layout from '../components/layout'
export default function Home() {
return (
<Layout>
I am the home !
</Layout>
)
}
Header.js(因为每次更改页面时标题都在布局图像内渲染)
export default function Header() {
return (
<header className = "bg-white flex flex-row justify-around items-start p-4">
<div>
<StaticImage
src="../images/gatsby-icon.png"
width={75}
quality={95}
formats={["AUTO", "WEBP", "AVIF"]}
alt="gatsby logo"
/>
</div>
{/* MAIN LOGO */}
<div className="mt-12 sm:mt-0">
<StaticImage
src="../images/gatsby-icon.png"
width={200}
quality={95}
formats={["AUTO", "WEBP", "AVIF"]}
alt="gatsby logo"
/>
</div>
<div>
<StaticImage
src="../images/gatsby-icon.png"
width={75}
quality={95}
formats={["AUTO", "WEBP", "AVIF"]}
alt="gatsby logo"
/>
</div>
</header>
)
}
所以我的观点是如何更改 Layout 组件以将 Header 与页面的其余部分隔离,这样 Header 上的图像就不会每次都重新渲染。将 gatsby 网站变成 SPA 是一种解决方案,但我想知道是否有什么我想念的。
解决方案
推荐阅读
- javascript - React Konva Transformer 错误“无法读取未定义的属性 'getStage'”
- c - 如何在 C 中专门使用汇编内联?
- python - 如何在不运行 CLIrunner.invoke() 的情况下将输入传递给 click.confirm
- python - 使用 lxml 在根元素之前/之后添加或添加 PI
- java - 一个 java 映射,其中键是已知的,但是值应该稍后计算,因为它们很昂贵
- python - 从 matplotlib imshow 的边框中删除所有空格
- php-7.4 - PHP 类实例不具备所有属性?
- javascript - React,如何使使用的组件名称动态化?
- node.js - 本地运行的节点可以需要来自 docker 容器内部的文件吗?
- scrapy - 有没有办法获取从其中抓取链接的 URL?