The function f:(ℝ^2)⟶ℝ, z=f(x,y)=(x^2)+(y^2).  We graph this both as a subset of three-space.

scalemax = 10;
f[x_,y_]:= x^2+y^2;
limit = Sqrt[scalemax];
scale = {-scalemax-1.,scalemax+.1};
bowl = Plot3D[f[x,y],{x,-limit,limit},{y,-limit,limit},RegionFunction->Function[{x,y,z},f[x,y]≤scalemax],PlotRange->{scale,scale,{-1,scalemax}},Axes->True,AxesOrigin->{0,0,0},Boxed->False,AspectRatio->1,ImageSize->400]

The vertical slice, along the plane corresponding to a fixed value for the variable  x, is graphed here.  The intersection with the graph gives us information about the graph of the function.  In the slice, for  x=c, the intersection looks the graph of z as a function of only y, specifically  z=(y^2)+c.  We show this intersection at right, graphed in the y z-plane corresponding to x=c.

(*  x-slice data in 3-space. *)xslice[x_]:= ParametricPlot3D[{x,y,z},{y,-scalemax,scalemax},{z,-scalemax,scalemax},Mesh->None,PlotStyle->Opacity[.8]]
xslicepoint[x_]:=Graphics3D[{PointSize[Large],Red,Point[{x,0,0}]}]
xslicetangentpoint[x_,y_]:= Graphics3D[{PointSize[.03],Blue,Point[{x,y,f[x,y]}]}]
xslicetangentline[x_,y_]:=ParametricPlot3D[{x,z,f[x,y] + 2*y*(z-y)},{z,-10,10},PlotStyle->{Thick, Blue}]
xvcut[x_]:= ParametricPlot3D[{x,y,x^2+y^2},{y,-scalemax,scalemax},PlotStyle->{Red,Thick}]

(*  Inside the x-slice.  *)
sliceplaneplot[x_]:=Plot[x^2+y^2,{y,-scalemax,scalemax},PlotStyle->{Thick,Red},PlotRange->{{-scalemax/2,scalemax/2},{-1,scalemax}},PlotLabel->Style["yz-plane at fixed x-slice",FontSize->18],AxesLabel->{y,z},ImageSize->250]
sliceplanetangentpoint[x_,y_]:=Graphics[{PointSize[.03],Blue,Point[{y,f[x,y]}]}]
sliceplanetangentline[x_,y_]:=Plot[f[x,y]+2*y*(z-y),{z,-10,10},PlotStyle->{Thick,Blue}]

(* Visualization. *)
Manipulate[{Show[bowl,xslice[x],xslicepoint[x],xslicetangentpoint[x,y],xslicetangentline[x,y],xvcut[x]],Show[sliceplaneplot[x],sliceplanetangentpoint[x,y],sliceplanetangentline[x,y]]},{x,-10,10},{y,-10,10}]

(*  x-slice data in 3-space. *)xslice[x_]:= ParametricPlot3D[{x,y,z},{y,-scalemax,scalemax},{z,-scalemax,scalemax},Mesh->None,PlotStyle->Opacity[.8]]
xslicepoint[x_]:=Graphics3D[{PointSize[Large],Red,Point[{x,0,0}]}]
xslicetangentpoint[x_,y_]:= Graphics3D[{PointSize[.03],Blue,Point[{x,y,f[x,y]}]}]
xslicetangentline[x_,y_]:=ParametricPlot3D[{x,z,f[x,y] + 2*y*(z-y)},{z,-10,10},PlotStyle->{Thick, Blue}]
xvcut[x_]:= ParametricPlot3D[{x,y,x^2+y^2},{y,-scalemax,scalemax},PlotStyle->{Red,Thick}]

(* y-slicedata in 3-space.*)
yslice[y_]:= ParametricPlot3D[{x,y,z},{x,-scalemax,scalemax},{z,-scalemax,scalemax},Mesh->None,PlotStyle->Opacity[.8]]
yslicetangentline[x_,y_]:=ParametricPlot3D[{z,y,f[x,y] + 2*x*(z-x)},{z,-10,10},PlotStyle->{Thick, Blue}]
xvcut[x_]:= ParametricPlot3D[{x,y,x^2+y^2},{y,-scalemax,scalemax},PlotStyle->{Red,Thick}]

(*  Inside the x-slice.  *)
sliceplaneplot[x_]:=Plot[x^2+y^2,{y,-scalemax,scalemax},PlotStyle->{Thick,Red},PlotRange->{{-scalemax/2,scalemax/2},{-1,scalemax}},PlotLabel->Style["yz-plane at fixed x-slice",FontSize->18],AxesLabel->{y,z},ImageSize->250]
sliceplanetangentpoint[x_,y_]:=Graphics[{PointSize[.03],Blue,Point[{y,f[x,y]}]}]

(* Visualization. *)
Manipulate[Show[bowl,xslice[x],yslice[y],xslicepoint[x],xslicetangentpoint[x,y],xslicetangentline[x,y],yslicetangentline[x,y],xvcut[x]],{x,-10,10},{y,-10,10}]

(* tangent plane visualization.  *)tangentPlane[xpt_,ypt_] =(f[x0,y0]+(D[f[x,y],x] /. {x->x0,y->y0})(x-x0)+(D[f[x,y],y] /. {x->x0,y->y0})(y-y0)) /. {x0->xpt,y0->ypt};
tplane[x0_,y0_]:= Plot3D[tangentPlane[x0,y0],{x,-20,20},{y,-20,20},Mesh->None,PlotStyle->{Green,Opacity[.6]}]

(* Lighten up previous stuff *)
dbowl = Plot3D[f[x,y],{x,-limit,limit},{y,-limit,limit},RegionFunction->Function[{x,y,z},f[x,y]≤scalemax],PlotRange->{scale,scale,{-6,scalemax}},Axes->True,AxesOrigin->{0,0,0},Boxed->False,AspectRatio->1,ImageSize->400];
xlightslice[x_]:= ParametricPlot3D[{x,y,z},{y,-scalemax,scalemax},{z,-scalemax,scalemax},Mesh->None,PlotStyle->Opacity[.3]];
ylightslice[y_]:= ParametricPlot3D[{x,y,z},{x,-scalemax,scalemax},{z,-scalemax,scalemax},Mesh->None,PlotStyle->Opacity[.3]];

(* Visualization. *)
Manipulate[Show[dbowl,xlightslice[x],ylightslice[y],xslicepoint[x],xslicetangentpoint[x,y],xslicetangentline[x,y],tplane[x,y],yslicetangentline[x,y]],{x,-10,10},{y,-10,10}]