Перехватчики пользовательских модулей Nuxt не называются - PullRequest
0 голосов
/ 12 сентября 2018

Я хочу передать некоторые дополнительные данные с сервера ssr, которые появятся после запуска промежуточного программного обеспечения, и использовать их на промежуточном программном обеспечении на стороне клиента.Немного похоже на то, что nuxt уже делает с vuex.

Документация на хуке render:context:

Каждый раз, когда маршрут рендерится на сервере и перед рендерингом: хук маршрута.Вызывается перед сериализацией контекста Nuxt в окно .__ NUXT__, полезно добавить некоторые данные, которые можно извлечь на стороне клиента.

Теперь мой пользовательский плагин определяет некоторые ловушки, как указано в документации, но не все кажутсядля правильного вызова:

module.exports = function() {
  this.nuxt.hook('render:route', (url, result, context) => {
    console.log('This one is called on every server side rendering')
  }

  this.nuxt.hook('renderer', renderer => {
    console.log('This is never called')
  }

  this.nuxt.hook('render:context', context => {
    console.log('This is only called once, when it starts loading the module')
  }
}

Что я делаю не так и как я могу передать пользовательские данные ssr в средство визуализации на стороне клиента?

1 Ответ

0 голосов
/ 13 сентября 2018

Хорошо, только что нашел решение основной проблемы передачи пользовательских данных с сервера (ssr) клиенту :

Создать плагин: plugins/my-plugin.js

export default ({ beforeNuxtRender, nuxtState }) => {
  if (process.server) {
    beforeNuxtRender(({ nuxtState }) => {
      nuxtState.myCustomData = true
    })
  } else {
    console.log('My cystom data on the client side:', nuxtState.myCustomData)
  }
}

Затем зарегистрируйте плагин в вашем nuxt.config.js:

module.exports = {
  plugins: ['~/plugins/my-plugin']
}

Документы здесь .

...