Coder Social home page Coder Social logo

Comments (8)

sven-ra avatar sven-ra commented on June 19, 2024 31

Edited for updated nuxt and vue-image-lightbox

An easy way to use it in Nuxt is like this:

Make a plugin file:

import Vue from 'vue'
import VueLazyLoad from 'vue-lazyload'
import LightBox from 'vue-image-lightbox'
require('vue-image-lightbox/dist/vue-image-lightbox.min.css')

Vue.use(VueLazyLoad)
Vue.component('light-box', LightBox)

Add the plugin to nuxt.config with SSR disabled:

plugins: [
  {
    src: '~/plugins/vue-lightbox-plugin.js',
    ssr: false
   }
 ]

Now you can use the 'light-box' component globally. It works only after you have mounted your component:

<template>
  <client-only>
    <light-box :images="lightBoxImages" />
  </client-only>
</template>

from vue-image-lightbox.

Markvandersteen avatar Markvandersteen commented on June 19, 2024 2

@dmiotti @lexcode My approach was to use the System.import function.
When the component is mounted. I import the things I need.


 async loadLightBox() {
        Promise.all([
          System.import('vue-touch'),
          System.import('vue-lazyload'),
          System.import('vue-image-lightbox')
        ]).then((modules) => {
          const VueTouch = modules.shift(),
            VueLazyLoad = modules.shift(),
            LightBox = modules.shift();


          Vue.use(VueTouch, {name: 'v-touch'});
          Vue.use(VueLazyLoad);
          Vue.component('lightbox', LightBox);
          this.lightboxReady = true;
        });
      },
    },
    async mounted() {
      this.loadLightBox();
    }
`

from vue-image-lightbox.

imcvampire avatar imcvampire commented on June 19, 2024

Hi @Markvandersteen,

I use this package with SSR and it works perfectly! What problem do you face now?

Just import it, use it as normal, you don't need any special code!

from vue-image-lightbox.

Markvandersteen avatar Markvandersteen commented on June 19, 2024

screen shot 2017-11-27 at 16 32 19
At the moment i'm getting some window not defined errors.

from vue-image-lightbox.

Markvandersteen avatar Markvandersteen commented on June 19, 2024

I got it working, i did need some extra code to make it work with nuxtjs.

from vue-image-lightbox.

miottid avatar miottid commented on June 19, 2024

Hi, @Markvandersteen what is the extra code you've added in order to get it work.

from vue-image-lightbox.

lexcode avatar lexcode commented on June 19, 2024

Hey @Markvandersteen I am getting the same issue, could you paste your extra code solution in nuxt please?

from vue-image-lightbox.

lexcode avatar lexcode commented on June 19, 2024

I found it,

plugins/lightbox.js

if (process.BROWSER_BUILD) {
  const VueTouch = require('vue-touch')
  Vue.use(VueTouch, { name: 'v-touch' })
}

nuxt.config.js

build: {
    vendor: ['vue-touch'],
}

from vue-image-lightbox.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.