I have been using dishwasher detergent to clean everything on my bike. It degreases pretty well, I believe.
I have also used charcoal lighter fluid as a solvent I spray on the chain, chain rings, derailleur, etc. It degreases really well.
To get my chain especially clean, I put it in an empty gatorade bottle, add charcoal lighter and shake it or agitate it. The solvent comes out really dirty. This can be repeated with clean solvent.
I'd be glad to hear opinions.