Can the following libraries and frameworks be used to build the Client-Side of DApps ?
All of the options are correct. The problem is that as soon as your smart contract becomes more complex and large, it's even harder to control it with plain JS or even the other frameworks mentioned before.
Nowadays, one of the most emergent languages is Reactjs. It's async syntax is very intuitive and is so easy to work with it if you're familiar with JS.
The nice things are the state and component methods. It will let you query the blockchain continuously, by async methodology and update the state to show on the DOM the correct variable values/states of a contract etc..
Here you have a bit extra documentation to introduce yourself:
Hope it helps!