Here’s an example demonstrating that: http://bl.ocks.org/tristen/0c0ed34e210a04e89984
Unlike a mapping library like Leaftlet, Mapbox GL JS doesn’t have a concept of “basemap” vs “other layers.” All layers are part of the same entity: the style. So you need to keep some state of the data layer around and call its source/addLayer on each change.