I'm testing out PrimeVue for my Vue demo project and I finally discovered (figured out) that if you want to use the PrimeVue elements, you need to name them on import and use those names in the HTML tags.
Vue also complains if you don't use unique names since you're not allowed to overwrite the existing HTML elements because of course you can't. This makes a ton of sense and I'm glad I figured it out now while I'm working to get all the pieces of my app in place.
The code ends up looking like this a lot and I'm using pv* for my prefix:
import pvbutton from 'primevue/button'
app.component('pvbutton', pvbutton)
then in HTML, you use:
<pvbutton ....></pvbutton>