vue3-core/packages/runtime-dom/src/index.ts

44 lines
1.0 KiB
TypeScript
Raw Normal View History

2019-09-07 04:58:32 +08:00
import { createRenderer } from '@vue/runtime-core'
import { isHTMLTag, isSVGTag } from '@vue/shared'
2019-06-20 21:28:37 +08:00
import { nodeOps } from './nodeOps'
import { patchProp } from './patchProp'
2018-09-19 23:35:38 +08:00
2019-09-07 04:58:32 +08:00
const { render, createApp } = createRenderer<Node, Element>({
2019-06-20 21:28:37 +08:00
patchProp,
...nodeOps
2019-09-07 04:58:32 +08:00
})
2019-09-03 04:09:34 +08:00
const wrappedCreateApp = () => {
const app = createApp()
// inject `isNativeTag` dev only
Object.defineProperty(app.config, 'isNativeTag', {
value: (tag: string) => isHTMLTag(tag) || isSVGTag(tag),
writable: false
})
return app
}
const exportedCreateApp = __DEV__ ? wrappedCreateApp : createApp
export { render, exportedCreateApp as createApp }
2018-09-19 23:35:38 +08:00
2019-10-11 06:02:51 +08:00
// DOM-only runtime helpers
export {
vModelText,
vModelCheckbox,
vModelRadio,
vModelSelect,
vModelDynamic
} from './directives/vModel'
export { withModifiers, withKeys } from './directives/vOn'
// re-export everything from core
2019-08-20 21:58:10 +08:00
// h, Component, reactivity API, nextTick, flags & types
2018-10-27 03:44:50 +08:00
export * from '@vue/runtime-core'
2019-09-07 04:58:32 +08:00
2019-10-11 06:02:51 +08:00
// Type augmentations
2019-09-07 04:58:32 +08:00
export interface ComponentPublicInstance {
$el: Element
}