I have experience in building Angular and a few of our community champions have built through react framework. You can use any framework you like next/knockout. But the key here is you need to utilise the PCF component properly.
You can build your react apps and host them inside the portal pages. your compiled JS will be attached as a webfile and injected in where you need them on the portal. You can also wire up your apps to use the Portal CRUD API.
I am personally not a big fan of PCF controls in Portal - as you can do this with JS and CSS and host it in the Portal directly.
For example, this below is a custom VueJs APP - that is injected inside an Entity Form. The upload is done via a custom API.
You can implement the OAUTH implicit grant flow for the portal and authenticate with this custom API, as an example.