Vue экземпляр `watcher` не вызывается во время SSR с Nuxt - PullRequest
0 голосов
/ 02 ноября 2018

У меня есть плагин со следующим кодом:

   let vm = new Vue({
      data: {
        foo: 1,
      },
      watch: {
        $data: {
          deep: true,
          handler(){
            console.log('changed')
          }
        }
      }
    })

    vm.foo = 123; // should trigger watcher

Проблема в том, что сообщение 'changed' печатается только на стороне клиента, что означает, что наблюдатель не называется серверной стороной во время SSR? Любое объяснение этому поведению? Спасибо!

1 Ответ

0 голосов
/ 02 ноября 2018

Вот небольшая реализация с чистым Vue SSR: https://codesandbox.io/s/oqx461ll8z

Результат немного отличается от ожидаемого. Наблюдатель будет перемещаться после процесса SSR с последним значением. Поскольку на сервере нет реактивности, и Vue приходится предварительно выбирать данные для согласованности и производительности ( source ), вот что произойдет.

Результат:

<div data-server-rendered="true">123</div>
{ foo: [Getter/Setter] } 123 123
changed
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...