# Disqus
# Usage
You can import the Disqus component individually.
<template>
<div>
<!-- omitted -->
<div class='comments'>
<Disqus shortname='your_shortname_disqus' />
</div>
</div>
</template>
<script>
import { Disqus } from 'vue-disqus'
export default {
name: 'PostPage',
components: {
Disqus
}
}
</script>
# Props
# shortname
| Type | Required |
|---|---|
| String | It's required if the component is registered locally |
A shortname is the unique identifier assigned to a Disqus site and tells Disqus to load only your site's comments.
<Disqus shortname='your_shortname_disqus' />
TIP
Learn more about shortname, opens in a new window
# pageConfig
| Type | Required |
|---|---|
| Object | false |
Page configuration properties are used as parameters for Disqus' behaviors and settings.
| Key | Default | Description (Tells the Disqus service) |
|---|---|---|
| url | document.baseURI | The URL of the current page. See more, opens in a new window |
| identifier | $route.path or location.pathname | How to identify the current page. The identifier is used to look up the correct thread. See more, opens in a new window |
| title | document.title | The title of the current page. See more, opens in a new window |
| category_id | The category to be used for the current page. See more, opens in a new window | |
| slug | ||
| api_key | ||
| author_s3 | ||
| remote_auth_s3 | ||
| language | ||
| integration |
<template>
<div class='comments'>
<Disqus :pageConfig="pageConfig" />
</div>
</template>
<script>
export default {
// ...
data: () => ({
pageConfig: {
title: 'My custom title',
category_id: 'sports'
}
})
}
</script>
WARNING
If you are using the vue-router always opt for HTML5 history: mode.
# ssoConfig
| Type | Required |
|---|---|
| Object | false |
Single sign-on (SSO) is a protocol for authenticating an existing user to comment without registering for a global Disqus account. See more, opens in a new window
| Key | Description |
|---|---|
| name | Your site's name. We will display it in the Post As window. |
| button | Address of the image that acts as a button. Disqus 2012 users, see style guide below. |
| icon | Address of the image that appears on the login modal's SSO tab. Favicons work well here |
| url | Address of your login page. |
| logout | Address of your logout page. |
| width | Width of the login popup window. Default is 800. |
| height | Height of the login popup window. Default is 400. |
<template>
<div class='comments'>
<Disqus :ssoConfig="ssoConfig" />
</div>
</template>
<script>
export default {
// ...
data: () => ({
ssoConfig: {
name: 'SampleNews',
button: 'http://example.com/images/samplenews.gif',
icon: 'http://example.com/favicon.png',
url: 'http://example.com/login/',
logout: 'http://example.com/logout/',
width: '800',
height: '400'
}
})
}
</script>
TIP
Learn more about Integrating Single Sign-On, opens in a new window
# lang
| Type | Required |
|---|---|
| String | false |
Disqus currently supports dozens of languages, ranging from Arabic to Ukrainian. For a full list of supported languages, see the Disqus project on Transifex, opens in a new window .
<Disqus lang="fr_CA" />
TIP
e.g. French (Canada) => fr_CA, see more about language codes, opens in a new window
# lazy
| Type | Default |
|---|---|
| String | true |
Apply lazy load in disqus script and embed.
# lazyConfig
| Type | Default |
|---|---|
| Object | { root: null, rootMargin: '300px', threshold: 0.5 } |
Customize the options of the IntersectionObserver.
# Events
VueDisqus registers events ($emit) for each callback available in the disqus API.
| Event name | Description |
|---|---|
| ready | When Disqus is ready. (This can be used to show a placeholder or loading indicator). |
| new-comment | When a new comment is posted. (This can be used to track new comments and replies, for example via Google Analytics). |
| before-comment | |
| init | |
| identify | |
| paginate | |
| pre-init | |
| pre-data | |
| pre-reset | |
| after-render |
<template>
<div class='comments'>
<Disqus @new-comment="newComment" />
</div>
</template>
<script>
export default {
// ...
methods: {
newComment ({ id, text }) {
// your code
}
}
}
</script>
← Reset DisqusCount →