Size: a a a

Nuxt.js — русскоговорящее сообщество

2020 January 21

SL

Stanislav Lashmanov in Nuxt.js — русскоговорящее сообщество
Denys Popov
@staslashmanov может я чего упускаю в установке? не подскажешь?
Можешь сделать замеры во вкладке Performance? https://nodejs.org/de/docs/guides/debugging-getting-started/
источник

SL

Stanislav Lashmanov in Nuxt.js — русскоговорящее сообщество
Denys Popov
https://github.com/CyberAP/vue-provide-responsive#predictive-rendering

Vue.use({
   // forces plugin to install on every request
   install: VueProvideResponsive.install
 }, config);


После добавления такой установки плагина время доступа к странице стало постоянно расти в билд режиме.

Вероятно из-за того, что кол-во плагинов на вью инстансе растёт с каждым реквестом.

console.log(Vue._installedPlugins)

Были ли у кого-то проблемы с этим?
В продакшен режиме такой проблемы нет?
источник

SL

Stanislav Lashmanov in Nuxt.js — русскоговорящее сообщество
Есть идея вынести это в модуль, плагин сохранить в переменной. Потом добавить вызов хука и там удалять плагин.

const plugin = { install:  VueProvideResponsive.install };
nuxt.addPlugin(plugin);
nuxt.hook('renderer:done', (nuxt) => {
 delete Vue._installedPlugins[plugin]
});
источник

DP

Denys Popov in Nuxt.js — русскоговорящее сообщество
А какие замеры запустить? Запустил сейчас просмотр ноду через инспектор, там вкладки перформанс нет

heap size у ноды вроде как не растёт со временем, а вот время ответа растет
источник

DP

Denys Popov in Nuxt.js — русскоговорящее сообщество
Stanislav Lashmanov
В продакшен режиме такой проблемы нет?
и в продакшн,  и в дев режиме одинаковое поведение с ростом кол-ва плагинов
источник

SL

Stanislav Lashmanov in Nuxt.js — русскоговорящее сообщество
Denys Popov
и в продакшн,  и в дев режиме одинаковое поведение с ростом кол-ва плагинов
Попробуешь через модуль сделать как я выше пример показал? Регистрируешь плагин в модуле, после того как рендер завершился плагин удаляешь из _installedPlugins. Я не знаю какая там структура, если массив надо просто сплайснуть плагин.
источник

SL

Stanislav Lashmanov in Nuxt.js — русскоговорящее сообщество
Если заработает я обновлю ридми.
источник

DP

Denys Popov in Nuxt.js — русскоговорящее сообщество
Stanislav Lashmanov
Попробуешь через модуль сделать как я выше пример показал? Регистрируешь плагин в модуле, после того как рендер завершился плагин удаляешь из _installedPlugins. Я не знаю какая там структура, если массив надо просто сплайснуть плагин.
В addPlugin нужно передавать путь к плагину, объект с плагином не даёт.

Поэтому у меня пока не получается
источник

SL

Stanislav Lashmanov in Nuxt.js — русскоговорящее сообщество
Denys Popov
В addPlugin нужно передавать путь к плагину, объект с плагином не даёт.

Поэтому у меня пока не получается
Тогда просто в хуке ищи этот плагин в массиве и удаляй
источник

A

Avtan in Nuxt.js — русскоговорящее сообщество
Привет всем.
Не могу понять почему не вывываеться файл index.js в директории store
Использую Modules mode
/* eslint-disable prettier/prettier */
const cookieparser = process.server ? require('cookieparser') : undefined

export const actions = {
 async nuxtServerInit({ dispatch }, { req }) {
   let auth = null
   if (req.headers.cookie) {
     const parsed = cookieparser.parse(req.headers.cookie)
     try {
       auth = JSON.parse(parsed.auth)
     } catch (err) {
       // No valid cookie found
     }
   }
   await dispatch('client/M_SET', {prop: 'client', data: auth})
   console.log("LOG: nuxtServerInit -> auth", auth)
 }
}
источник

