I don't know if the image.js file in the components folder is supposed to take in arguments specifying things like fluid vs fixed, image size, which image should be rendered, etc, and then render any image according to the arguments.
If not, is the standard use of image.js to make a new file based on image.js for each image you want to display? If so, what is the benefit of this?
I read what I could find about image.js, but I still do not understand this issue.
image.js component: https://github.com/gatsbyjs/gatsby-starter-default/blob/master/src/components/image.js
import React from "react"
import { StaticQuery, graphql } from "gatsby"
import Img from "gatsby-image"
/*
* This component is built using `gatsby-image` to automatically serve optimized
* images with lazy loading and reduced file sizes. The image is loaded using a
* `StaticQuery`, which allows us to load the image from directly within this
* component, rather than having to pass the image data down from pages.
*
* For more information, see the docs:
* - `gatsby-image`: https://gatsby.dev/gatsby-image
* - `StaticQuery`: https://gatsby.dev/staticquery
*/
const Image = () => (
<StaticQuery
query={graphql`
query {
placeholderImage: file(relativePath: { eq: "gatsby-astronaut.png" }) {
childImageSharp {
fluid(maxWidth: 300) {
...GatsbyImageSharpFluid
}
}
}
}
`}
render={data => <Img fluid={data.placeholderImage.childImageSharp.fluid} />}
/>
)
export default Image