Integrate Headway into your Nuxt app ✌️
- Install
nuxt-headway
npm i nuxt-headway # or yarn add nuxt-headway
- Add it to your
buildModules
and set your Headway account ID
// nuxt.config.js
{
buildModules: ['nuxt-headway'],
headway: {
account: '<your-account-id>'
}
}
- Add the directive
v-headway
to the node that will contain the widget
<!-- components/your-component.vue -->
<template>
<div v-headway></div>
</template>
Set all the options you would set in HW_config
into headway
in you nuxt.config.js
.
See the configuration official docs.
You don't need to change
selector
andtrigger
. Use the directives instead.
Anywhere in your app components, you can access this.$headway
.
The original window.Headway
object is accessible in this.$headway.sync
.
As the Headway script may load after your app renders, you need to be careful when interacting with the front-end API.
There are 2 ways of safely using it:
Promise API
$headway.onReady.then(() => {})
// in your component scope
this.$headway.onReady.then(() => {
this.$headway.sync.toggle();
});
Push API
$headway.push(['method', 'arg1', 'arg2', ...])
// in your component scope
this.$headway.push(['toggle']);
v-headway
The node that will contain the widget. Related to selector
in the config.
<template>
<div v-headway>
<!-- The widget will be injected here -->
</div>
</template>
v-headway-trigger
The node(s) that will trigger the widget. Related to trigger
in the config.
<template>
<!-- Clicking on this will open the widget -->
<div v-headway-trigger></div>
</template>
Found a bug? You can open an issue or feel free to submit a PR.
This is a community package. I'm not affiliated with Headway or Nuxt.