207 похожих чатов

Всем привет, начал недавно тыкать nuxt. Решил сделать базовое приложение

и вот с подключением библиотек у меня проблема.
Хочу заюзать vuejs-paginate, поддержки ssr у неё нет. Мои шаги:
1. Установил через yarn add пакет
2. Добавил в plugins/vuejs-paginate.js
import Vue from 'vue'
import Paginate from 'vuejs-paginate'
Vue.use(Paginate)
3. В nuxt.config.js добавил
plugins: [
{src: '~/plugins/vuejs-paginate', mode:'client'},
],
4. В странице добавил
import Paginate from "vuejs-paginate";
и закинул его в components.
5. Вывел по примеру из доки в шаблон
<paginate
:page-count="20"
:prev-text="'Prev'"
:next-text="'Next'"
:container-class="'className'">
</paginate>
6. На странице window is not defined.

Вопрос: Как правильно проставить плагин чтобы он заработал?)
Также пробовал обернуть в тег no-ssr

19 ответов

16 просмотров

обернуть компонент в client-only

Maxim- Автор вопроса

решил проблему, не Vue.use а Vue.component

4. В странице добавил Этот пункт не нужен, если стоит components: true

а зачем тебе плагин (глобально компонент регистрировать) ?

Evgeniy
Можно уточнить?

я просто не совсме понял (или не так понял) причем тут components: true и импорт?

⚓️ Sergey Ryzhkov
я просто не совсме понял (или не так понял) причем...

Если мы подключили плагин глобально, то components: true сам подтянет компонент из плагина

⚓️ Sergey Ryzhkov
а зачем тебе плагин (глобально компонент регистрир...

И тут мне стало интересно, а есть лучше решение? Я тоже плагинами цепляю пакеты работающие с document или window. Ведь если мы сделаем такой import локально, но на нас как раз заругается nuxt :) хер ли ты юзаешь window при SSR, независимо от client-only

Evgeniy
Если мы подключили плагин глобально, то components...

не, немного не так. Ты же и так уже импортнул и зарегистрировал (Vue.compoent...) , А components: true для другого, глян сырцы, https://github.com/nuxt/components/blob/main/src/index.ts

Evgeniy
И тут мне стало интересно, а есть лучше решение? Я...

решения есть, конечно Но в данном случае, что-то не припомню в vuejs-paginate использование window в принципе

⚓️ Sergey Ryzhkov
не, немного не так. Ты же и так уже импортнул и за...

Да, спасибо. Тогда моя фраза в корне не верна, а не "не совсем" :)

⚓️ Sergey Ryzhkov
решения есть, конечно Но в данном случае, что-то н...

А можно подсказку ключевыми словами?) Сам почитаю. Просто я всегда client-only пихаю в плагины, а в виду того что nuxt их динамически цепляет - обычно проблем не создаёт.

Evgeniy
А можно подсказку ключевыми словами?) Сам почитаю....

ой, я не у компа, могу наврать (давно не пользовал кейз) Что-то вроде варианты, обвернуть в свой компонент-обертку (в котором вниз прокинуть $attrs, $listeners) Компонент-обертку грузить динамически (Lazy) в месте использованием с v-if = "isClient" (isClient в mounted делать в true) Или компонент-обертку надо в client-only ... Или в компоненте-обертке делать require, как пример с CKEditor if (process.client) { CkEditor = require('@ckeditor/ckeditor5-vue2') Editor = require('rsn/ckeditor') } else { CkEditor = { component: { template: '<div></div>' } } }

⚓️ Sergey Ryzhkov
ой, я не у компа, могу наврать (давно не пользовал...

++ спасибо, только если ли польза от такого импорта? Кроме изоляции. Польза в бенчмарке как вариант.

Evgeniy
++ спасибо, только если ли польза от такого импорт...

ну бандл общий не резиновый. Там где редко компоненты используются или здровые, как например CREditor, зачем их тащит в глобальный. Лучше выделить в чанк и грузить по необходимости

⚓️ Sergey Ryzhkov
ну бандл общий не резиновый. Там где редко компоне...

А такая история возможна с layout'ами? Что бы из шаблона прокинуть по все pages/components. Кейс: когда используем UI библиотеку лишь для CMS и под неё у нас свой layout.

Evgeniy
А такая история возможна с layout'ами? Что бы из ш...

как-то не задумывался. Я просто все маршруты бью на чанки и все :)). При этом не обязательно каждый маршрут в отдельный чанк, можно для группы маршрутов указать гаименование чанки (группировать) { name: "auth-login", path: "/auth/:mode(login|registration)", props: true, component: () => interopDefault(import(/* webpackChunkName: "login" */ "@/pages/private/Login.vue")), export function interopDefault(promise) { return promise.then((m) => m.default || m); } meta: { title: "Вход на сайт" }, },

⚓️ Sergey Ryzhkov
как-то не задумывался. Я просто все маршруты бью н...

С накстом забываешь о роутере. Такая игла подлая) ++ спасибо

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Карта сайта