如何使用 Vue 和 Urql 更新路由更改查询

How to update query on route change using Vue and Urql

提问人:Quin 提问时间:11/5/2023 更新时间:11/5/2023 访问量:32

问:

我正在尝试找到一种方法在路由更改时更新我的查询(同一组件)。正在使用路由元数据选择查询。在 Vue 路由器的导航守卫、钩子、监视变化等以及 Urqls 的“useQuery”之间,我不知道如何构建它以在路由更改时为我提供新数据。我只想让它识别出“myQuery”有一个新值,并将其应用于查询并重新运行它。

const route = useRoute();
const myQuery = route.meta.query;

const posts = await useQuery({
  query: gql`
    query posts {
      ${myQuery} {
        title
        description
        interests {
          title
        }
        createdAt
        image_url
        userId {
          username
        }
      }
    }
  `,
  pause: false
});
const data = posts.data;
vue.js graphql vue-composition-api urql

评论

1赞 Estus Flask 11/5/2023
请参阅 stackoverflow.com/questions/46402809/... 。查询应该涉及反应变量,以便能够更新它,formidable.com/open-source/urql/docs/basics/vue/#variables
0赞 Quin 11/5/2023
@EstusFlask谢谢。但是,这些变量能否提供查询名称本身?或者只是传递给查询的参数?我正在尝试使用一个变量作为查询名称,因为它是客户端上唯一更改的内容。
1赞 Sebastian Rothbucher 11/5/2023
可能想在路由上设置一个观察者 - 另外: 我想你不会等待useQuery,直接继续前进。此外,您不使用变量(而是重新生成查询字符串) - 这可能是根本原因。(另见 formidable.com/open-source/urql/docs/basics/vue
0赞 Quin 11/5/2023
谢谢。是的,这可能是我的问题:太努力地让它变得紧凑。谢谢,我还有一些事情要尝试。

答: 暂无答案