DP

Denys Popov in Nuxt.js — русскоговорящее сообщество
Stanislav Lashmanov
Тогда просто в хуке ищи этот плагин в массиве и удаляй
В целом из того массива оно удаляет, но время расёт 🙁

делал так

export default function() {
 this.nuxt.hook('render:route', renderer => {
   Vue._installedPlugins = Vue._installedPlugins.filter(p => p.key !== 'responsive')
 })
}
источник

SL

Stanislav Lashmanov in Nuxt.js — русскоговорящее сообщество
Denys Popov
В целом из того массива оно удаляет, но время расёт 🙁

делал так

export default function() {
 this.nuxt.hook('render:route', renderer => {
   Vue._installedPlugins = Vue._installedPlugins.filter(p => p.key !== 'responsive')
 })
}
Попробуй splice
источник

DP

Denys Popov in Nuxt.js — русскоговорящее сообщество
Stanislav Lashmanov
Попробуй splice
const pluginIdx = Vue._installedPlugins.findIndex(p => p.key === 'responsive')
   Vue._installedPlugins.splice(pluginIdx, 1)


ничего не поменялось
источник

SL

Stanislav Lashmanov in Nuxt.js — русскоговорящее сообщество
Печаль, завтра посмотрю что можно с этим сделать. Будет круто если ишью создашь в репозитории, будем там обсуждать.
источник

DP

Denys Popov in Nuxt.js — русскоговорящее сообщество
Stanislav Lashmanov
Печаль, завтра посмотрю что можно с этим сделать. Будет круто если ишью создашь в репозитории, будем там обсуждать.
Спасибо. Постараюсь сегодня сделать
источник

ᴇᴍɪʟ in Nuxt.js — русскоговорящее сообщество
использую cookie-universal-nuxt
хочу класть данные которые заполнил пользователь в куки и запоминать их, чтобы когда пользователь перезагружал страницу они оставались.
Данные уходят в стор. На клиенте я их кладу в куки на этапе мутации, но как выводить их в стор при загрузке страницы. Узнал что стор инициализируется на стороне сервера

export default ({ app }) => {
const cookieRes = app.$cookies.get('cookie-name')
}

в документации написано что присвоение к переменной на стороне сервера делается так, но как сделать присвоение данных к переменной в стейте  не понятно
источник

JG

John Green in Nuxt.js — русскоговорящее сообщество
Всем привет) С таким интересным моментом столкнулся, например заходишь на страницу index она монтируется, потом переходишь на page и с page обратно на index и index заного монтируется, но старый mounted все еще не разрушен и получается их два, это нормально? С этим надо бороться или я криво что то написал?
источник

С

Сергей М. in Nuxt.js — русскоговорящее сообщество
Всем здравствуйте. Помогите, плиз. Вопрос тем кто понимает в регулярных. С бека прилетает html вёрстка. Каждый блок начинается с <div class="text-block" > и только у первого есть id="first-block". Как их все собрать в массив??? Чтоб arr[0] - first-block и т. д...
источник

SL

Stanislav Lashmanov in Nuxt.js — русскоговорящее сообщество
Сергей М.
Всем здравствуйте. Помогите, плиз. Вопрос тем кто понимает в регулярных. С бека прилетает html вёрстка. Каждый блок начинается с <div class="text-block" > и только у первого есть id="first-block". Как их все собрать в массив??? Чтоб arr[0] - first-block и т. д...
DOMParser
источник

V💊

Vladimir 💊 Voytenko in Nuxt.js — русскоговорящее сообщество
John Green
Всем привет) С таким интересным моментом столкнулся, например заходишь на страницу index она монтируется, потом переходишь на page и с page обратно на index и index заного монтируется, но старый mounted все еще не разрушен и получается их два, это нормально? С этим надо бороться или я криво что то написал?
а с чего ты взял, что старый не разрушен?
источник