Javascript Vue3在自定义指令中渲染组件

Javascript Vue3在自定义指令中渲染组件,javascript,vue.js,vuejs3,Javascript,Vue.js,Vuejs3,我正在尝试将条件呈现指令从Vue 2迁移到Vue 3。该指令将父组件从“el”更改为一个,并添加一个包装器元素,该元素聚合了一些逻辑 在Vue 2版本中,该过程非常简单,只需创建组件的实例、装入组件并将指令Receiver作为子级添加即可 import EditableElement from '@/components/base/EditableElement' Vue.directive('editable', { bind: function (el, binding, vnode)

我正在尝试将条件呈现指令从Vue 2迁移到Vue 3。该指令将父组件从“el”更改为一个,并添加一个包装器元素,该元素聚合了一些逻辑

在Vue 2版本中,该过程非常简单,只需创建组件的实例、装入组件并将指令Receiver作为子级添加即可

import EditableElement from '@/components/base/EditableElement'

Vue.directive('editable', {
  bind: function (el, binding, vnode) {
    let EE = Vue.extend(EditableElement)
    EE.$mount()
    vnode.elm = EE.$el
    vnode.elm.childNodes[0].appendChild(el)
})
}
但是在Vue3中,$el atribute不存在,我一直在尝试创建mount()方法

一个使用h()函数的自定义组件,但是结果给了我一个空el,当我尝试更改vnode时,它不起作用。我该怎么做

 app.directive('tooltip', {
  beforeMount(el, binding, vnode) {
    let new_el = h('div', { class: 'tooltip'}, [
      h('div', { class: 'tooltip__icon' }),
      h(vnode)
      'message'
    ])
    vnode = new_el

  }
})