I think I have got what you are saying. Instead of calling Needs["Calculus'VectorAnalysis'"], I can just use function CoordinateTransform["Spherical" -> "Cartesian", {r0[#], [Theta][#], [Phi][#]}].
But when I am using the function EulerEquations[], I still need to call needs["VariationalMethods`"], otherwise EulerEquations[] is not usable.