I have a vue component with separate events for click/dblclik. Single click (de)selects row, dblclick opens edit form.
I use this approach for the same problem. I use a promise that is resolved either by the timeout of 200ms being triggered, or by a second click being detected. It works quite well in my recent web apps.
{clickType = text})">
{{clickType}}
Working fiddle: https://jsfiddle.net/MapletoneMartin/9m62Lrwf/