hooks.spec.ts — vue Source File
Architecture documentation for hooks.spec.ts, a typescript file in the vue codebase. 6 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR 6cd2bfe2_66af_cae0_50dc_64ee44b6bd11["hooks.spec.ts"] 22f6e3b3_fd99_35d7_94cf_527e68438cb3["patch"] 6cd2bfe2_66af_cae0_50dc_64ee44b6bd11 --> 22f6e3b3_fd99_35d7_94cf_527e68438cb3 7f2e8dff_3298_ebe0_d86e_250235fb5e75["patch"] 6cd2bfe2_66af_cae0_50dc_64ee44b6bd11 --> 7f2e8dff_3298_ebe0_d86e_250235fb5e75 a3bc8b1b_3e92_8691_7c02_225e174e5d24["index"] 6cd2bfe2_66af_cae0_50dc_64ee44b6bd11 --> a3bc8b1b_3e92_8691_7c02_225e174e5d24 f80c5e4d_1e3b_767f_8be3_ecd31cdf3f45["node-ops"] 6cd2bfe2_66af_cae0_50dc_64ee44b6bd11 --> f80c5e4d_1e3b_767f_8be3_ecd31cdf3f45 52e0ef55_d336_3b74_458f_64be07e45dab["index"] 6cd2bfe2_66af_cae0_50dc_64ee44b6bd11 --> 52e0ef55_d336_3b74_458f_64be07e45dab 973389ac_8625_30a3_53ce_b1b48fae58c5["vnode"] 6cd2bfe2_66af_cae0_50dc_64ee44b6bd11 --> 973389ac_8625_30a3_53ce_b1b48fae58c5 style 6cd2bfe2_66af_cae0_50dc_64ee44b6bd11 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import { patch } from 'web/runtime/patch'
import { createPatchFunction } from 'core/vdom/patch'
import baseModules from 'core/vdom/modules/index'
import * as nodeOps from 'web/runtime/node-ops'
import platformModules from 'web/runtime/modules/index'
import VNode from 'core/vdom/vnode'
const modules = baseModules.concat(platformModules) as any[]
describe('vdom patch: hooks', () => {
let vnode0
beforeEach(() => {
vnode0 = new VNode('p', { attrs: { id: '1' } }, [
createTextVNode('hello world')
])
patch(null, vnode0)
})
it('should call `insert` listener after both parents, siblings and children have been inserted', () => {
const result: any[] = []
function insert(vnode) {
expect(vnode.elm.children.length).toBe(2)
expect(vnode.elm.parentNode.children.length).toBe(3)
result.push(vnode)
}
const vnode1 = new VNode('div', {}, [
new VNode('span', {}, undefined, 'first sibling'),
new VNode('div', { hook: { insert } }, [
new VNode('span', {}, undefined, 'child 1'),
new VNode('span', {}, undefined, 'child 2')
]),
new VNode('span', {}, undefined, 'can touch me')
])
patch(vnode0, vnode1)
expect(result.length).toBe(1)
})
it('should call `prepatch` listener', () => {
const result: any[] = []
function prepatch(oldVnode, newVnode) {
expect(oldVnode).toEqual(vnode1.children[1])
expect(newVnode).toEqual(vnode2.children[1])
result.push(newVnode)
}
const vnode1 = new VNode('div', {}, [
new VNode('span', {}, undefined, 'first sibling'),
new VNode('div', { hook: { prepatch } }, [
new VNode('span', {}, undefined, 'child 1'),
new VNode('span', {}, undefined, 'child 2')
])
])
const vnode2 = new VNode('div', {}, [
new VNode('span', {}, undefined, 'first sibling'),
new VNode('div', { hook: { prepatch } }, [
new VNode('span', {}, undefined, 'child 1'),
new VNode('span', {}, undefined, 'child 2')
])
])
patch(vnode0, vnode1)
patch(vnode1, vnode2)
// ... (319 more lines)
Dependencies
- index
- index
- node-ops
- patch
- patch
- vnode
Source
Frequently Asked Questions
What does hooks.spec.ts do?
hooks.spec.ts is a source file in the vue codebase, written in typescript.
What does hooks.spec.ts depend on?
hooks.spec.ts imports 6 module(s): index, index, node-ops, patch, patch, vnode.
Where is hooks.spec.ts in the architecture?
hooks.spec.ts is located at test/unit/modules/vdom/patch/hooks.spec.ts (directory: test/unit/modules/vdom/patch).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free