JohMun / vue-tags-input

A tags input component for VueJS
http://www.vue-tags-input.com
956 stars 138 forks source link

Update outdated instructions for NuxtJS #157

Open mtomcanyi opened 3 years ago

mtomcanyi commented 3 years ago

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

  1. Install with yarn yarn add @johmun/vue-tags-input
  2. 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);

3. Update `nuxt.config.js` to register the plugin and use it in client-side rendering.
```javascript
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.js#5544.

  1. Wrap component into <client-only>. Failing to do that causes Uncaught 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>
dosstx commented 2 years ago

If you are just using the script on one component/page, why the hassle with the plugin method? Just import the script in the page. Is there a reason for the global plugin?

dosstx commented 2 years ago

Does anyone know if this works now with Nuxt3?