在 Nuxt 的 SSR 期间未调用 Vue 实例`watcher`
Vue instance `watcher` not called during SSR with Nuxt
我有一个插件,代码如下:
let vm = new Vue({
data: {
foo: 1,
},
watch: {
$data: {
deep: true,
handler(){
console.log('changed')
}
}
}
})
vm.foo = 123; // should trigger watcher
问题是消息'changed'
只在clientside打印,也就是说在SSR的时候没有调用serverside的watcher?对这种行为有什么解释吗?谢谢!
这是一个纯 Vue SSR 的小实现:https://codesandbox.io/s/oqx461ll8z
结果与预期有点不同。观察者将在 SSR 处理后以最新值进行挖掘。由于服务器上没有反应,并且出于一致性和性能原因,Vue 必须预取数据 (source),这会发生什么。
结果:
<div data-server-rendered="true">123</div>
{ foo: [Getter/Setter] } 123 123
changed
我有一个插件,代码如下:
let vm = new Vue({
data: {
foo: 1,
},
watch: {
$data: {
deep: true,
handler(){
console.log('changed')
}
}
}
})
vm.foo = 123; // should trigger watcher
问题是消息'changed'
只在clientside打印,也就是说在SSR的时候没有调用serverside的watcher?对这种行为有什么解释吗?谢谢!
这是一个纯 Vue SSR 的小实现:https://codesandbox.io/s/oqx461ll8z
结果与预期有点不同。观察者将在 SSR 处理后以最新值进行挖掘。由于服务器上没有反应,并且出于一致性和性能原因,Vue 必须预取数据 (source),这会发生什么。
结果:
<div data-server-rendered="true">123</div>
{ foo: [Getter/Setter] } 123 123
changed