ui-template-muc
Version:
A fantastic mobile ui lib implement by Vue
28 lines (27 loc) • 891 B
JavaScript
import parseRenderData from './parse-render.js'
import getInstance from './instantiate-component.js'
export default function create (Component, Vue) {
return function (config, renderFn) {
const owner = this
const parseData = parseRenderData(config)
const instance = getInstance(Vue, Component, parseData, renderFn)
const parent = instance.$parent
const originRemove = instance.remove
const originShow = instance.show
const originHide = instance.hide
instance.remove = function () {
originRemove && originRemove.call(this)
parent.destroy()
}
instance.show = function () {
originShow && originShow.call(this)
}
instance.hide = function () {
originHide && originHide.call(this)
}
owner.$once('hook:beforeDestroy', function () {
instance.remove()
})
return instance
}
}