I have done this with Godot. Having all the different cloths already parented to the rigging. Then toggle visible for the cloth not seen. And toggle visible for the cloth seen. Same for items such as weapons. And also the hair, same way. For performance the unseen can have queue_free() ran on them.
It can get hard with the shape keys though. I found it easier to have different bodies for the different cloth items. Toggle visible.