refactor: use shared options for component effect runners

This commit is contained in:
Evan You 2019-05-29 09:19:01 +08:00
parent 46524a0f0f
commit f2116054a0

View File

@ -18,6 +18,10 @@ import { TEXT, CLASS, STYLE, PROPS, KEYED, UNKEYED } from './patchFlags'
import { queueJob, queuePostFlushCb, flushPostFlushCbs } from './scheduler' import { queueJob, queuePostFlushCb, flushPostFlushCbs } from './scheduler'
import { effect, stop } from '@vue/observer' import { effect, stop } from '@vue/observer'
const sharedEffectOptions = {
scheduler: queueJob
}
function isSameType(n1: VNode, n2: VNode): boolean { function isSameType(n1: VNode, n2: VNode): boolean {
return n1.type === n2.type && n1.key === n2.key return n1.type === n2.type && n1.key === n2.key
} }
@ -347,8 +351,7 @@ export function createRenderer(options: RendererOptions) {
const instance: ComponentInstance = (vnode.component = createComponentInstance( const instance: ComponentInstance = (vnode.component = createComponentInstance(
vnode vnode
)) ))
instance.update = effect( instance.update = effect(() => {
() => {
if (!instance.vnode) { if (!instance.vnode) {
// initial mount // initial mount
instance.vnode = vnode instance.vnode = vnode
@ -386,11 +389,7 @@ export function createRenderer(options: RendererOptions) {
queuePostFlushCb(instance.u) queuePostFlushCb(instance.u)
} }
} }
}, }, sharedEffectOptions)
{
scheduler: queueJob
}
)
} }
function patchChildren( function patchChildren(