20-01-05

120 阅读1分钟

看起来,可以无dom就执行$mount,而且依然可以得到$el

import Vue from 'vue'
import videoPlayer from '@/components/common/videoPlayer.vue'
const VpConstructor = Vue.extend(videoPlayer)
let instance
const install = () => {
  Object.defineProperty(Vue.prototype, '$vPlayer', {
    get () {
      const vPlayer = (options) => {
        options.isVisible = true
        instance = new VpConstructor({
          propsData: options
        })
        instance.vm = instance.$mount()
        document.body.appendChild(instance.vm.$el)
        return instance.vm
      }
      return vPlayer
    }
  })
}
export default install

Vue中import的component到底是什么

这里PreviewGround是个组件,需要注册在其他父组件中才能显示:

import PreviewGround from './subs/PreviewGround'

也可以将组件单独实例化:

let Pvm = new Vue.extend(PreviewGround).$mount()

看起来,可以无dom就执行$mount,而且依然可以得到$el