I have been to Puerto Rico, St. Thomas, St. John, and Virgin Gorda for many vacations as well as Tortola and the smaller BVI islands on multiple day trips.
This is like comparing apples and oranges and watermelons. It depends on what you are looking for in a vacation.
Puerto Rico is a large island with diverse landscapes. We like to stop over on PR on our way to the Virgin Islands. Old San Juan is a wonderful walled city loaded with fantastic historical buildings. We have stayed there twice and will go back again. We have also stayed out by El Yunque and hiked in the mountains. The beaches along the stretch between San Juan and Rio Grande area are fine but not the type I prefer. We really enjoy Puerto Rico. Lodging is reasonable and there is so much to explore. We have plans to rent a house or condo there for several months during our semi-retirement years.
St. Thomas has an airport, many beaches, lots of shopping and a strong tourist infrastructure in place if one likes an active vacation - ziplines, sailing, boat excursions, lots and lots of shopping, etc. You can also find beachfront accommodations in all price ranges.
St. John has no airport, you must take a ferry or private water transfer from St. Thomas. The majority of the island is National Park and aside from a snack stand at Honeymoon and Trunk beaches, all other beaches are undeveloped, meaning you take your own chairs, food, beverages, etc. What beachfront options are available, and there are very few, will start at well over $1,000 for two people and goes up from there. Rental homes are in the mountains and you rent a vehicle for getting around. Cruz Bay has some small hotel rooms and a few condo complexes. Its a lively little town with lots of restaurants, bars and local shops. We have repeatedly returned to STJ for 25 years.
Virgin Gorda BVI is similar to STJ - it is very quiet and the beaches are undeveloped. There are a few more walk-to-the-beach lodging options. We adore VG and spend more time there as STJ has become more popular. We like renting a large beachfront house on VG, something that isn't possible on STJ.