コンポーネントを作成し、アプリケーションのルート要素にレンダリング/マウントするカスタムVueツールチップ指示文を作成しようとしています。Vue既に作成されマウントされているツールチップコンポーネントを#appに破棄する方法
現在のところコンポーネントはmouseenter
に実装されていますが、mouseleave
には破壊されません。
後に、ディレクティブがバインドされている要素ClientRectを取得し、ツールチップを配置するスタイルを適用します。ここで
は私の指示コードは次のとおりです。
import Vue from 'Vue';
import tooltip from '../../views/components/tooltip/tooltip.vue';
export default {
bind() {},
inserted(el) {
let component;
el.addEventListener('mouseenter',() => {
const Tooltip = Vue.extend(tooltip);
component = new Tooltip().$mount();
document.getElementById('app').appendChild(component.$el);
});
el.addEventListener('mouseleave',() => {
component.$destroy();
});
},
update() {},
componentUpdated() {},
unbind() {},
};
どのように私はきちんとmouseleave
上のコンポーネントを破壊することができますか?
をあなたは 'V-if'でこれを行うにはしたくない理由がありますマウスの中心とマウスのデータ項目を更新するだけですか? –
その理由は、指示文を使用するたびにdomを同じツールチップ要素で汚染したくないからです。 –