I am using QGIS 2.16 and keep my GIS data (e.g. shapefiles) and my QGIS project files all on Dropbox because I work in two locations. When I open up a file made in the first location at the second location, new layers I was working on are missing, even though dropbox tells me my .QGS file and the shapefiles of the new layers have been updated.
I used Dropbox to share shapefile so multiple users could edit them. This was a huge mistake! There was a recurring issue where all of the attributes ended up associated with the wrong features. Eg, feature number 1 had the attributes for feature number 2, and so on. We had to revert to a backup copy and re-do days worth of data entry.
This is because Dropbox uses the date a file was modified to decide how to handle updates. When you edit a shapefile, the different files that make up the entire shapefile end up having different dates, so they are handled differently. The way Dropbox deals with conflicted copies is incompatible with the multi-file format of a shapefile. If you're going to store your layers on Dropbox, use a single file format like geojson or other geodatabase. Otherwise, store and edit your shapefiles locally, and use Dropbox only to transfer them to a different device.
However, this problem only seems to occur when editing a shapefile. If you're just using a shapefile for reference and aren't editing it, keeping it on Dropbox should be fine.
Sounds like an issue with Dropbox, not GIS.
However, to answer your question, shapefiles store data in the dbf file, but all files are necessary as the other store indexes and other information (shx,shp).
Here's a thorough explanation of the shapefile format: https://en.wikipedia.org/wiki/Shapefile
And supported data formats in QGIS: https://docs.qgis.org/2.6/en/docs/user_manual/working_with_vector/supported_data.html