Ever wonder how include multiple queries on the same page, when using Gridsome? Well, this is how.
Let's say you have the following queries:
// query details about the current blog post
query Post ($path: String!) {
post: post (path: $path) {
title
date (format: "MMMM D, Y")
content
path
}
and
// query to pull all the webmentions on a specific post
query($path: String!) {
mentions: allWebMention(filter: { wmTarget: { regex: $path } }) {
edges {
node {
wmId
wmProperty
content {
text
}
author {
name
}
}
}
}
}
The question is: How do you get both of those queries in your Post.vue
template?
I was going to give you all the options that I tried before making this work, but that would be the waste of your time. So here is he working version:
<page-query>
query Post ($path: String!) {
post: post (path: $path) {
title
date (format: "MMMM D, Y")
content
path
}
mentions: allWebMention (filter: { wmTarget: { regex: $path } }) {
totalCount
edges {
node {
wmId
wmProperty
content {
text
}
author {
name
}
}
}
}
}
</page-query>
Then you can access these queries like this:
<div>{{ $page.post.title }}</div>
<div
v-for="mention in $page.mentions.edges"
:key="mention.node.wmId"
>
<p>{{ mention.node.wmProperty }}</p>
<p>{{ mention.node.content.text }}</p>
</div>
If you have any thougths, comments or questions please let me know on Twitter.
Top comments (0)