Nuxt.js module for Segment Analytics
This module uses vue-segment to add Segment Analytics to a Nuxt.js app.
- Add
@dansmaculotte/nuxt-segment
dependency using yarn or npm to your project - Add
@dansmaculotte/nuxt-segment
tomodules
section ofnuxt.config.js
- Configure it:
{
modules: [
// Simple usage
'@dansmaculotte/nuxt-segment',
// With options
[
'@dansmaculotte/nuxt-segment',
{ /* module options */ }
],
],
// Or with global options
segment: {
writeKey: '',
disabled: false,
useRouter: true
}
// Or with publicRuntimeConfig
publicRuntimeConfig: {
SEGMENT_WRITE_KEY: process.env.SEGMENT_WRITE_KEY_FROM_SERVER || '',
SEGMENT_DISABLED: process.env.SEGMENT_DISBLED_FROM_SERVER || false,
SEGMENT_USE_ROUTER: process.env.SEGMENT_USE_ROUTER_FROM_SERVER || true,
}
}
- Type:
String
- Default:
process.env.SEGMENT_WRITE_KEY || publicRuntimeConfig.SEGMENT_WRITE_KEY
- Default:
- Type:
Boolean
- Default:
process.env.SEGMENT_DISABLED || publicRuntimeConfig.SEGMENT_DISABLED || false
- Default:
- Type:
Boolean
- Default:
process.env.SEGMENT_USE_ROUTER || publicRuntimeConfig.SEGMENT_USE_ROUTER || true
- Default:
Inside a Vue component, the Segment analytics
object is available as this.$segment
:
export default {
mounted () {
this.$segment.identify('f4ca124298', {
name: 'Michael Bolton',
email: 'mbolton@initech.com'
});
this.$segment.track('Signed Up', { plan: 'Enterprise' });
this.$segment.page('Pricing');
}
}
$segment
is also injected into the Nuxt context so you can access it within your Vuex stores:
export default {
LOGOUT({ dispatch }) {
return this.$auth.logout()
.then(() => {
this.$segment.reset();
return dispatch('AFTER_LOGOUT');
})
}
}
- Clone this repository
- Install dependencies using
yarn install
- Start development server using
npm run dev