1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
| var VueModule = require('vue')
|
| // get the real Vue https://github.com/vueuse/vue-demi/issues/192
| var Vue = VueModule.default || VueModule
|
| exports.Vue = Vue
| exports.Vue2 = Vue
| exports.isVue2 = true
| exports.isVue3 = false
| exports.install = function () {}
| exports.warn = Vue.util.warn
|
| // createApp polyfill
| exports.createApp = function (rootComponent, rootProps) {
| var vm
| var provide = {}
| var app = {
| config: Vue.config,
| use: Vue.use.bind(Vue),
| mixin: Vue.mixin.bind(Vue),
| component: Vue.component.bind(Vue),
| provide: function (key, value) {
| provide[key] = value
| return this
| },
| directive: function (name, dir) {
| if (dir) {
| Vue.directive(name, dir)
| return app
| } else {
| return Vue.directive(name)
| }
| },
| mount: function (el, hydrating) {
| if (!vm) {
| vm = new Vue(Object.assign({ propsData: rootProps }, rootComponent, { provide: Object.assign(provide, rootComponent.provide) }))
| vm.$mount(el, hydrating)
| return vm
| } else {
| return vm
| }
| },
| unmount: function () {
| if (vm) {
| vm.$destroy()
| vm = undefined
| }
| },
| }
| return app
| }
|
| Object.keys(VueModule).forEach(function (key) {
| exports[key] = VueModule[key]
| })
|
| // Not implemented https://github.com/vuejs/core/pull/8111, falls back to getCurrentInstance()
| exports.hasInjectionContext = () => !!VueModule.getCurrentInstance()
|
|