refactor(reactivity): separate track and trigger operation types

This commit is contained in:
Evan You
2019-12-03 11:30:24 -05:00
parent 7522d4d61a
commit 89a187b895
11 changed files with 96 additions and 101 deletions

View File

@@ -13,10 +13,10 @@ import {
onUnmounted,
onRenderTracked,
reactive,
OperationTypes,
TrackOpTypes,
onRenderTriggered
} from '@vue/runtime-test'
import { ITERATE_KEY, DebuggerEvent } from '@vue/reactivity'
import { ITERATE_KEY, DebuggerEvent, TriggerOpTypes } from '@vue/reactivity'
// reference: https://vue-composition-api-rfc.netlify.com/api.html#lifecycle-hooks
@@ -283,17 +283,17 @@ describe('api: lifecycle hooks', () => {
expect(events).toMatchObject([
{
target: obj,
type: OperationTypes.GET,
type: TrackOpTypes.GET,
key: 'foo'
},
{
target: obj,
type: OperationTypes.HAS,
type: TrackOpTypes.HAS,
key: 'bar'
},
{
target: obj,
type: OperationTypes.ITERATE,
type: TrackOpTypes.ITERATE,
key: ITERATE_KEY
}
])
@@ -320,7 +320,7 @@ describe('api: lifecycle hooks', () => {
await nextTick()
expect(onTrigger).toHaveBeenCalledTimes(1)
expect(events[0]).toMatchObject({
type: OperationTypes.SET,
type: TriggerOpTypes.SET,
key: 'foo',
oldValue: 1,
newValue: 2
@@ -330,7 +330,7 @@ describe('api: lifecycle hooks', () => {
await nextTick()
expect(onTrigger).toHaveBeenCalledTimes(2)
expect(events[1]).toMatchObject({
type: OperationTypes.DELETE,
type: TriggerOpTypes.DELETE,
key: 'bar',
oldValue: 2
})
@@ -338,7 +338,7 @@ describe('api: lifecycle hooks', () => {
await nextTick()
expect(onTrigger).toHaveBeenCalledTimes(3)
expect(events[2]).toMatchObject({
type: OperationTypes.ADD,
type: TriggerOpTypes.ADD,
key: 'baz',
newValue: 3
})

View File

@@ -1,14 +1,11 @@
import {
watch,
reactive,
computed,
nextTick,
ref,
h,
OperationTypes
} from '../src/index'
import { watch, reactive, computed, nextTick, ref, h } from '../src/index'
import { render, nodeOps, serializeInner } from '@vue/runtime-test'
import { ITERATE_KEY, DebuggerEvent } from '@vue/reactivity'
import {
ITERATE_KEY,
DebuggerEvent,
TrackOpTypes,
TriggerOpTypes
} from '@vue/reactivity'
// reference: https://vue-composition-api-rfc.netlify.com/api.html#watch
@@ -366,17 +363,17 @@ describe('api: watch', () => {
expect(events).toMatchObject([
{
target: obj,
type: OperationTypes.GET,
type: TrackOpTypes.GET,
key: 'foo'
},
{
target: obj,
type: OperationTypes.HAS,
type: TrackOpTypes.HAS,
key: 'bar'
},
{
target: obj,
type: OperationTypes.ITERATE,
type: TrackOpTypes.ITERATE,
key: ITERATE_KEY
}
])
@@ -403,7 +400,7 @@ describe('api: watch', () => {
expect(dummy).toBe(2)
expect(onTrigger).toHaveBeenCalledTimes(1)
expect(events[0]).toMatchObject({
type: OperationTypes.SET,
type: TriggerOpTypes.SET,
key: 'foo',
oldValue: 1,
newValue: 2
@@ -414,7 +411,7 @@ describe('api: watch', () => {
expect(dummy).toBeUndefined()
expect(onTrigger).toHaveBeenCalledTimes(2)
expect(events[1]).toMatchObject({
type: OperationTypes.DELETE,
type: TriggerOpTypes.DELETE,
key: 'foo',
oldValue: 2
})