Vue3指令组件上下文对象的获取方式发生了变化。
一般情况下推荐指令和组件实例相互独立,从自定义指令内部去访问组件实例,那可能说明这里不需要封装指令,指令就是组件本事的功能。但是可能的确有某些场景需要去获取组件实例。
在Vue 2中通过 vnode 参数获取:
bind(el, binding, vnode) {
const vm = vnode.context
}
在Vue 3中 通过 binding 参数获取:
mounted(el, binding, vnode) {
const vm = binding.instance
}