refactor: rename things

This commit is contained in:
Evan You
2018-11-13 11:03:35 -05:00
parent 0cd8183fbf
commit 80d1eb7480
22 changed files with 423 additions and 414 deletions

View File

@@ -1,4 +1,4 @@
import { queueJob, queueEffect, nextTick } from '../src/index'
import { queueJob, queuePostEffect, nextTick } from '../src/index'
describe('scheduler', () => {
it('queueJob', async () => {
@@ -36,11 +36,11 @@ describe('scheduler', () => {
const calls: any = []
const job1 = () => {
calls.push('job1')
queueEffect(cb1)
queuePostEffect(cb1)
}
const job2 = () => {
calls.push('job2')
queueEffect(cb2)
queuePostEffect(cb2)
}
const cb1 = () => {
calls.push('cb1')
@@ -59,13 +59,13 @@ describe('scheduler', () => {
const calls: any = []
const job1 = () => {
calls.push('job1')
queueEffect(cb1)
queuePostEffect(cb1)
// job1 queues job2
queueJob(job2)
}
const job2 = () => {
calls.push('job2')
queueEffect(cb2)
queuePostEffect(cb2)
}
const cb1 = () => {
calls.push('cb1')
@@ -96,11 +96,11 @@ describe('scheduler', () => {
expect(calls).toEqual(['job1', 'job2'])
})
it('queueJob inside postCommitCb', async () => {
it('queueJob inside postEffect', async () => {
const calls: any = []
const job1 = () => {
calls.push('job1')
queueEffect(cb1)
queuePostEffect(cb1)
}
const cb1 = () => {
// queue another job in postFlushCb
@@ -109,7 +109,7 @@ describe('scheduler', () => {
}
const job2 = () => {
calls.push('job2')
queueEffect(cb2)
queuePostEffect(cb2)
}
const cb2 = () => {
calls.push('cb2')

View File

@@ -31,15 +31,15 @@ interface Job<T extends Function = () => void> {
ops: Op[]
// Any post DOM mutation side-effects (updated / mounted hooks, refs) are
// buffered inside the job's effects queue.
// Effects are queued by calling `queueEffect` inside the job function.
effects: Function[]
// Effects are queued by calling `queuePostEffect` inside the job function.
postEffects: Function[]
// A job may queue other jobs (e.g. a parent component update triggers the
// update of a child component). Jobs queued by another job is kept in the
// parent's children array, so that in case the parent job is invalidated,
// all its children can be invalidated as well (recursively).
children: Job[]
// Sometimes it's inevitable for a stage fn to produce some side effects
// (e.g. a component instance sets up an Autorun). In those cases the stage fn
// (e.g. a component instance sets up an ReactiveEffect). In those cases the stage fn
// can return a cleanup function which will be called when the job is
// invalidated.
cleanup: T | null
@@ -172,8 +172,8 @@ function flushAfterMacroTask() {
// This is the main API of the scheduler. The raw job can actually be any
// function, but since they are invalidated by identity, it is important that
// a component's update job is a consistent function across its lifecycle -
// in the renderer, it's actually instance._updateHandle which is in turn
// an Autorun function.
// in the renderer, it's actually instance._update which is in turn
// an ReactiveEffect function.
export function queueJob(rawJob: Function) {
const job = rawJob as Job
if (currentJob) {
@@ -196,9 +196,9 @@ export function queueJob(rawJob: Function) {
}
}
export function queueEffect(fn: Function) {
export function queuePostEffect(fn: Function) {
if (currentJob) {
currentJob.effects.push(fn)
currentJob.postEffects.push(fn)
} else {
postEffectsQueue.push(fn)
}
@@ -296,13 +296,13 @@ function flush(): void {
function resetJob(job: Job) {
job.ops.length = 0
job.effects.length = 0
job.postEffects.length = 0
job.children.length = 0
}
function queueJobForStaging(job: Job) {
job.ops = job.ops || []
job.effects = job.effects || []
job.postEffects = job.postEffects || []
job.children = job.children || []
resetJob(job)
// inherit parent job's expiration deadline
@@ -361,13 +361,13 @@ function stageJob(job: Job) {
}
function commitJob(job: Job) {
const { ops, effects } = job
const { ops, postEffects } = job
for (let i = 0; i < ops.length; i++) {
applyOp(ops[i])
}
// queue post commit cbs
if (effects) {
postEffectsQueue.push(...effects)
if (postEffects) {
postEffectsQueue.push(...postEffects)
}
resetJob(job)
job.status = JobStatus.IDLE