Frankly i think duplicating 2 separated code sources is really overhead.
On the other hand making a unique common UI working for both is not great.
And v-if to show hide elements can get all heavy.
For me it could be a mix
Some main UI elements can be responsive and with some v-if cases plus good css logic
Then some routes can be conditionnal based on device, when UI of a page needs really to be different
But also in some common pages for both UI you can apply
-using components with specific slots
-or using the dynamic components loading.
Loading some parts of the page as Mobile component or desktop components.
I think there is a lot of solution to mix in VueJs
To have a perfect single source code logic