vue3-yuanma/packages/runtime-dom/src/rendererOptions.ts

44 lines
1.1 KiB
TypeScript
Raw Normal View History

import { RendererOptions } from '@vue/runtime-core'
import { patchProp } from './patchProp'
const svgNS = 'http://www.w3.org/2000/svg'
export const DOMRendererOptions: RendererOptions = {
patchProp,
2019-05-26 07:38:55 +00:00
insert: (child: Node, parent: Node, anchor?: Node) => {
if (anchor != null) {
parent.insertBefore(child, anchor)
} else {
parent.appendChild(child)
}
},
remove: (child: Node) => {
2019-05-27 05:48:40 +00:00
if (!child) debugger
const parent = child.parentNode
if (parent != null) {
parent.removeChild(child)
}
},
createElement: (tag: string, isSVG?: boolean): Element =>
isSVG ? document.createElementNS(svgNS, tag) : document.createElement(tag),
createText: (text: string): Text => document.createTextNode(text),
createComment: (text: string): Comment => document.createComment(text),
setText: (node: Text, text: string) => {
node.nodeValue = text
},
setElementText: (el: HTMLElement, text: string) => {
el.textContent = text
},
2019-05-28 05:27:31 +00:00
parentNode: (node: Node): Node | null => node.parentNode,
nextSibling: (node: Node): Node | null => node.nextSibling
}