There is a wide variety of definitions for tangent vectors, and the point of calling them all by this name is that they are all (on a nice enough manifold) equivalent.
There are three big definitions to keep in mind for most of general relativity, which are sometimes called the geometric, kinematic and operational tangent vectors. The terms may differ, and there are other, less pleasant definitions, but those are the ones commonly used in general relativity texts.
The geometric tangent space is the most commonly used one. At every point $p$ of a manifold $M$, you have a copy of $\mathbb{R}^n$. We call this copy at $p$ by $T_pM$, the tangent space at $p$. A tangent vector is simply a point in $T_pM$. The tangent bundle $TM$ is what we get by attaching such a space to every point of the manifold, and to make it into a proper fiber bundle, we give it an appropriate manifold topology. A vector field is then simply a function mapping points of the manifold to points in the tangent space of that point.
The kinematic tangent bundle is the one you get by considering tangent vectors as the velocities of curves. It is a much more concrete idea, as if you have a coordinate system, the tangent vector is just the usual definition of a tangent vector. For a curve with coordinates $x^\mu(t)$, the tangent vector is simply
$$v^\mu = \dot{x}^\mu(t)$$
or, more properly, if you have a curve $\gamma$ in a neighbourhood $U$ with coordinate map $\phi$, the components of the vector in that coordinate system at the point of the curve $p = \gamma(u)$ is
$$v_{\gamma, U, \phi, u} = \frac{d}{dt}(\phi_U \circ \gamma(t))|_{t = u}$$
Up to some equivalence class you can define the tangent space and then the tangent bundle from this. While a simpler notion than others perhaps, on the other hand defining vector fields from this is more difficult. You can do it locally by considering foliations of some neighbourhood by curves, but it is not the simplest object to wield for this.
The operational tangent space is the one defined using derivatives, and the flat space equivalent is that if you have a vector field $V$, you can define a directional derivative from it. It can be difficult to keep your notation straight in such a case, because you have on one hand the vector as a map of smooth functions, and the vector as a map from the manifold to vectors (vectors in this interpretations are germs of derivatives). I try to keep track of it by using square brackets for the first :
\begin{eqnarray}
V : C^\infty(M) &\to& C^\infty(M)\\
\phi &\mapsto& V[\phi]
\end{eqnarray}
and parenthesis for the second :
\begin{eqnarray}
V : M &\to& TM\\
p &\mapsto& V(p) \in T_pM
\end{eqnarray}
The connection between the two in a bit of a more informal way is that, given a scalar function $\phi$, its directional derivative with $V$ is
$$V[\phi] = \sum_i V^i (\partial_i \phi)$$
in which case $V^i$ is the components of your vector in the sense of the geometric tangent space.
It can be shown that if your manifold is reasonable enough, those three definitions are indeed the same (you can find such proofs in say, Lee's introduction to smooth manifolds)