If the speed of your bullet is very high compared to the movement of everything else in your world (for example a laser beam), you're better off using the vector approach, or more correctly, a Ray. A Ray has an origin and a direction, whereas a vector just has direction.
If the speed of your bullet is low enough that its reasonable that the player will be able to see it coming and dodge it, then you'll have to use collision detection. There are ways of preventing situations where collision detection misses a collision due to the speed of the projectile, you can simply test against an object that is extruded forwards in time by a certain amount, or use shorter timesteps to get a higher resolution.
Currently working on an open world survival RPG - For info check out my Development blog:ByteWrangler