vue-grid-layout icon indicating copy to clipboard operation
vue-grid-layout copied to clipboard

Nuxt integration

Open Romick2005 opened this issue 7 years ago • 16 comments

It is possible to handle Nuxt ssr using this library?

Romick2005 avatar Oct 23 '18 13:10 Romick2005

I don't really know...

gmsa avatar Oct 23 '18 16:10 gmsa

After reading this, I don't think so: https://blog.lichter.io/posts/the-guide-to-write-universal-ssr-ready-vue-compon If anyone could take a look at this and submit a PR would be great!

gmsa avatar Oct 24 '18 07:10 gmsa

@Romick2005 from what i have played with i did get it to work by defining a plugin and then setting ssr to false. Refer to this https://vue-grid.glitch.me/

& this: https://github.com/nuxt/nuxt.js/issues/975

bensladden avatar Nov 01 '18 03:11 bensladden

vue-grid-layout does not support SSR, so you must handling CSR (using <no-ssr> tag and plugin with ssr: false option)

highalps avatar Nov 05 '18 06:11 highalps

@Romick2005

@gmsa, maybe add this to README or wiki?

  1. Create plugins/vue-grid.js with content:
import Vue from 'vue';
import VueGridLayout from 'vue-grid-layout'

Vue.component('grid-layout', VueGridLayout.GridLayout);
Vue.component('grid-item', VueGridLayout.GridItem);
  1. Add plugin to nuxt.config.js like this:
  plugins: [
    {src: '~/plugins/vue-grid', ssr: false},
  ],
  1. Wrap VueGrid components with
<no-ssr></no-ssr>
2018-11-10 23 20 37

zlodes avatar Nov 10 '18 20:11 zlodes

Is there any other way ? i don't want use it in gobal .

matamune94 avatar Jul 05 '19 13:07 matamune94

@zlodes

Thanks so much. Still working for any who's interested.

suettenbachsv avatar Jun 23 '20 12:06 suettenbachsv

@zlodes is this still working? I did the exact same thing as you did (except the no-ssr tag, that I replaced with client-only because of depreaction). I get 7 errors:

  • Property or method "layout" is not defined on the instance but referenced during render. Make sure that this property is reactive, either in the data option, or for class-based components, by initializing the property.
  • Property or method "layout" is not defined on the instance but referenced during render. Make sure that this property is reactive, either in the data option, or for class-based components, by initializing the property.
  • Property or method "layout" is not defined on the instance but referenced during render. Make sure that this property is reactive, either in the data option, or for class-based components, by initializing the property.
  • Property or method "layout" is not defined on the instance but referenced during render. Make sure that this property is reactive, either in the data option, or for class-based components, by initializing the property.
  • Property or method "layout" is not defined on the instance but referenced during render. Make sure that this property is reactive, either in the data option, or for class-based components, by initializing the property.
  • Error: Layout must be an array!
  • TypeError: Cannot read property 'uninstall' of undefined

cipiasentini avatar Jul 15 '20 22:07 cipiasentini

with Vue3 out now supporting SSR along with nuxt in talks of doing a Vue 3 version sometime in the future, are their plans on adding to this plugin to support SSR of any kind? If not then it should be posted here and this issue be closed instead of having an open issue talking about it since 2018 because it makes me think someone is actively working towards or planning to actively work towards SSR. (Just my two cents)

funkel1989 avatar Sep 29 '20 16:09 funkel1989

Is it possible for someone to create a demo project working with SSR? I've never used SSR and it would go a long way to help...

gmsa avatar Sep 29 '20 17:09 gmsa

Solution for nuxt 3

"dependencies": {
  "vue-grid-layout": "3.0.0-beta1"
}
  • Create plugins/grid.client.ts with content
import { defineNuxtPlugin } from '#app'
// @ts-ignore
import VueGridLayout from 'vue-grid-layout'


export default defineNuxtPlugin((nuxtApp) => {
  nuxtApp.vueApp.use(VueGridLayout)
})
  • Wrap vue-grid-layout components with client-only
<client-only>
  <grid-layout>
    <grid-item></grid-item>
  </grid-layout>
</client-only>

brolnickij avatar Feb 08 '22 06:02 brolnickij

Solution for nuxt 3

"dependencies": {
  "vue-grid-layout": "3.0.0-beta1"
}
  • Create plugins/grid.client.ts with content
import { defineNuxtPlugin } from '#app'
// @ts-ignore
import VueGridLayout from 'vue-grid-layout'


export default defineNuxtPlugin((nuxtApp) => {
  nuxtApp.vueApp.use(VueGridLayout)
})
  • Wrap vue-grid-layout components with client-only
<client-only>
  <grid-layout>
    <grid-item></grid-item>
  </grid-layout>
</client-only>

I seem to be getting this error Screenshot 2022-05-25 at 10 34 04 PM Any idea how to fix this?. Im using nuxt 3 rc3

g-tejas avatar May 25 '22 14:05 g-tejas

resize option is not working with nuxt 3. how to resolve that?

r0hit5292 avatar Feb 14 '23 08:02 r0hit5292

@brolnickij such a life saver! Really appreciate the example with Nuxt 3

jakhsu avatar Mar 28 '23 09:03 jakhsu

@brolnickij @g-tejas @zlodes i am getting "document is not defined"

ankithedau avatar Mar 11 '24 17:03 ankithedau