Почему в заголовке пишешь про удаление обработчика, но при этом говоришь, что обработчик не срабатывает (т.е. не подцепляется)?
Вообще если бы было больше кода или пример на jsfiddle/codepen, оно было бы понятнее, но сейчас чисто визуально моему телепату кажется, что используется options api и при этом mounted и beforeDestroy находятся внутри methods а не на первом уровне (где должны быть хуки жизненного цикла компонента).
UPD: проблема в том, что клик сначала отрабатывает на компоненте, потом на документе и в итоге ничего не происходит. Правильнее всего отключить всплытие в обработчике:
toggle(e){
e.stopPropagation()
this.visibelOptions = true
},
но можно и (например) сделать показ позже:
toggle(e){
this.$nextTick().then(()=>
this.visibelOptions = true)
},
toggle(e){
setTimeout(()=>
this.visibelOptions = true, 0)
},
или добавить проверку на скрытии:
hideSelected(e){
if (this.$el !== e.target)
this.visibelOptions = false
}