Basic
The smallest complete setup: register the module, set your shortname, and render a thread with <DisqusComments />.
1. Register the module and set your shortname
Section titled “1. Register the module and set your shortname”export default defineNuxtConfig({ modules: ['nuxt-disqus'], disqus: { shortname: 'your-disqus-shortname', },})2. Render the thread on a page
Section titled “2. Render the thread on a page”<script setup lang="ts">const route = useRoute()</script>
<template> <article> <h1>My blog post</h1> <p>...post content...</p>
<DisqusComments :identifier="`/blog/${route.params.id}`" /> </article></template>That’s it. The thread loads lazily when it scrolls into view, using the shortname from your config. <DisqusComments /> is auto-imported, so there’s no import statement.
Using a per-page URL
Section titled “Using a per-page URL”If you want Disqus to record the canonical URL alongside the identifier, pass url:
<template> <DisqusComments identifier="/blog/1" url="https://example.com/blog/1" /></template>Next steps
Section titled “Next steps”- Comment Counts — show “12 Comments” in a post list.
- Lazy Loading — control when the thread loads.