-
Notifications
You must be signed in to change notification settings - Fork 139
Open
Description
The Nuxt usage instructions are outdated and cause errors and warning.
This has been tested with Nuxt 2.15.8 and Vue 2.6.14
- Install with yarn
yarn add @johmun/vue-tags-input - Create plugin to register the component globally
// File: ~/plugins/vue-tags-input.js
import Vue from 'vue';
import VueTagsInput from '@johmun/vue-tags-input';
Vue.use(VueTagsInput);- Update
nuxt.config.jsto register the plugin and use it in client-side rendering.
plugins: [
{ src: '~/plugins/vue-tags-input', mode: 'client'}
],The build.vendor entry suggested in original instructions is not needed. It now now causes build warning
WARN: vendor has been deprecated due to webpack4 optimization.
See nuxt/nuxt#5544.
- Wrap component into
<client-only>. Failing to do that causesUncaught ReferenceError: window is not defined. Make sure your<script>does not import the component or you get the same error.
// File: ~/components/Autocomplete.vue
<template>
<div>
<client-only placeholder="Loading...">
<vue-tags-input
v-model="tag"
:tags="tags"
:autocomplete-items="filteredItems"
@tags-changed="newTags => tags = newTags"
/>
</client-only>
</div>
</template>
<script>
// Do NOT use the import below. It is not needed.
// import VueTagsInput from '@johmun/vue-tags-input';
export default {
data() {
return {
tag: '',
tags: [],
autocompleteItems: [{
text: 'Spain',
}, {
text: 'France',
}, {
text: 'USA',
}, {
text: 'Germany',
}, {
text: 'China',
}],
};
},
computed: {
filteredItems() {
return this.autocompleteItems.filter(i => {
return i.text.toLowerCase().indexOf(this.tag.toLowerCase()) !== -1;
});
},
},
};
</script>ewilan-riviere, imikay, t-takaaki and hajime9652
Metadata
Metadata
Assignees
Labels
No labels