maoberlehner / vue-lazy-hydration

Lazy Hydration of Server-Side Rendered Vue.js Components
MIT License
1.18k stars 52 forks source link

@click not working inside LazyHydrate #127

Open gutisalex opened 2 years ago

gutisalex commented 2 years ago

Is there a reason why @click listener not working when they are sitting in a component wrapped with LazyHydrate? I have a Navigation which has Navigationitems fetched from an API. First time routing to the page everything works fine. After pagerefresh it doesnt... any idea?

b-karapet commented 2 years ago

Hi @gutisalex, I faced with the same issue

The reason of issue was that I used <LazyHydrate on-interaction> which is the same as <LazyHydrate on-interaction="focus"> Focus is used by default

Try to use <LazyHydrate on-interaction="click">

neatcoding commented 1 year ago

I had the same problem - indeed 'click' made it hydrate, but didn't call the @click callback.

So if you have the same problem with @click:

<LazyHydrate :on-interaction=["click", "focus", "touchstart", "mousedown"]>

or

import { hydrateOnInteraction } from 'vue-lazy-hydration';
export default {
  components: {
    ComponentName: hydrateOnInteraction(() => import(
      '~/components/path/ComponentName.vue'
    ), {event: ['click', 'focus', 'touchstart', 'mousedown']}),
  },
}