__NUXT_JSONP__("/learning-path", (function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,_,$,aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,ao,ap,aq,ar,as,at,au,av,aw,ax,ay,az,aA,aB,aC,aD,aE,aF,aG,aH,aI,aJ,aK,aL,aM,aN,aO,aP,aQ,aR,aS,aT,aU,aV,aW,aX,aY,aZ,a_,a$,ba,bb,bc,bd,be,bf,bg,bh,bi,bj,bk,bl,bm,bn,bo,bp,bq,br,bs,bt,bu,bv,bw,bx,by,bz,bA,bB,bC,bD,bE,bF,bG,bH,bI,bJ,bK,bL,bM,bN,bO,bP,bQ,bR,bS,bT,bU,bV,bW,bX,bY,bZ,b_,b$,ca,cb,cc,cd,ce,cf,cg,ch,ci,cj,ck,cl,cm,cn,co,cp,cq,cr,cs,ct,cu,cv,cw,cx,cy,cz,cA,cB,cC,cD,cE,cF,cG,cH,cI,cJ,cK,cL,cM,cN,cO,cP,cQ,cR,cS,cT,cU,cV,cW,cX,cY,cZ,c_,c$,da,db,dc,dd,de,df,dg,dh,di,dj,dk,dl,dm,dn,do0,dp,dq,dr,ds,dt,du,dv,dw,dx,dy,dz,dA,dB,dC,dD,dE,dF,dG,dH,dI,dJ,dK,dL,dM,dN,dO,dP,dQ,dR,dS,dT,dU,dV,dW,dX,dY,dZ,d_,d$,ea,eb,ec,ed,ee,ef,eg,eh,ei,ej,ek,el,em,en,eo,ep,eq,er,es,et,eu,ev,ew,ex,ey,ez,eA,eB,eC,eD,eE,eF,eG,eH,eI,eJ,eK,eL,eM,eN,eO,eP,eQ,eR,eS,eT,eU,eV,eW,eX,eY,eZ,e_,e$,fa,fb,fc,fd,fe,ff,fg,fh,fi,fj,fk,fl,fm,fn,fo,fp,fq,fr,fs,ft,fu,fv,fw,fx,fy,fz,fA,fB,fC,fD,fE,fF,fG,fH,fI,fJ,fK,fL,fM,fN,fO,fP,fQ,fR,fS,fT,fU,fV,fW,fX,fY,fZ,f_,f$,ga,gb,gc,gd,ge,gf,gg,gh,gi,gj,gk,gl,gm,gn,go,gp,gq,gr,gs,gt,gu,gv,gw,gx,gy,gz,gA,gB,gC,gD,gE,gF,gG,gH,gI,gJ,gK,gL,gM,gN,gO,gP,gQ,gR,gS,gT,gU,gV,gW,gX,gY,gZ,g_,g$,ha,hb,hc,hd,he,hf,hg,hh,hi,hj,hk,hl,hm,hn,ho,hp,hq,hr,hs,ht,hu,hv,hw,hx,hy,hz,hA,hB,hC,hD,hE,hF,hG,hH,hI,hJ,hK,hL,hM,hN,hO,hP,hQ,hR,hS,hT,hU,hV,hW,hX,hY,hZ,h_,h$,ia,ib,ic,id,ie,if0,ig,ih,ii,ij,ik,il,im,in0,io,ip,iq,ir,is,it,iu,iv,iw,ix,iy,iz,iA,iB,iC,iD,iE,iF,iG,iH,iI,iJ,iK,iL,iM,iN,iO,iP,iQ,iR,iS,iT,iU,iV,iW,iX,iY,iZ,i_,i$,ja,jb,jc,jd,je,jf,jg,jh,ji,jj,jk,jl,jm,jn,jo,jp,jq,jr,js,jt,ju,jv,jw,jx,jy,jz,jA,jB,jC,jD,jE,jF,jG,jH,jI,jJ,jK,jL,jM,jN,jO,jP,jQ,jR,jS,jT,jU,jV,jW,jX,jY,jZ,j_,j$,ka,kb,kc,kd,ke,kf,kg,kh,ki,kj,kk,kl,km,kn,ko,kp,kq,kr,ks,kt,ku,kv,kw,kx,ky,kz,kA,kB,kC,kD,kE,kF,kG,kH,kI,kJ,kK,kL,kM,kN,kO,kP,kQ,kR,kS,kT,kU,kV,kW,kX,kY,kZ,k_,k$,la,lb,lc,ld,le,lf,lg,lh,li,lj,lk,ll,lm,ln,lo,lp,lq,lr,ls,lt,lu,lv,lw,lx,ly,lz,lA,lB,lC,lD,lE,lF,lG,lH,lI,lJ,lK,lL,lM,lN,lO,lP,lQ,lR,lS,lT,lU,lV,lW,lX,lY,lZ,l_,l$,ma,mb,mc,md,me,mf,mg,mh,mi,mj,mk,ml,mm,mn,mo,mp,mq,mr,ms,mt,mu,mv,mw,mx,my,mz,mA,mB,mC,mD,mE,mF,mG,mH,mI,mJ,mK,mL,mM,mN,mO,mP,mQ,mR,mS,mT,mU,mV,mW,mX,mY,mZ,m_,m$,na,nb,nc,nd,ne,nf,ng,nh,ni,nj,nk,nl,nm,nn,no,np,nq,nr,ns,nt,nu,nv,nw,nx,ny,nz,nA,nB,nC,nD,nE,nF,nG,nH,nI,nJ,nK,nL,nM,nN,nO,nP,nQ,nR,nS,nT,nU,nV,nW,nX,nY,nZ,n_,n$,oa,ob,oc,od,oe,of,og,oh,oi,oj,ok,ol,om,on,oo,op,oq,or,os,ot,ou,ov,ow,ox,oy,oz,oA,oB,oC,oD,oE,oF,oG,oH,oI,oJ,oK,oL,oM,oN,oO,oP,oQ,oR,oS,oT,oU,oV,oW,oX,oY,oZ,o_,o$,pa,pb,pc,pd,pe,pf,pg,ph,pi,pj,pk,pl,pm,pn,po,pp,pq,pr,ps,pt,pu,pv,pw,px,py,pz,pA,pB,pC,pD,pE,pF,pG,pH,pI,pJ,pK,pL,pM,pN,pO,pP,pQ,pR,pS,pT,pU,pV,pW,pX,pY,pZ,p_,p$,qa,qb,qc,qd,qe,qf,qg,qh,qi,qj,qk,ql,qm,qn,qo,qp,qq,qr,qs,qt,qu,qv,qw,qx,qy,qz,qA,qB,qC,qD,qE,qF,qG,qH,qI,qJ,qK,qL,qM,qN,qO,qP,qQ,qR,qS,qT,qU,qV,qW,qX,qY,qZ,q_,q$,ra,rb,rc,rd,re,rf,rg,rh,ri,rj,rk,rl,rm,rn,ro,rp,rq,rr,rs,rt,ru,rv,rw,rx,ry,rz,rA,rB,rC,rD,rE,rF,rG,rH,rI,rJ,rK,rL,rM,rN,rO,rP,rQ,rR,rS,rT,rU,rV,rW,rX,rY,rZ,r_,r$,sa,sb,sc,sd,se,sf,sg,sh,si,sj,sk,sl,sm,sn,so,sp,sq,sr,ss,st,su,sv,sw,sx,sy,sz,sA,sB,sC,sD,sE,sF,sG,sH,sI,sJ,sK,sL,sM,sN,sO,sP,sQ,sR,sS,sT,sU,sV,sW,sX,sY,sZ,s_,s$,ta,tb,tc,td,te,tf,tg,th,ti,tj,tk,tl,tm,tn,to,tp,tq,tr,ts,tt,tu,tv,tw,tx,ty,tz,tA,tB,tC,tD,tE,tF,tG,tH,tI,tJ,tK,tL,tM,tN,tO,tP,tQ,tR,tS,tT,tU,tV,tW,tX,tY,tZ,t_,t$,ua,ub,uc,ud,ue,uf,ug,uh,ui,uj,uk,ul,um,un,uo,up,uq,ur,us,ut,uu,uv,uw,ux,uy,uz,uA,uB,uC,uD,uE,uF,uG,uH,uI,uJ,uK,uL,uM,uN,uO,uP,uQ,uR,uS,uT,uU,uV,uW,uX,uY,uZ,u_,u$,va,vb,vc,vd,ve,vf,vg,vh,vi,vj,vk,vl,vm,vn,vo,vp,vq,vr,vs,vt,vu,vv,vw,vx,vy,vz,vA,vB,vC,vD,vE,vF,vG,vH,vI,vJ,vK,vL,vM,vN,vO,vP,vQ,vR,vS,vT,vU,vV,vW,vX,vY,vZ,v_,v$,wa,wb,wc,wd,we,wf,wg,wh,wi,wj,wk,wl,wm,wn,wo,wp,wq,wr,ws,wt,wu,wv,ww,wx,wy,wz,wA,wB,wC,wD,wE,wF,wG,wH,wI,wJ,wK,wL,wM,wN,wO,wP,wQ,wR,wS,wT,wU,wV,wW,wX,wY,wZ,w_,w$,xa,xb,xc,xd,xe,xf,xg,xh,xi,xj,xk,xl,xm,xn,xo,xp,xq,xr,xs,xt,xu,xv,xw,xx,xy,xz,xA,xB,xC,xD,xE,xF,xG,xH,xI,xJ,xK,xL,xM,xN,xO,xP,xQ,xR,xS,xT,xU,xV,xW,xX,xY,xZ,x_,x$,ya,yb,yc,yd,ye,yf,yg,yh,yi,yj,yk,yl,ym,yn,yo,yp,yq,yr,ys,yt,yu,yv,yw,yx,yy,yz,yA,yB,yC,yD,yE,yF,yG,yH,yI,yJ,yK,yL,yM,yN,yO,yP,yQ,yR,yS,yT,yU,yV,yW,yX,yY,yZ,y_,y$,za,zb,zc,zd,ze,zf,zg,zh,zi,zj,zk,zl,zm,zn,zo,zp,zq,zr,zs,zt,zu,zv,zw,zx,zy,zz,zA,zB,zC,zD,zE,zF,zG,zH,zI,zJ,zK,zL,zM,zN,zO,zP,zQ,zR,zS,zT,zU,zV,zW,zX,zY,zZ,z_,z$,Aa,Ab,Ac,Ad,Ae,Af,Ag,Ah,Ai,Aj,Ak,Al,Am,An,Ao,Ap,Aq,Ar,As,At,Au,Av,Aw,Ax,Ay,Az,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ,A_,A$,Ba,Bb,Bc,Bd,Be,Bf,Bg,Bh,Bi,Bj,Bk,Bl,Bm,Bn,Bo,Bp,Bq,Br,Bs,Bt,Bu,Bv,Bw,Bx,By,Bz,BA,BB,BC,BD,BE,BF,BG,BH,BI,BJ,BK,BL,BM,BN,BO,BP,BQ,BR,BS,BT,BU,BV,BW,BX,BY,BZ,B_,B$,Ca,Cb,Cc,Cd,Ce,Cf,Cg,Ch,Ci,Cj,Ck,Cl,Cm,Cn,Co,Cp,Cq,Cr,Cs,Ct,Cu,Cv,Cw,Cx,Cy,Cz,CA,CB,CC,CD,CE,CF,CG,CH,CI,CJ,CK,CL,CM,CN,CO,CP,CQ,CR,CS,CT,CU,CV,CW,CX,CY,CZ,C_,C$,Da,Db,Dc,Dd,De,Df,Dg,Dh,Di,Dj,Dk,Dl,Dm,Dn,Do,Dp,Dq,Dr,Ds,Dt,Du,Dv,Dw,Dx,Dy,Dz,DA,DB,DC,DD,DE,DF,DG,DH,DI,DJ,DK,DL,DM,DN,DO,DP,DQ,DR,DS,DT,DU,DV,DW,DX,DY,DZ,D_,D$,Ea,Eb,Ec,Ed,Ee,Ef,Eg,Eh,Ei,Ej,Ek,El,Em,En,Eo,Ep,Eq,Er,Es,Et,Eu,Ev,Ew,Ex,Ey,Ez,EA,EB,EC,ED,EE,EF,EG,EH,EI,EJ,EK,EL,EM,EN,EO,EP,EQ,ER,ES,ET,EU,EV,EW,EX,EY,EZ,E_,E$,Fa,Fb,Fc,Fd,Fe,Ff,Fg,Fh,Fi,Fj,Fk,Fl,Fm,Fn,Fo,Fp,Fq,Fr,Fs,Ft,Fu,Fv,Fw,Fx,Fy,Fz,FA,FB,FC,FD,FE,FF,FG,FH,FI,FJ,FK,FL,FM,FN,FO,FP,FQ,FR,FS,FT,FU,FV,FW,FX,FY,FZ,F_,F$,Ga,Gb,Gc,Gd,Ge,Gf,Gg,Gh,Gi,Gj,Gk,Gl,Gm,Gn,Go,Gp,Gq,Gr,Gs,Gt,Gu,Gv,Gw,Gx,Gy,Gz,GA,GB,GC,GD,GE,GF,GG,GH,GI,GJ,GK,GL,GM,GN,GO,GP,GQ,GR,GS,GT,GU,GV,GW,GX,GY,GZ,G_,G$,Ha,Hb,Hc,Hd,He,Hf,Hg,Hh,Hi,Hj,Hk,Hl,Hm,Hn,Ho,Hp,Hq,Hr,Hs,Ht,Hu,Hv,Hw,Hx,Hy,Hz,HA,HB,HC,HD,HE,HF,HG,HH,HI,HJ,HK,HL,HM,HN,HO,HP,HQ,HR,HS,HT,HU,HV,HW,HX,HY,HZ,H_,H$,Ia,Ib,Ic,Id,Ie,If,Ig,Ih,Ii,Ij,Ik,Il,Im,In,Io,Ip,Iq,Ir,Is,It,Iu,Iv,Iw,Ix,Iy,Iz,IA,IB,IC,ID,IE,IF,IG,IH,II,IJ,IK,IL,IM,IN,IO,IP,IQ,IR,IS,IT,IU,IV,IW,IX,IY,IZ,I_,I$,Ja,Jb,Jc,Jd,Je,Jf,Jg,Jh,Ji,Jj,Jk,Jl,Jm,Jn,Jo,Jp,Jq,Jr,Js,Jt,Ju,Jv,Jw,Jx,Jy,Jz,JA,JB,JC,JD,JE,JF,JG,JH,JI,JJ,JK,JL,JM,JN,JO,JP,JQ,JR,JS,JT,JU,JV,JW,JX,JY,JZ,J_,J$,Ka,Kb,Kc,Kd,Ke,Kf,Kg,Kh,Ki,Kj,Kk,Kl,Km,Kn,Ko,Kp,Kq,Kr,Ks,Kt,Ku,Kv,Kw,Kx,Ky,Kz,KA,KB,KC,KD,KE,KF,KG,KH,KI,KJ,KK,KL,KM,KN,KO,KP,KQ,KR,KS,KT,KU,KV,KW,KX,KY,KZ,K_,K$,La,Lb,Lc,Ld,Le,Lf,Lg,Lh,Li,Lj,Lk,Ll,Lm,Ln,Lo,Lp,Lq,Lr,Ls,Lt,Lu,Lv,Lw,Lx,Ly,Lz,LA,LB,LC,LD,LE,LF,LG,LH,LI,LJ,LK,LL,LM,LN,LO,LP,LQ,LR,LS,LT,LU,LV,LW,LX,LY,LZ,L_,L$,Ma,Mb,Mc,Md,Me,Mf,Mg,Mh){return {data:[{_img:{"/_ipx/s_240x41/images/vuemastery.svg":"\u002F_nuxt\u002Fimage\u002Ff8143e.svg","/_ipx/s_240x41/images/vuemastery-white.svg":"\u002F_nuxt\u002Fimage\u002Fd26370.svg","/_ipx/s_284x50/images/lgo-vue-mastery-green.webp":"\u002F_nuxt\u002Fimage\u002F1ce72d.webp"}}],fetch:{},mutations:[["courses\u002FRECEIVE_PATH",{paths:{__meta__:{createdBy:Q,createdDate:"2018-02-18T23:56:23.646Z",lastModifiedBy:c,lastModifiedDate:"2024-03-22T04:47:06.091Z",locale:T},advanceIntro:"The last step to mastery is to become intimately familiar with Vue patterns and source code. These courses are designed for this.",advanced:[bW,dJ,cO,dU,cP,cX,cY,cI],advancedIntro:"\u003Cp\u003EThe last step to mastery is to become intimately familiar with Vue design patterns and the source code. We've worked closely with Evan You and other Vue Core team members to teach you how to fully utilize the advanced features of Vue.  \u003C\u002Fp\u003E\n",beginner:[ct,ds,cZ,em,cQ,en,dK,dV],"beginner-vue-2":[cJ,cf,ff,cu,dW],"beginner-vue-2BonusText":J,"beginner-vue-2Intro":"\u003Cp\u003EGetting started with Vue 2? This is where you'll start.\u003C\u002Fp\u003E\n\u003Cp\u003EThe first course on your learning journey is completely free.\u003C\u002Fp\u003E\n\u003Cp\u003EUnsure if you should start with \u003Ca href=\"\u002Fcourses-path\u002Fbeginner\" target=\"_self\"\u003E\u003Cstrong\u003EVue 3\u003C\u002Fstrong\u003E\u003C\u002Fa\u003E instead? Read \u003Ca href=\"\u002Fblog\u002Fvue-2-or-vue-3\" target=\"_self\"\u003E\u003Cstrong\u003Ethis blog post\u003C\u002Fstrong\u003E\u003C\u002Fa\u003E.\u003C\u002Fp\u003E\n",beginnerIntro:"\u003Cp\u003EIf you're just getting started with Vue and want to start with Vue 3, start with this free course.\u003C\u002Fp\u003E\n\u003Cp\u003EUnsure if you should start with \u003Ca href=\"\u002Fcourses-path\u002Fbeginner-vue-2\" target=\"_self\"\u003E\u003Cstrong\u003EVue 2\u003C\u002Fstrong\u003E\u003C\u002Fa\u003E instead? Read \u003Ca href=\"\u002Fblog\u002Fvue-2-or-vue-3\" target=\"_self\"\u003E\u003Cstrong\u003Ethis blog post\u003C\u002Fstrong\u003E\u003C\u002Fa\u003E.\u003C\u002Fp\u003E\n",id:"course",intermediate:[cv,dL,cR,dX,dY,dM,dt,fg,du,cS,eo,cw,dZ],intermediateBonusText:"\u003Cp\u003EDoes your app need user login? How about smooth animations? The modern GraphQL querying language? Explore adding these features to your app.\u003C\u002Fp\u003E\n",intermediateIntro:Av,intermediateOptionText:"\u003Cp\u003EThe Nuxt framework contains many Vue best practices to help you quickly ship a scalable Vue application. Vuetify leverages Google's Material Design to provide you with ready-to-use components to create beautiful applications. Progressive Web Apps allow us to use our Vue skills to create native-friendly apps.\u003C\u002Fp\u003E\n",intermediatePromo:Av,intro:"\u003Cp\u003EOur latest courses are listed below.\u003C\u002Fp\u003E\n\u003Cp\u003EIf you're getting started try our \u003Ca href=\"\u002Fcourses-path\u002Fbeginner-vue-2\" target=\"_self\"\u003E\u003Cstrong\u003EBeginner path - Vue 2\u003C\u002Fstrong\u003E\u003C\u002Fa\u003E or \u003Ca href=\"\u002Fcourses-path\u002Fbeginner\" target=\"_self\"\u003E\u003Cstrong\u003EBeginner path - Vue 3\u003C\u002Fstrong\u003E\u003C\u002Fa\u003E.\u003C\u002Fp\u003E\n\u003Cp\u003EUnsure if you should learn Vue 2 or Vue 3? Read \u003Ca href=\"\u002Fblog\u002Fvue-2-or-vue-3\" target=\"_self\"\u003E\u003Cstrong\u003Ethis blog post\u003C\u002Fstrong\u003E\u003C\u002Fa\u003E.\u003C\u002Fp\u003E\n\u003Cp\u003EOnce you're passed the basics, head to our \u003Ca href=\"\u002Fcourses-path\u002Fintermediate\" target=\"_self\"\u003E\u003Cstrong\u003Eintermediate\u003C\u002Fstrong\u003E\u003C\u002Fa\u003E or \u003Ca href=\"\u002Fcourses-path\u002Fadvanced\" target=\"_self\"\u003E\u003Cstrong\u003Eadvanced path\u003C\u002Fstrong\u003E\u003C\u002Fa\u003E.\u003C\u002Fp\u003E\n",latests:[1537211627981,1533712005021,1539029994015],order:M,parentId:M,vue3:[d_,dJ,cv,bW,bX,cO,ct,dv,cR],vue3Intro:"\u003Cp\u003EWe have many courses covering Vue 3, and we are producing more every week. If you're just getting started with Vue, you should still start with our [Beginner's Path] before taking these more advanced courses.\u003C\u002Fp\u003E\n"}}],["courses\u002FRECEIVE_COURSES",{courses:{"1516789793545":{__meta__:{createdBy:gu,createdDate:"2018-01-24T10:29:53.546Z",lastModifiedBy:c,lastModifiedDate:"2022-11-11T10:28:55.028Z",locale:T},category:[{name:d$,color:ea}],completable:G,courseDependencies:J,courseLabelsBar:"To get started learning Vue with Vue 3, take our [Intro to Vue 3](\u002Fcourses\u002Fintro-to-vue-3\u002Fintro-to-vue3) course.",description:"If you’re just getting started with Vue, here’s where to get going. We cover all the basics and give you challenges so you can learn by doing.",difficulty:bM,duration:"00:56:50",free:G,id:cJ,image:[{__meta__:{createdBy:c,createdDate:"2019-09-25T19:27:49.299Z"},contentType:K,file:"1569439668110_2.png",folderId:R,id:1569439668110,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1569439668110_2.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=wKBBBu9sztqu3258KuJLLKpfjjISo3PAXp1DDCqME2VvOLU3FdcCtuG8ZNgQ5M5yh4AFRZGj2wKnuZjvYyhR2n2HtgA6kb3BhWAWiSKNTqiMpuFLrHqHfL7chgqxAsQxZsPe2LhiPe8pbz9FQNrJqsrxVK0MQmeQXr28RKVYM%2BFr0a2aik7mYuWLqnO1DkULw6QTXA7GFQAmOwlT3xh4Uq7M%2BYIB2ITsNdxf9FSHXCOvGhNck2rTScAa1YYtldUKRWgnp3xAhmykPS3d92W6A6xUViv0PqwBr%2BNMKicdQpwDhOS6%2FW54OIGwvW7HnHVUMZs9dkB2Std9FsrOozKgEQ%3D%3D"},{__meta__:{createdBy:c,createdDate:"2022-05-15T19:45:42.678Z"},contentType:K,file:"intro-to-vue-js.png",folderId:aR,id:1652643637360,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fintro-to-vue-js.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=f20EgdUSBfZ47NqUbQveko3DVgLH42bqN9Yp%2BAGKwRO%2B6QGV0AIxok6hZlqj6A%2FYGpQ3Ji8YT9SQzp8v3Q9ICp3K%2F9v49J3HJGl4XOe4EGQk8S40xQPWuztbMCoFg9xDh7zXBT5JQLE15wgPGP0%2BasfpsqwVmRWevhkTqoNuyHDfI5gAX31eWixMIzCxNOaW7gy3xKcPXW9owEgQYgpLvvpwqBek3zvUkp455xuE7mIDPNtFEdIGqV%2FWHsLWsAcBsYwhr%2BzFJrKYsxPQJ4Hu%2BUPPkqUO%2B%2FxKbm2jebsn9CtQz8zfQP%2BqAaaHj4UARSnd2S5Gw%2FJI8mfZHL%2FkB%2BKmqQ%3D%3D"}],isComingSoon:F,isDraft:F,isPromoted:F,label:eY,lessons:[{slug:"vue-instance",status:H,date:"2018-02-20T00:00:00-08:00",title:"The Vue Instance",lessonNumber:a,free:G,image:[{__meta__:{createdBy:Q,createdDate:gv},contentType:E,file:gw,folderId:L,id:gx,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:gy}],description:"This lesson covers how to get your data from your JavaScript to show up in your HTML.",duration:"00:05:44",author:O,lock:F,twitterImage:[{__meta__:{createdBy:Q,createdDate:gv},contentType:E,file:gw,folderId:L,id:gx,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:gy}],facebookImage:[{__meta__:{createdBy:Q,createdDate:gv},contentType:E,file:gw,folderId:L,id:gx,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:gy}],socialSharingDescription:"I'm becoming a Vue Master by watching Intro to Vue.js: The Vue Instance.",belongsToCourse:cJ},{slug:"attribute-binding",status:H,date:gz,title:gA,lessonNumber:U,free:G,image:[{__meta__:{createdBy:Q,createdDate:gB},contentType:E,file:gC,folderId:L,id:gD,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:gE}],description:"In this lesson, we’ll explore ways you can connect data to the attributes of your HTML elements. ",duration:Aw,author:O,lock:F,twitterImage:[{__meta__:{createdBy:Q,createdDate:gB},contentType:E,file:gC,folderId:L,id:gD,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:gE}],facebookImage:[{__meta__:{createdBy:Q,createdDate:gB},contentType:E,file:gC,folderId:L,id:gD,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:gE}],socialSharingDescription:"I'm becoming a Vue Master by watching Intro to Vue.js: Attribute Binding",belongsToCourse:cJ},{slug:"conditional-rendering",status:H,date:gz,title:gF,lessonNumber:ab,free:G,image:[{__meta__:{createdBy:Q,createdDate:gG},contentType:E,file:gH,folderId:L,id:gI,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:gJ}],description:"In this lesson we’ll be uncovering how to conditionally display elements with Vue. ",duration:"00:03:44",author:O,lock:F,twitterImage:[{__meta__:{createdBy:Q,createdDate:gG},contentType:E,file:gH,folderId:L,id:gI,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:gJ}],facebookImage:[{__meta__:{createdBy:Q,createdDate:gG},contentType:E,file:gH,folderId:L,id:gI,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:gJ}],socialSharingDescription:"I'm becoming a Vue Master by watching Intro to Vue.js: Conditional Rendering",belongsToCourse:cJ},{slug:"list-rendering",status:H,date:gz,title:gK,lessonNumber:ac,free:G,image:[{__meta__:{createdBy:Q,createdDate:gL},contentType:E,file:gM,folderId:L,id:gN,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:gO}],description:"In this lesson, we’ll learn how to display lists onto our webpages with Vue. ",duration:gP,author:O,lock:F,twitterImage:[{__meta__:{createdBy:Q,createdDate:gL},contentType:E,file:gM,folderId:L,id:gN,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:gO}],facebookImage:[{__meta__:{createdBy:Q,createdDate:gL},contentType:E,file:gM,folderId:L,id:gN,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:gO}],socialSharingDescription:"I'm becoming a Vue Master by watching Intro to Vue.js: List rendering.",belongsToCourse:cJ},{slug:"event-handling",status:H,date:"2018-03-08T00:00:00-05:00",title:fh,lessonNumber:W,free:G,image:[{__meta__:{createdBy:Q,createdDate:gQ},contentType:E,file:gR,folderId:L,id:gS,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:gT}],description:"In this lesson we’ll be learning how to listen for DOM events that we can use to trigger methods.",duration:"00:04:13",author:O,lock:F,twitterImage:[{__meta__:{createdBy:Q,createdDate:gQ},contentType:E,file:gR,folderId:L,id:gS,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:gT}],facebookImage:[{__meta__:{createdBy:Q,createdDate:gQ},contentType:E,file:gR,folderId:L,id:gS,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:gT}],socialSharingDescription:"I'm becoming a Vue Master by watching Intro to Vue.js: Event Handling",belongsToCourse:cJ},{slug:"class-and-style-binding",status:H,date:"2018-03-07T00:00:00-08:00",title:gU,lessonNumber:S,free:G,image:[{__meta__:{createdBy:Q,createdDate:gV},contentType:E,file:gW,folderId:L,id:gX,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:gY}],description:"In this lesson we’ll be learning how to dynamically style our HTML by binding data to an element’s style attribute, as well as its class. ",duration:gZ,author:O,lock:F,twitterImage:[{__meta__:{createdBy:Q,createdDate:gV},contentType:E,file:gW,folderId:L,id:gX,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:gY}],facebookImage:[{__meta__:{createdBy:Q,createdDate:gV},contentType:E,file:gW,folderId:L,id:gX,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:gY}],socialSharingDescription:"I'm becoming a Vue Master by watching Intro to Vue.js: Class & Style Binding",belongsToCourse:cJ},{slug:"vue-computed-properties",status:H,date:"2018-03-14T00:00:00-04:00",title:eZ,lessonNumber:ae,free:G,image:[{__meta__:{createdBy:Q,createdDate:g_},contentType:E,file:g$,folderId:L,id:ha,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:hb}],description:"In this lesson, we’ll be covering Computed Properties. These are properties on the Vue instance that calculate a value rather than store a value.",duration:Ax,author:O,lock:F,twitterImage:[{__meta__:{createdBy:Q,createdDate:g_},contentType:E,file:g$,folderId:L,id:ha,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:hb}],facebookImage:[{__meta__:{createdBy:Q,createdDate:g_},contentType:E,file:g$,folderId:L,id:ha,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:hb}],socialSharingDescription:"I'm becoming a Vue Master by watching Intro to Vue.js: Computed Properties",belongsToCourse:cJ},{slug:"components",status:H,date:"2018-03-24T00:10:58+07:00",title:"Components",lessonNumber:ah,free:G,image:[{__meta__:{createdBy:Q,createdDate:hc},contentType:E,file:hd,folderId:L,id:he,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:hf}],description:"In this lesson we’ll be learning components: reusable blocks of code that can have both structure and functionality and create a more modular and maintainable codebase.",duration:"00:06:20",author:O,lock:F,twitterImage:[{__meta__:{createdBy:Q,createdDate:hc},contentType:E,file:hd,folderId:L,id:he,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:hf}],facebookImage:[{__meta__:{createdBy:Q,createdDate:hc},contentType:E,file:hd,folderId:L,id:he,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:hf}],socialSharingDescription:"I'm becoming a Vue Master by watching Intro to Vue.js: Components",belongsToCourse:cJ},{slug:"communicating-events",status:H,date:"2018-04-06T00:00:00-04:00",title:hg,lessonNumber:an,free:G,image:[{__meta__:{createdBy:Q,createdDate:hh},contentType:E,file:hi,folderId:L,id:hj,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:hk}],description:"In this lesson we’ll learn how to communicate from a child component up to its parent.",duration:Ay,author:O,lock:F,twitterImage:[{__meta__:{createdBy:Q,createdDate:hh},contentType:E,file:hi,folderId:L,id:hj,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:hk}],facebookImage:[{__meta__:{createdBy:Q,createdDate:hh},contentType:E,file:hi,folderId:L,id:hj,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:hk}],socialSharingDescription:"I'm becoming a Vue Master by watching Intro to Vue.js: Communicating Events",belongsToCourse:cJ},{slug:"forms",status:H,date:"2018-04-12T00:00:00-04:00",title:hl,lessonNumber:aS,free:G,image:[{__meta__:{createdBy:Q,createdDate:hm},contentType:E,file:hn,folderId:L,id:ho,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:hp}],description:"In this lesson we’ll be learning how to work with forms in Vue in order to collect user input, and also learn how to do some custom form validation.",duration:"00:09:34",author:O,lock:F,twitterImage:[{__meta__:{createdBy:Q,createdDate:hm},contentType:E,file:hn,folderId:L,id:ho,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:hp}],facebookImage:[{__meta__:{createdBy:Q,createdDate:hm},contentType:E,file:hn,folderId:L,id:ho,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:hp}],socialSharingDescription:"I'm becoming a Vue Master by watching Intro to Vue.js: Forms ",belongsToCourse:cJ},{slug:"tabs",status:H,date:"2018-05-08T02:14:40+07:00",title:"Tabs",lessonNumber:bN,free:G,image:[{__meta__:{createdBy:Q,createdDate:Az},contentType:E,file:AA,folderId:L,id:AB,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:AC}],description:"In this lesson, we’ll learn how to add tabs to our application and implement a simple solution for global event communication.",duration:"00:07:32",author:O,lock:G,twitterImage:[{__meta__:{createdBy:Q,createdDate:"2018-05-18T17:06:43.971Z"},contentType:E,file:"1526663202453_1525720998083_11) Tabs.jpg",folderId:L,id:1526663202453,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1526663202453_1525720998083_11%29%20Tabs.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=ErHomfIKj0QHFBRfiui99TcmWtUsInafIF6GjD79mUxLR9zEm4BTdg35uYmp%2FxoGr9feGUoHYFOQhqyWLv5xwMxyeqZObBaM7a9uiwMeQOhPfbfDOhGgtVAplO%2Bg0nuSD3O5c%2FBUzF4KscUEwtoVMDsVh3huO%2B3pOPMsR1706AzhFoeV6CO5uuxs4UUze8aPdmUZB2P1SBQMLXp8sj685MANEuukYMuk9DuihoDxIa8lVjM72NiRupe%2FZ%2FNA6TRYEiG5eXf0kIl9teUez0PswcmPxMT43QvoUMK%2FwqW6PDkM0asp34CbugX%2FOuzU881f4W1f%2BRe8nqoXMO4oMGKP4Q%3D%3D"}],facebookImage:[{__meta__:{createdBy:Q,createdDate:Az},contentType:E,file:AA,folderId:L,id:AB,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:AC}],socialSharingDescription:"I'm becoming a Vue Master by watching Intro to Vue.js: Tabs",belongsToCourse:cJ}],lessonsCount:bN,order:M,parentId:M,slug:"intro-to-vue-js",teachers:[{firstName:cs,lastName:cx,about:cy,image:[{__meta__:{createdBy:c,createdDate:cz},contentType:E,file:cA,folderId:X,id:cB,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cC}]}],test:[1517401504395],title:"Intro to Vue 2"},"1516791397640":{__meta__:{createdBy:gu,createdDate:"2018-01-24T10:56:37.640Z",lastModifiedBy:c,lastModifiedDate:"2024-10-17T20:12:32.397Z",locale:T},category:[{name:d$,color:ea}],completable:G,courseDependencies:J,courseLabelsBar:J,description:"Discover the full functionality of Vue components with Gregg Pollack & Evan You, the creator of Vue.",difficulty:cK,duration:"01:48:28",free:F,id:cL,image:[{__meta__:{createdBy:c,createdDate:"2019-09-25T19:28:29.321Z"},contentType:K,file:"1569439707864_5.png",folderId:R,id:1569439707864,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1569439707864_5.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=LpKX3U9fxkqr1CNNWy4JY8T0Qt47rdb4aqhn1dmlR%2FtSwhje1agHKs%2FV06pmdOWk0C%2B6j7BSkSwLmdkbVFeETZa4awx6hhdDIUOKK0M8bPiCd7b7AKhTsqDkzueszbaezkde5iACh56e467RmIKa%2FhEtVZDEwi%2ByzZngcB3V9t%2FN7I2RNg0XhgWICCUarAR5ijk5b1CHIWjyBp0KPUB2YE7Au0Xk%2Fh4ILqPzPetPAqIYsCO2SLxHw0xRGnTPiO09AXq4OXMNr0VEYalpvZnfHoc1%2BaRP%2B%2F18uSJvY3pNZmhcKzNJM6pW%2BvJUh288X36iCTFmACE2pmASQggMUAHc%2Fg%3D%3D"},{__meta__:{createdBy:c,createdDate:"2022-05-15T19:45:39.729Z"},contentType:K,file:"advanced-components.png",folderId:aR,id:1652643536635,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fadvanced-components.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=AbixjEU9DOaYZc6dPqtd%2FX0caN7FcWf0ELuIkKB%2FnsEQSRRHDVvudU38SKfV11WTJ23KiPfBBMQJ%2BmkDNYRe5vPVb87BPBBSUIIRJAZSb659pERbtbWe2M0nuFK%2FddPvJXEgc31lvrbINlgQ36Uim0jos7jSC7%2FrNuj4QBgVHW%2FYDDNOVAoGY65yGTW1sYmt81oQO3er3ZLC1KQ0fGPtK1lkck0BYCkiMX9S0FG8YMN9oRWgJysrAoEikIoR5B34hRpMUiPjmf8uohZHKTvStwmyt5f2mAL2CR2g06QiAE0j7kqwQuX%2F2235Rcz7F5Axo9IxlXLz3zHkS1b3z1%2BtOg%3D%3D"}],isComingSoon:F,isDraft:F,isPromoted:F,label:ad,latestAt:J,lessons:[{slug:"the-introduction",status:H,date:"2018-05-01T23:00:00+07:00",title:cg,lessonNumber:a,free:G,image:[{__meta__:{createdBy:Q,createdDate:hq},contentType:E,file:hr,folderId:L,id:hs,sizes:[{height:b,quality:a,width:e},{height:b,quality:a,width:f},{height:b,quality:a,width:g},{height:b,quality:a,width:h},{height:b,quality:a,width:i},{height:b,quality:a,width:j},{height:b,quality:a,width:o},{height:b,quality:a,width:p},{height:b,quality:a,width:k},{height:b,quality:a,width:l},{height:b,quality:a,width:q},{height:b,quality:a,width:m},{height:b,quality:a,width:n}],type:d,url:ht}],description:"Why you should take this course and what we'll cover together.",duration:AD,author:P,lock:F,twitterImage:[{__meta__:{createdBy:Q,createdDate:hq},contentType:E,file:hr,folderId:L,id:hs,sizes:[{height:b,quality:a,width:e},{height:b,quality:a,width:f},{height:b,quality:a,width:g},{height:b,quality:a,width:h},{height:b,quality:a,width:i},{height:b,quality:a,width:j},{height:b,quality:a,width:o},{height:b,quality:a,width:p},{height:b,quality:a,width:k},{height:b,quality:a,width:l},{height:b,quality:a,width:q},{height:b,quality:a,width:m},{height:b,quality:a,width:n}],type:d,url:ht}],facebookImage:[{__meta__:{createdBy:Q,createdDate:hq},contentType:E,file:hr,folderId:L,id:hs,sizes:[{height:b,quality:a,width:e},{height:b,quality:a,width:f},{height:b,quality:a,width:g},{height:b,quality:a,width:h},{height:b,quality:a,width:i},{height:b,quality:a,width:j},{height:b,quality:a,width:o},{height:b,quality:a,width:p},{height:b,quality:a,width:k},{height:b,quality:a,width:l},{height:b,quality:a,width:q},{height:b,quality:a,width:m},{height:b,quality:a,width:n}],type:d,url:ht}],socialSharingDescription:"I'm learning about Advanced Components with @greggpollack on my path to Vue Mastery",belongsToCourse:cL},{slug:"build-a-reactivity-system",status:H,date:"2018-05-14T00:00:00-07:00",title:"Build a Reactivity System",lessonNumber:U,free:G,image:[{__meta__:{createdBy:Q,createdDate:hu},contentType:E,file:hv,folderId:L,id:hw,sizes:[{height:b,quality:a,width:e},{height:b,quality:a,width:f},{height:b,quality:a,width:g},{height:b,quality:a,width:h},{height:b,quality:a,width:i},{height:b,quality:a,width:j},{height:b,quality:a,width:o},{height:b,quality:a,width:p},{height:b,quality:a,width:k},{height:b,quality:a,width:l},{height:b,quality:a,width:q},{height:b,quality:a,width:m},{height:b,quality:a,width:n}],type:d,url:hx}],description:"Let's build a simple reactivity system using the very same techniques you’ll find in the Vue source code.",duration:AE,author:P,lock:G,twitterImage:[{__meta__:{createdBy:Q,createdDate:hu},contentType:E,file:hv,folderId:L,id:hw,sizes:[{height:b,quality:a,width:e},{height:b,quality:a,width:f},{height:b,quality:a,width:g},{height:b,quality:a,width:h},{height:b,quality:a,width:i},{height:b,quality:a,width:j},{height:b,quality:a,width:o},{height:b,quality:a,width:p},{height:b,quality:a,width:k},{height:b,quality:a,width:l},{height:b,quality:a,width:q},{height:b,quality:a,width:m},{height:b,quality:a,width:n}],type:d,url:hx}],facebookImage:[{__meta__:{createdBy:Q,createdDate:hu},contentType:E,file:hv,folderId:L,id:hw,sizes:[{height:b,quality:a,width:e},{height:b,quality:a,width:f},{height:b,quality:a,width:g},{height:b,quality:a,width:h},{height:b,quality:a,width:i},{height:b,quality:a,width:j},{height:b,quality:a,width:o},{height:b,quality:a,width:p},{height:b,quality:a,width:k},{height:b,quality:a,width:l},{height:b,quality:a,width:q},{height:b,quality:a,width:m},{height:b,quality:a,width:n}],type:d,url:hx}],socialSharingDescription:"I'm learning how the Vue.js magical reactivity works by building my own reactivity system.",belongsToCourse:cL},{slug:"evan-you-on-proxies",status:H,date:AF,title:"Evan You on Proxies",lessonNumber:ah,free:G,image:[{__meta__:{createdBy:Q,createdDate:"2018-06-25T16:09:14.563Z"},contentType:E,file:"1529942951214_proxy.jpg",folderId:L,id:1529942951214,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1529942951214_proxy.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=gRGy6eVicabV6WXF2ZarUWyiDi0pMekYntLq%2B%2BrkSU2KzEQOaq1SNz5UuJUcwaY3ANyBCUO5gvjTw1jKBGut%2BFzo6luZmWWCTVBCCb2iFOczawvcY9f5DP1UM8IjObbs0YSjKfLM8fuvJNf1hMZdVAbbgGSluiAiSTxYSE1ByegFJMJocpLlFR5vowCGkhLqPR3Rs70BUOPTc4RlAqV4zDHbH%2BnevnIOpvqcXMFoMj82H6gMZNWzxuI2FwygKjCBWOd2263RXdMSNlogO7vNjNaTd%2BUMr869SnC9XwO9AHGapEsk5d8TqADdIXTZBz5bFAgmQELZlIxIPQO8Cgiwpw%3D%3D"}],description:"Watch commentary with Evan You explaining proxy based reactivity.",duration:AG,author:P,lock:F,twitterImage:[{__meta__:{createdBy:Q,createdDate:AH},contentType:E,file:AI,folderId:L,id:AJ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:AK}],facebookImage:[{__meta__:{createdBy:Q,createdDate:AH},contentType:E,file:AI,folderId:L,id:AJ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:AK}],socialSharingDescription:"I just watched Evan You's commentary on reactivity with proxies while on my path to @vuemastery",belongsToCourse:cL},{slug:"reactivity-in-vue",status:H,date:"2018-05-22T00:00:00-04:00",title:"Reactivity in Vue.js",lessonNumber:ab,free:F,image:[{__meta__:{createdBy:Q,createdDate:"2018-05-18T16:36:18.079Z"},contentType:E,file:"1526661376255_3) Reactivity in the Vue.js Source - Slide.jpg",folderId:L,id:1526661376255,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1526661376255_3%29%20Reactivity%20in%20the%20Vue.js%20Source%20-%20Slide.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=JiXYhQdwSZ2lEQiHvQEj3NgrjnSbm0DC0nkKAB1fM6qx%2FbdTSmgQqknvbFCxXiPaKxZdmXG2FdmBc1GYdTbbE7Djcx8Y6LGnWLwMxxxpr7pl03snKViTMqWV0G40aKwVzcnr5qQnscFKmqUV6jbtH1TiJlux2fDL9ABqDuT6sVs5OWDZvMCaYLLEAOx7dTsiFkEqiNuAcBUjWA3GPk5gSEy4ve2AoobD0h9SQxTOG0o7EoEP8pD8vDHXEov4iFEcg%2BezY8mjQA%2FyB9oMVbVSCEUCrV4s09w7rH%2F6%2F5x1VhFOJq2ClPPBBfqEWxg%2F145DahuwXeWcrFDmkMtCvFCRog%3D%3D"}],description:"Let's dive into the Vue.js source code to discover where reactivity lives and how things work under the hood.",duration:"00:13:44",author:P,lock:F,twitterImage:[{__meta__:{createdBy:Q,createdDate:AL},contentType:E,file:AM,folderId:L,id:AN,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:AO}],facebookImage:[{__meta__:{createdBy:Q,createdDate:AL},contentType:E,file:AM,folderId:L,id:AN,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:AO}],socialSharingDescription:"I’m learning where reactivity lives inside Vue.js with Gregg Pollack on my path to Vue Mastery",belongsToCourse:cL},{slug:"evan-you-vue-core",status:H,date:AF,title:"Evan You on Vue Core",lessonNumber:ah,free:F,image:[{__meta__:{createdBy:Q,createdDate:"2018-06-25T18:16:04.211Z"},contentType:E,file:"1529950562596_conceptual.jpg",folderId:L,id:1529950562596,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1529950562596_conceptual.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=ZaCbXTef%2Fky2%2F%2FRlTjXgku1CIbXaAY%2FMA2feUuDRNhs5W8u3wYi%2FlehLDBw494NWWwUsOOoZaV06y4SWCOcbXq7J8%2BLoO9%2FxqupJDrFZvrg4IpHYz9c5MYogyFDiImHdhiHor%2BT2HIxhYGy%2F%2Fa9g9lRoN7FEU0rguIOqR7hv1PfYg7Zu2Ch4UDK0beiNw8JOi5rTW0gZ1UD9R%2BEYDZlLduTufvflx2ihXOh94wEIYCMw3DrqaUhQJZj%2F0fjhpIDkAm74%2FpPoR9DwBKXDlY6BmW7bfXRuaLMUewGvWTuRurB%2Fy6XAgOJTLewsd01I3DxmOFWb8SwYRPN0V4vBBVaBPQ%3D%3D"}],description:"Take a tour of the Vue.js source code with Evan You, the founder of Vue.",duration:"00:10:18",author:P,lock:F,twitterImage:[{__meta__:{createdBy:Q,createdDate:AP},contentType:E,file:AQ,folderId:L,id:AR,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:AS}],facebookImage:[{__meta__:{createdBy:Q,createdDate:AP},contentType:E,file:AQ,folderId:L,id:AR,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:AS}],socialSharingDescription:"I watched a tour of @Vuejs by Evan You on my path to @vuemastery. ",belongsToCourse:cL},{slug:"template-compilation",status:H,date:"2018-05-29T23:00:00+07:00",title:"Template Compilation",lessonNumber:ac,free:F,image:[{__meta__:{createdBy:Q,createdDate:"2018-05-24T21:37:10.682Z"},contentType:E,file:"1527197828856_Question.jpg",folderId:L,id:1527197828856,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1527197828856_Question.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=j%2B6RwbB5x%2BnRUsa8%2BN6REi%2BcZGW4QoYXVVTMTMzV9eY2a%2BfQMn56sol7DGIhqLc5jSQrn7zOQUTauPzTnkHQqbINooZp%2Bxcq0NZ9Dn0BVbUDw01TZTpog2q1u068M2wK26iDlvShgqTj7U56mezDEJocavsyDd%2FjT3wpJzK%2BCWDrY68jq%2Borup7s1zDE%2Bl%2B1D8MHJsK0WcfLVMs3Bfw%2FHLx8quWSPwe8pSscs88ESU5keMvigLJ8t1ak2nvJE3ontRETbfJaW8W5%2FrGvmr0Y%2BM1geM9NPYoaHgHQnxmY%2B1tXsc2cX6ThzKqVCI5YHBsxeBLssZNxZ2F6upfUMYFxIA%3D%3D"}],description:"Stepping through the Component rendering process will help us unlock powerful patterns and lead to greater understanding.",duration:"00:14:15",author:P,lock:F,twitterImage:[{__meta__:{createdBy:Q,createdDate:AT},contentType:E,file:AU,folderId:L,id:AV,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:AW}],facebookImage:[{__meta__:{createdBy:Q,createdDate:AT},contentType:E,file:AU,folderId:L,id:AV,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:AW}],socialSharingDescription:"I’m learning how the component rendering process works with @greggpollack on my path to Vue Mastery.",belongsToCourse:cL},{slug:"evan-you-on-virtual-dom",status:H,date:"2018-07-03T23:00:00+07:00",title:"Evan You on the Virtual DOM",lessonNumber:22,free:F,image:[{__meta__:{createdBy:Q,createdDate:"2018-06-29T21:11:34.152Z"},contentType:E,file:"1530306692852_VDom discussion 2.jpg",folderId:L,id:1530306692852,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1530306692852_VDom%20discussion%202.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=GLpo2oBj2zz3%2B6zkWAKWWOpOonu4gw5xNtQhNEprkzMhULiQ%2B5Kky%2BUbPRrhvwVnw8o9Ft9VZyuT%2BMRV84lVEIi153R2N8Rp8mokXieHvdiV%2FegDBHDKDa4Tm6y%2BBcnvaqUDvMKwopVqUvrNkmR%2Fv%2FOR2%2Fd0t24yPvXtWvskDf1l75UFU056NW8%2FpWAu5oR7LGrOgMQ2%2BQE9PlQyRb2aSQF6rUphkkYwi%2BANErt6PrgPAUx9mWK%2B6x2hVXqib0UkAm3Ut%2Bpqo3CMvQlMBFXf7MXRTGSkQhe0IBFWydofIhtZAZ1RfY6Dyd%2BjvVhyGp4N%2BFI7k31%2BW5W3dy8lSfAovA%3D%3D"}],description:"Evan You on the past, present, and future of the Virtual DOM",duration:hy,author:P,lock:F,twitterImage:[{__meta__:{createdBy:Q,createdDate:AX},contentType:E,file:AY,folderId:L,id:AZ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:A_}],facebookImage:[{__meta__:{createdBy:Q,createdDate:AX},contentType:E,file:AY,folderId:L,id:AZ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:A_}],socialSharingDescription:"I just learned about the past, present, and future of the Virtual DOM with Evan You on @vuemastery",belongsToCourse:cL},{slug:"functional-components",status:H,date:"2018-06-05T23:00:00+07:00",title:" Functional Components",lessonNumber:W,free:F,image:[{__meta__:{createdBy:Q,createdDate:"2018-05-25T22:36:54.441Z"},contentType:E,file:"1527287812598_functional-components.jpg",folderId:L,id:1527287812598,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1527287812598_functional-components.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=cLomgaF%2F1zcqQJ1F1AOV1qBKRkvWj%2BtTKbo%2FkHhypUUvxS1hh8cC6dnlMnfw%2FiawGPnIfJZ3DGzIW0%2BK4dcNubIAOK4jN401PnqXT9I9Kwvbz9v3htZk1%2FgQX9n9ZOpEqc77XAvqwmcXMUeGO4RK78zga3trnFjivD3rAaLLb%2BFQpQQwGCeVLFsv2yPFI16FjQIICzRZnMQAav5LJw3eU7%2B2%2FXJHTR%2FLKOKekpIuUISXrzTOkq573cdk7877pOOfRXwE6L79O2GrVLyCwsT8sV%2B3GK35hUtS7feIYFEtsr9jwl1%2FEi1Z5bFdkZDAQUMkJwePGLREe1QrKxUPG21wMQ%3D%3D"}],description:"Functional Components can help you scale if you use them as fast-loading presentational components or wrapper components that delegate.",duration:A$,author:P,lock:F,twitterImage:[{__meta__:{createdBy:Q,createdDate:Ba},contentType:E,file:Bb,folderId:L,id:Bc,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Bd}],facebookImage:[{__meta__:{createdBy:Q,createdDate:Ba},contentType:E,file:Bb,folderId:L,id:Bc,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Bd}],socialSharingDescription:"I'm using Functional Components to help scale my app, and I learned about them in @GreggPollack's Advanced Components course.",belongsToCourse:cL},{slug:"evan-you-on-functional-components",status:H,date:"2018-07-03T12:00:00-04:00",title:"Evan You on Functional Components",lessonNumber:bN,free:F,image:[{__meta__:{createdBy:Q,createdDate:"2018-06-29T21:38:17.248Z"},contentType:E,file:"1530308295658_Vue router.jpg",folderId:L,id:1530308295658,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1530308295658_Vue%20router.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=WJJEIVU5o2%2FSsEuEOppzzLBwPnHaL63bYZ0n9n54v1Sf5J38ATsTmFS2Ntkw1tcRyukHvV1zxRKecFxWFL%2FaX25HYIyh0YiOBM7SqydUxf8Kj9j4Kybys2pD8jLG6beFvSwN03vf%2Ft%2B%2FRqsIK5dGfYO0IgTc8Rf7tOcGx7qh5MIdo3pJuuBghLesl3rOjja4KJCu8lAVmmvYfrHLzIEBIY9L1CIk9Hu8jwCKGCvYkvL4tu2X22dDlrmxX%2BdKnGzhBFrfCw2dKh8EKUhjfB31WtUzMfN%2FVIiErxU08mLewtYLb4Qq85inJkz9HPH6SJC94q4UcDIGp7sfglMiCSKuow%3D%3D"}],description:"Evan You speaks on the two major use cases for functional components.",duration:Be,author:P,lock:F,twitterImage:[{__meta__:{createdBy:Q,createdDate:Bf},contentType:E,file:Bg,folderId:L,id:Bh,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Bi}],facebookImage:[{__meta__:{createdBy:Q,createdDate:Bf},contentType:E,file:Bg,folderId:L,id:Bh,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Bi}],socialSharingDescription:"I learned about the two major use cases for functional components from Evan You on @VueMastery",belongsToCourse:cL},{slug:"mounting-process",status:H,date:"2018-06-12T23:00:00+07:00",title:" The Mounting Process",lessonNumber:S,free:F,image:[{__meta__:{createdBy:Q,createdDate:"2018-06-11T18:23:39.412Z"},contentType:E,file:"1528741418137_understanding_mounting.jpg",folderId:L,id:1528741418137,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1528741418137_understanding_mounting.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=PObPkS%2Blu5KbdlzlhS7qbzNvBczMnr9ua8BcF3KHpqsDsNqn%2BQt4HulOqr14yedH0pfFpAc4qlAih0ji8KB3%2BSK7GAbLjUk%2FiPLvwjE4y%2FNLjrzPRb7CCt94iuTiGYCmx%2B0nxoYM%2BspVgtX0LhHMSl85WtJKT3m5cA52o1uqgQvbxU82EEbmOxD4lRdfwaxaw17uCnjefxqptE4W81xYYGMr6d78x22ZrjnaApPRkD7YlHq7L9eSr02anBrqhm1HW4OvXH02uNeci4BNb%2BpnATSQubKVwj3SSY036IxNShiv8LGSJrXETrzD%2BHcdns0Tva4zoH2NpL%2Fm4ikAVRpCew%3D%3D"}],description:"Learning about how Vue mounts from the virtual DOM to the actual DOM can help us improve our debugging skills and understanding of the framework.",duration:"00:10:31",author:P,lock:F,twitterImage:[{__meta__:{createdBy:Q,createdDate:Bj},contentType:E,file:Bk,folderId:L,id:Bl,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Bm}],facebookImage:[{__meta__:{createdBy:Q,createdDate:Bj},contentType:E,file:Bk,folderId:L,id:Bl,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Bm}],socialSharingDescription:"I'm learning how the Vue.js Mounting process works on my path to @VueMastery",belongsToCourse:cL},{slug:"evan-you-on-mounting-process",status:H,date:"2018-07-10T00:00:00-04:00",title:"Evan You on the Mounting Process",lessonNumber:32,free:F,image:[{__meta__:{createdBy:Q,createdDate:"2018-06-30T00:24:07.375Z"},contentType:E,file:"1530318244166_mounting.jpg",folderId:L,id:1530318244166,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1530318244166_mounting.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=IQ%2F1r4AEps%2BvMdDyCK1aDBC2OIHKDSaZVDFo%2F9lg0gshuuD47hM0PlBMf0ouIJP7ZtBC%2FLidYa%2BtH%2ByswHvFmejlg2Cwlah80QgtnXOCA8xPLnPV%2Fi%2By5W9oIKXyw2pnTiFHmDX4c0XwM41ZkKqFvtxKQGnd9IA1hBXvoNsNRR3VziEZ2ZeEybE9yjDJZtWvtpWWj2vr366%2FDxE85Sv1DAzLJrMFXrLNCgEfEAcIyihXQWA1f2oh5D%2Fmxg7H5Mlw5SnDu69PXjBq7tsXz5Hec6o8IBjdTLKRyLsR9lr24mWTBHHw3wgzy9xJ8OX4t87f0eH7%2Bg%2BRKGu9B5JoSNgPCQ%3D%3D"}],description:"Evan You gives us a tour of the platform directory and what to expect in Vue 3.",duration:"00:08:32",author:P,lock:F,twitterImage:[{__meta__:{createdBy:Q,createdDate:Bn},contentType:E,file:Bo,folderId:L,id:Bp,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Bq}],facebookImage:[{__meta__:{createdBy:Q,createdDate:Bn},contentType:E,file:Bo,folderId:L,id:Bp,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Bq}],socialSharingDescription:"Evan You, the creator of Vue, just gave me a tour through the Vue.js mounting code on @VueMastery",belongsToCourse:cL},{slug:"render-props-scoped-slots",status:H,date:"2018-06-19T23:00:00+07:00",title:"Scoped Slots & Render Props",lessonNumber:ae,free:F,image:[{__meta__:{createdBy:Q,createdDate:"2018-06-13T17:52:04.229Z"},contentType:E,file:"1528912322282_scoped-slot.jpg",folderId:L,id:1528912322282,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1528912322282_scoped-slot.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=LEqfA%2FMjs3RntzcMhdyBOor0UH%2FAVr4pbJcGV1es7BojsJeX%2Fg0nU0UDmMq1Qky30qtwTxCKL%2Fo%2BcUFiedzvi1wouRcYcQKm14R%2FA1SmNxZArLLjb8P%2Fwbcc5CkckgucqLw9FDlIvVzJA1XUJnx0rZHVGMz0xFiZzbkeiC%2B5aHRjNojQGESsT0zAFO2Dgu3g2dX%2BhQ%2Bxu1ydWT63hTwfCXzl%2ByoSWBFh%2BBhcf%2Fyh6ztOgZikXKtvnErYjcTBalBH9%2FjBOwI04CluxFkAdkExU%2BWOxOtoXGHeHIJrHoxYm3dON%2BXFh9fjzamM8BXQ6EOfEgJOYOxG%2B895tncGUX82zg%3D%3D"}],description:"Create reusable components by learning about the Scoped Slot and Render Props patterns.",duration:"00:09:22",author:P,lock:F,twitterImage:[{__meta__:{createdBy:Q,createdDate:Br},contentType:E,file:Bs,folderId:L,id:Bt,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Bu}],facebookImage:[{__meta__:{createdBy:Q,createdDate:Br},contentType:E,file:Bs,folderId:L,id:Bt,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Bu}],socialSharingDescription:"I learned how to create more flexible and maintainable components with Scoped Slots & Render Props, with @greggpollack at @vuemastery.",belongsToCourse:cL}],lessonsCount:dN,order:bN,parentId:M,slug:"advanced-components",teachers:[{firstName:dw,lastName:dx,about:dy,image:[{__meta__:{createdBy:c,createdDate:dz},contentType:E,file:dA,folderId:X,id:dB,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:dC}]}],title:"Advanced Components"},"1517408682678":{__meta__:{createdBy:gu,createdDate:"2018-01-31T14:24:42.678Z",lastModifiedBy:c,lastModifiedDate:"2023-03-02T14:18:49.109Z",locale:T},category:[{name:d$,color:ea}],completable:G,courseDependencies:J,courseLabelsBar:J,description:"Past the basics, we’ll show you more techniques that are needed to ship Vue applications. Topics include Vue CLI, Vue Router, Single File Components, and API calls.",difficulty:bM,duration:"01:31:36",free:F,id:cf,image:[{__meta__:{createdBy:c,createdDate:"2019-09-25T19:29:00.631Z"},contentType:K,file:"1569439739264_1.png",folderId:R,id:1569439739264,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1569439739264_1.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=KH9Fqre%2FwC7MKOdEU73oGTgSBylXk9ec%2BdyPCCL0QqwtfCCydk6hDrkr6nPC%2BhTVMHHKx%2BMqM06X5uYhoHx%2FrabBp09TCYMMgVoPK6BnKYlElAklHZDxO8vhVMdhtWj1gYP2QYtehhZMi0ZIX5IsK7P7fiLhT17Fla7gZbWWryWREds5Llr4gZdd9hQ92eSwGnJ401n2WVAJyQmo4hm4KN4taX3hwVh%2FVv52%2FiL7BY%2FhUsW3914Zv%2BrS2dx9KP30BKGVhpv%2F6wgJ0ZfSOaoW6BhrT1ugPanZjdQWyBN%2Bvzp3aNQs%2BV6YJMLo%2BRUqDqkwba0Mup75yloJeLO%2BCoKddA%3D%3D"},{__meta__:{createdBy:c,createdDate:"2022-05-15T19:45:47.467Z"},contentType:K,file:"real-world-vue-js.png",folderId:aR,id:1652643709008,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Freal-world-vue-js.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=JsILwtR0UHHTczHlLkB6R%2B61%2B6cvq3z8oW%2FZWOcKWvUyW36jBfaGSDAQB3Z8lfXWEf3kbig5P9GrVOu6QNeMol9HPQlvMoL4gye%2BPyccuAzl3KuSEXaSXq3p3LE9dfowIdRRUI65K6I3rK0cMHk6S8T8CKCF%2BK%2BAqY9nxkV5zer5U%2BhzU6aYX8WvIlATKnkyamD%2BuK%2BB8AeuL6VPmdZ9ne8FYvwWwSTTyfHcdSgrP1jotihqWUF9LJHncVRqabVs%2Flrmy3wGMa8E77E3C2Yz5ewnBliIMyJ1cBjt6GAlB8b7px2aNPJ8G%2BKJft8U3Rb1w8rpC7MpKGiCo66myjQI3w%3D%3D"}],isComingSoon:F,isDraft:F,isPromoted:F,label:eY,lessons:[{slug:"real-world-intro",status:H,date:"2018-05-16T14:19:16-04:00",title:"Intro to Real World Vue",lessonNumber:a,free:G,image:[{__meta__:{createdBy:Q,createdDate:hz},contentType:E,file:hA,folderId:L,id:hB,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:hC}],description:"A guided journey of building a production level app together, from installation to deployment.",duration:"00:00:57",author:cs,lock:F,twitterImage:[{__meta__:{createdBy:Q,createdDate:hz},contentType:E,file:hA,folderId:L,id:hB,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:hC}],facebookImage:[{__meta__:{createdBy:Q,createdDate:hz},contentType:E,file:hA,folderId:L,id:hB,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:hC}],socialSharingDescription:"I'm learning how to build a Real World Vue application with @VueMastery & @AdamJahr",belongsToCourse:cf},{slug:"vue-cli",status:H,date:"2018-07-17T00:00:00-07:00",title:"Vue CLI 3 - Creating our Project",lessonNumber:U,free:G,image:[{__meta__:{createdBy:Q,createdDate:hD},contentType:K,file:hE,folderId:L,id:hF,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:hG}],description:"Learn how to create a project with Vue CLI 3 from the command line and with the Vue UI. Then learn how the project is structured and how the app is getting loaded.",duration:Bv,author:O,lock:G,twitterImage:[{__meta__:{createdBy:Q,createdDate:hD},contentType:K,file:hE,folderId:L,id:hF,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:hG}],facebookImage:[{__meta__:{createdBy:Q,createdDate:hD},contentType:K,file:hE,folderId:L,id:hF,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:hG}],socialSharingDescription:"I'm learning all about Vue CLI 3 in @vuemastery's Real World Vue course!",belongsToCourse:cf},{slug:"optimizing-your-editor",status:H,date:"2018-07-23T00:00:00-07:00",title:"Optimizing your Editor",lessonNumber:ab,free:F,image:[{__meta__:{createdBy:Q,createdDate:hH},contentType:K,file:hI,folderId:L,id:hJ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:hK}],description:"Learn how to configure your code editor for an optimized Vue development experience",duration:Bw,author:O,lock:G,twitterImage:[{__meta__:{createdBy:Q,createdDate:hH},contentType:K,file:hI,folderId:L,id:hJ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:hK}],facebookImage:[{__meta__:{createdBy:Q,createdDate:hH},contentType:K,file:hI,folderId:L,id:hJ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:hK}],socialSharingDescription:"I learned how to set up Visual Studio @code for Vue Development from @vuemastery's Real World Vue course!",belongsToCourse:cf},{slug:"vue-router",status:H,date:"2018-07-31T23:00:00+07:00",title:"Vue Router Basics",lessonNumber:ac,free:F,image:[{__meta__:{createdBy:Q,createdDate:"2018-07-30T20:35:06.759Z"},contentType:E,file:"1532982905352_front.jpg",folderId:L,id:1532982905352,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1532982905352_front.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=VlhwjaO2tjXS6xsftPMeNXjGYnNdawOdJMBo4hhhLps9pKA70Y90ZnEc3NL7cFkQhih3YL4F0AbdByu3KUaYcM4BRmjAkShdknazYGZM6075rZLH2mnlnmzNUyfGWYrQQZy7HS9sIW1LpcSllZwgqFxmlFSXGC4lWLl%2BXnZ3Ql2K9DShxWO9UOQvzbO7J60ce4uTD5RyBXR%2FPRtBuEuSn7vpNXpFPBc5q6SXGDZz%2BvGMvL3flwAkL4ts4e%2F3wlJuB1mn5XlKGD%2BcU2iCHeq3Ci3PEGyqgGatwNCNKIjWk3%2FHA5Z2fs5QwgJz2WauX%2BAZpNjkbl3yRsNZzM8%2BxDTzIA%3D%3D"}],description:"How to use Vue Router to navigate through your content in a Vue single page application.",duration:"00:15:16",author:P,lock:G,twitterImage:[{__meta__:{createdBy:Q,createdDate:Bx},contentType:E,file:By,folderId:L,id:Bz,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:BA}],facebookImage:[{__meta__:{createdBy:Q,createdDate:Bx},contentType:E,file:By,folderId:L,id:Bz,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:BA}],socialSharingDescription:"I learned how to build single page applications using Vue Router on my path to @VueMastery. ",belongsToCourse:cf},{slug:"dynamic-routing-history-mode",status:H,date:"2018-08-07T23:00:00+07:00",title:"Dynamic Routing & History Mode",lessonNumber:W,free:F,image:[{__meta__:{createdBy:Q,createdDate:"2018-08-06T00:34:59.382Z"},contentType:E,file:"1533515697326_front.jpg",folderId:L,id:1533515697326,type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1533515697326_front.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=v3oP4LX9hrUfDo%2FhmTzwHmvgXVUQRnA1Ypnl5IhU%2Br3vhF3jfE54O0iX7lN8QbGCDJ6uTXl0KC1jdht7mFesONrdSg1bhgRBWSDTFtY%2FjmOFeGw1pSrinOZmb%2FqVW09kojIZrMg4XIloQ8ialTQih29q0QrGLDYWuIHzGuMJXIy813qMx4afR%2BZtr2XOxo0c%2BQfXwxLOs%2B91HsS9JZQwtqas6ouBmcEY73a87PguMWV08gx2Ybyehn8cEYrEZJ0gObpJHlgjEW7JIvzCJZ25IsiuGP2v%2BERnUA%2FmuHxfnNQV%2BygCJrX%2F9CzduvBVb%2B8R%2FBGPxNo46%2FZUfyuwYGslNw%3D%3D"}],description:"Create routes with dynamic segments and learn how to use HTML5 History Mode with SPAs.",duration:BB,author:P,lock:G,twitterImage:[{__meta__:{createdBy:Q,createdDate:BC},contentType:E,file:BD,folderId:L,id:BE,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:BF}],facebookImage:[{__meta__:{createdBy:Q,createdDate:BC},contentType:E,file:BD,folderId:L,id:BE,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:BF}],socialSharingDescription:"I know how to create dynamic segments and get rid of that pesky hash in my URLs thanks to @VueMastery.",belongsToCourse:cf},{slug:"single-file-vue-components",status:H,date:"2018-08-14T23:00:00+07:00",title:"Single File Vue Components",lessonNumber:S,free:F,image:[{__meta__:{createdBy:Q,createdDate:hL},contentType:K,file:hM,folderId:L,id:hN,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:hO}],description:"Learn about the anatomy of a single file .vue component, how to use components together, work with scoped styles, and more.",duration:"00:14:21",author:O,lock:G,twitterImage:[{__meta__:{createdBy:Q,createdDate:hL},contentType:K,file:hM,folderId:L,id:hN,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:hO}],facebookImage:[{__meta__:{createdBy:Q,createdDate:hL},contentType:K,file:hM,folderId:L,id:hN,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:hO}],socialSharingDescription:"I'm learning about Single File Components in @vuemastery's Real World Vue course!",belongsToCourse:cf},{slug:"global-components",status:H,date:"2018-08-19T00:00:00-07:00",title:"Global Components",lessonNumber:ae,free:F,image:[{__meta__:{createdBy:c,createdDate:hP},contentType:K,file:hQ,folderId:L,id:hR,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:hS}],description:"Learn how to globally register components that can seamlessly be used throughout your app.",duration:"00:08:41",author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:hP},contentType:K,file:hQ,folderId:L,id:hR,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:hS}],facebookImage:[{__meta__:{createdBy:c,createdDate:hP},contentType:K,file:hQ,folderId:L,id:hR,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:hS}],socialSharingDescription:"I'm learning how to globally register components in @vuemastery's Real World Vue course!",belongsToCourse:cf},{slug:"slots",status:H,date:"2018-08-28T00:00:00+01:00",title:BG,lessonNumber:ah,free:F,image:[{__meta__:{createdBy:c,createdDate:hT},contentType:K,file:hU,folderId:L,id:hV,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:hW}],description:"Learn how slots can make your component's templates more flexible.",duration:BH,author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:hT},contentType:K,file:hU,folderId:L,id:hV,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:hW}],facebookImage:[{__meta__:{createdBy:c,createdDate:hT},contentType:K,file:hU,folderId:L,id:hV,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:hW}],socialSharingDescription:"I'm learning how slots can make my Vue components more flexible in @vuemastery's Real World Vue course!",belongsToCourse:cf},{slug:"API-calls-with-Axios",status:H,date:"2018-09-03T00:00:00-07:00",title:"API calls with Axios",lessonNumber:ah,free:F,image:[{__meta__:{createdBy:c,createdDate:"2018-09-03T18:13:23.266Z"},contentType:E,file:"1535998402191_Api-called.jpg",folderId:L,id:1535998402191,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1535998402191_Api-called.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=G6viILn6woYjz9KW60Kljw5HyZMHzlyEJsMkelbkhbH99JQ8VVGlPGHxOsJwaDbxSGG7WtrgikYe0u97QqpikSFNzi%2FneIHLtwWFvRHMnRCpObroRm2QGWipgcXTRGYTfQK761bxUSIZfiiLne9PRHlplP%2FwgpIPbWz0p9KTeONUow0rwNwjQZcO1GDGnNZwyqzOWMovpMzVr8MAySbst6Q99S%2FQHNmoet9ockniR08nSD6mDwWNtD1OJgaOZHWFI8lwgKVk1cKHcbnp57hiiV8OneUpW5pA50oXGkdNWfVZ8Ra9vjoXZKQycpAwQayjGKI7Q2%2Bn72jHA3mSu4ri8g%3D%3D"}],description:"Learn how to load data from an API into your Vue application using the Axios library. Then we'll modularize our code into a service.",duration:"00:17:52",author:P,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:BI},contentType:E,file:BJ,folderId:L,id:BK,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:BL}],facebookImage:[{__meta__:{createdBy:c,createdDate:BI},contentType:E,file:BJ,folderId:L,id:BK,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:BL}],socialSharingDescription:"I learned how to use APIs with Vue and wrap them in Services using @VueMastery's Real World Vue course.",belongsToCourse:cf}],lessonsCount:an,order:U,parentId:M,slug:"real-world-vue-js",teachers:[{firstName:cs,lastName:cx,about:cy,image:[{__meta__:{createdBy:c,createdDate:cz},contentType:E,file:cA,folderId:X,id:cB,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cC}]},{firstName:dw,lastName:dx,about:dy,image:[{__meta__:{createdBy:c,createdDate:dz},contentType:E,file:dA,folderId:X,id:dB,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:dC}]}],title:"Real World Vue 2"},"1539806977174":{__meta__:{createdBy:c,createdDate:"2018-10-17T20:09:37.178Z",lastModifiedBy:c,lastModifiedDate:"2024-02-15T17:28:55.080Z",locale:T},category:[{name:d$,color:ea},{name:"Nuxt 2",color:"#009c0b"}],completable:G,courseDependencies:J,courseLabelsBar:"This course was created with Nuxt 2.3.4. Please check the [Nuxt docs](https:\u002F\u002Fnuxtjs.org\u002Fdocs\u002F2.x\u002Fget-started\u002Finstallation) if you run into any issues using a newer version.",description:"Once you are comfortable with Vue, learning a framework like Nuxt.js allows you to create production-ready web apps which follow best practices. ",difficulty:aQ,duration:"01:34:19",free:F,id:c_,image:[{__meta__:{createdBy:c,createdDate:"2019-09-25T19:29:49.456Z"},contentType:K,file:"1569439788329_9.png",folderId:R,id:1569439788329,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1569439788329_9.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=MoGE1uQ%2BwM2vIEYzSYpkJYziNNQuGTNGr7LqJyRbqQQoCvhaEo7WpXrQOfTbUuMffWLzq1kqMROo4H59lz4I5Hox484WwRItIl732%2BxlYJD%2BsmEfTZFoIfa88O4fTPZPA9OydBBEkAr18LtdOcuuYWSdBsPxX7Xiej3t9LK9Ubs9MRuFH5r0HgNbix03zBxZfhNX1RziTSr3VOPI85P0DmMpITxl4R39p4KVJwu4HHVhJwI0QIcU1scBs2igV8HwAOyl3117gGWIfe2XvTNUDZyw2fwdX3BxzaaMNiUS3TLERgLY32SE69XCj%2BzAb9zAqH%2FfUQX%2BpDwIzbz%2BriCpuw%3D%3D"},{__meta__:{createdBy:c,createdDate:"2022-05-15T19:45:47.002Z"},contentType:K,file:"scaling-vue-with-nuxt-js.png",folderId:aR,id:1652643723474,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fscaling-vue-with-nuxt-js.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=MCm%2B0FpngV9qr2B39IlNfJBe4%2BIvaNMjikEZ1BTHiwcOdnTM4SS9cKSsTNF0TTzIAoxnShfL9E8Zv%2Fj%2B8Tsr6QalJln8hVxcjNzz0tx%2BIKY299LX730dEYRKjiB22MFjlvjKtrUvSDS7LnCTgACe7uK%2BJsG1gnoPjB3MpB1u9B0iSFKeDkNA1UgsSkgiVFl1dLNh710nVGHkUwmnA9HvLw8y%2BrxHSu0s6w4NbIl2J5rxiI2y3g3k8LYr2Sr77ucmfR1v7WhdOTo9y9MThhqFgLx4KBrg3DcxnatRunlc04vLYwsOT%2FDe%2BNvsl%2FB6tFV8Rlsj0CSj3FDGvfKDAr2R9w%3D%3D"}],isComingSoon:F,isDraft:F,isPromoted:F,label:ad,lessons:[{slug:"why-use-nuxt",status:H,date:"2019-01-30T00:00:00+07:00",title:"Why Use Nuxt.js?",lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:"2019-01-25T20:26:42.222Z"},contentType:E,file:"1548448000348_screen.jpg",folderId:ao,id:1548448000348,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1548448000348_screen.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=vgoFt6hyjbjigrUqvu5U9i7Es5HIGRmtaWPEI1HYkOq6%2BbsVwI9BTHXY32MVELXX9l3huTEcTRzUVj2YtTZrkCjF4goOj6%2BVVkE8%2BKgzYCAuu%2BTkZiAO8VUSBjCUGbpmLeN%2BikH%2BClHYdSLGlP781qxteHwtA%2FhmF0tfOFfRw3cu16LgDJ3QoQNxDnXGk820QrnHdbJvqTFOygNtf7Tp%2BROPQnRvYC9QheXfFpcB68l9KBD9pu80AluZyIk%2BcFgq1RO%2BYNAGm2YMONnAtQAMQYYxeSxXa74J9EYuzA2Hd8hJKP5o6WI2Y3MLzdPr1yXlLBd4VMYXr4u7PiEctXJ%2B7w%3D%3D"}],description:"7 Problems you can avoid by using Nuxt.js for your next Vue app",duration:BM,author:P,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:BN},contentType:E,file:BO,folderId:ao,id:BP,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:BQ}],facebookImage:[{__meta__:{createdBy:c,createdDate:BN},contentType:E,file:BO,folderId:ao,id:BP,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:BQ}],socialSharingDescription:"I learned about the 7 Problems you can avoid by using @Nuxt_js for your next Vue app",belongsToCourse:c_},{slug:"creating-a-nuxt-app",status:H,date:"2019-02-05T00:00:00-08:00",title:"Creating a Nuxt App",lessonNumber:U,free:G,image:[{__meta__:{createdBy:c,createdDate:"2019-02-05T02:22:53.637Z"},contentType:E,file:"1549333371707_nuxt-folder-structure-2.jpg",folderId:ao,id:1549333371707,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1549333371707_nuxt-folder-structure-2.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=HbHgdWzbRkrxm24aPm4ThLmvPp%2Fgcmlta5XK7OYCiOWGn3Rgj277icHePQt9YRVvrFdH2XKC4k8Zb1ydYbPpIi9Nbr481BWnUpMBpSxoMJoU%2FZXdmdL1EejtMfQ7sG7BKdcN8LLse7iV9QUN1zd5Q7Ru8tTFVbRetI6CSeFDUW%2F1z6Wc1zy34fxNW5Lzu7CumTkugMl0iu0E0sohz2CFITYQ4slARL%2FmiPxVn9Tg2Bw7FAl4COyijzFgT%2FQMW0g3zQBjAfSVzA0L9tGHE7QWB%2BU31vJdNrtkUjnieUeQoBJYg7oyinN5CZ4B0RlwL4oCA%2FE2qmra573aFRGXK19t7w%3D%3D"}],description:"We build a Nuxt.js app from the ground up and discuss the directory structure.",duration:"00:15:53",author:P,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:BR},contentType:E,file:BS,folderId:ao,id:BT,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:BU}],facebookImage:[{__meta__:{createdBy:c,createdDate:BR},contentType:E,file:BS,folderId:ao,id:BT,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:BU}],socialSharingDescription:"I learned how to create my first @nuxt_js app on the @vuemastery Scaling Vue with Nuxt course",belongsToCourse:c_},{slug:"universal-mode",status:H,date:"2019-02-19T00:00:00-08:00",title:"Universal Mode",lessonNumber:ab,free:F,image:[{__meta__:{createdBy:c,createdDate:"2019-02-16T16:20:49.865Z"},contentType:E,file:"1550334042554_universal-mode.jpg",folderId:ao,id:1550334042554,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1550334042554_universal-mode.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=wnwfNBPhUw6e1mPLI3a%2BlYFxplec7WI3REVzaS7UdjXQgR6tPxXV6rSTnnHoe8Af9OB9f9W5a2nS7vi145mkj0cbVqcX1aJEs5P0NUkAai0Bn3iTHtUlEMuZM%2FlXMwyNw%2BmFfr58YKo6v9cnrp7DnPV1gXr72mfS72T1M93sVnbI2r9HkRZkLkE0qJ%2BTVy5k0EvT58ypqg8gY1AOCdsXGC4K7dgrADzsDsSipbafI29iOSymBN3a8bN5wqdj86CICNqr3%2Fx5cV5A0ji9%2BoNxa%2BgycXebIDc8JE6kaKgp5vD%2F41giJm7NUaBNR3QSFlUcSp0rIi9xqa5aEIVna4EzLw%3D%3D"}],description:"Learn how Universal mode improves your user experience by speeding up your application's initial load time. ",duration:BV,author:P,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:BW},contentType:E,file:BX,folderId:ao,id:BY,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:BZ}],facebookImage:[{__meta__:{createdBy:c,createdDate:BW},contentType:E,file:BX,folderId:ao,id:BY,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:BZ}],socialSharingDescription:"I learned how @nuxt_js universal apps increases the speed of my Vue applications. ",belongsToCourse:c_},{slug:"seo-vue-meta",status:H,date:"2019-02-27T00:00:00+07:00",title:"SEO with vue-meta",lessonNumber:ac,free:F,image:[{__meta__:{createdBy:c,createdDate:"2019-02-16T19:19:28.910Z"},contentType:E,file:"1550344759899_code.jpg",folderId:ao,id:1550344759899,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1550344759899_code.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=dE75uiOOOWMllZEVIRE%2BHV7L8dAj3ByWstWuTP9j8qFuzlZt%2B9Cmwxxf%2FjI%2FVy2tqI2SoLxO9L9svy4J8cPjG9rEc3eAxoC4ViZIFTKAaG1e0S3xtC8QBkkIjKnXbcv7oWDO5PwwLGEBI4VEDHQduDgQtwdekyw6NudQQcuLxaRFxsR9p2sS2LTLTtvv06BBu5do1DRrUIgs7Yn1XScV0dn6QdhQ%2BV0pxEO3b2aa7%2By5Xck%2Br%2FeDyond6%2B1d9S4lJGCVli8xq3N1oBpB8KrzpM4642LpwMxSpNpIrYLcLSM6QFLzDPL5xr7eW07oArOhbsJlsAkwNd%2BU4fNXvMPANg%3D%3D"}],description:"Nuxt ships with vue-meta baked in, which gives us control of our Search Engine Optimization tags. ",duration:B_,author:P,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:B$},contentType:E,file:Ca,folderId:ao,id:Cb,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Cc}],facebookImage:[{__meta__:{createdBy:c,createdDate:B$},contentType:E,file:Ca,folderId:ao,id:Cb,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Cc}],socialSharingDescription:"I just learned how @nuxt_js helps with search engine optimization using vue-meta on @vuemastery",belongsToCourse:c_},{slug:"file-based-routing",status:H,date:"2019-03-06T00:00:00+07:00",title:"File-based Routing",lessonNumber:W,free:F,image:[{__meta__:{createdBy:c,createdDate:"2019-03-05T04:46:12.806Z"},contentType:E,file:"1551761171176_root-dynamic.jpg",folderId:ao,id:1551761171176,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1551761171176_root-dynamic.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=j07y8PmX9ClYoC9DpBAyYJCd52T%2FoINVkFdd4RFCXbaS6I%2BH7c0a9hAcnIHQQMgx20zMVixnUNbgfcBUA0ox3r4FnsYHfXveG8zIxjWG8Y2skenKWyOT3ldB7TgYPXpSbFHSI68UifYlFh6C0t5quK%2FEPz77WYbwk2jspdP%2BxzvNcDF6vH36i6PyH2OCBHvD%2BAET0O3QpOXj72adqmc7WtCKlTd73hU%2BPFTxEb9lYBleRk%2FngPCPk9FRh7HwWvI1rD0tmDUOyPlwCOx0dtnGsoSMEvpf0jee5OsUxyaApSzw%2B22YEKPE8U3Gf%2FiRBUvzvi%2Fqgc0IjEXy6abIy0ajVA%3D%3D"}],description:"Learn about nested and dynamic routes and how to create your own error page.",duration:Cd,author:P,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:Ce},contentType:E,file:Cf,folderId:ao,id:Cg,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Ch}],facebookImage:[{__meta__:{createdBy:c,createdDate:Ce},contentType:E,file:Cf,folderId:ao,id:Cg,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Ch}],socialSharingDescription:"I learned how @nuxt_js does file-based routing on @VueMastery's Scaling Vue with Nuxt.js course.",belongsToCourse:c_},{slug:"api-calls-axios-asyncdata",status:H,date:"2019-03-19T23:00:00+07:00",title:hX,lessonNumber:S,free:F,image:[{__meta__:{createdBy:c,createdDate:"2019-03-18T02:47:00.965Z"},contentType:E,file:"1552877219534_asyncData.jpg",folderId:ao,id:1552877219534,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1552877219534_asyncData.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=u6uS8Ri0VSRj9AF9RBaTjeEPyBZmt%2BbEoxw0DkY324HazFZEV4OYu0O86JszQeZOuRnoFSgoRMg5IcqgZu2RxbCe0yH4%2B%2FaaazjVoLdHM31CpJUOZ7NGFh%2FCptoJCr3x3B1DoOpwnEFOBYPQXsw%2F%2Bx7XBDaPcYeblfMjJvp4oZ2C2yfeBY5lpLkp3FXcI6L6SFK52KkDZsjMCog3nuUEuMuxozUPyREmlxLAJxRlCI4p8pB6ojAMXNcQ%2F1LaQ1pmcrEdgqsgJjLMebSRXlzSQIXjcdsCT4rozV%2Bvhobp27vTw3nncnozG74u3lVSztJNA3htWD8v8s64VTFVtV%2FqfQ%3D%3D"}],description:"How to write API calls with the Nuxt Axios Module that work on the server and client side.",duration:"00:10:08",author:P,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:Ci},contentType:E,file:Cj,folderId:ao,id:Ck,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Cl}],facebookImage:[{__meta__:{createdBy:c,createdDate:Ci},contentType:E,file:Cj,folderId:ao,id:Ck,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Cl}],socialSharingDescription:"I just learned how to write API calls with the Nuxt Axios Module that work on the server and client side on @VueMastery.",belongsToCourse:c_},{slug:"async-await-progress-bar",status:H,date:"2019-03-26T23:00:00+07:00",title:"Async\u002FAwait & Progress Bar",lessonNumber:ae,free:F,image:[{__meta__:{createdBy:c,createdDate:"2019-03-24T16:39:40.420Z"},contentType:E,file:"1553445579192_async-await-picture.jpg",folderId:ao,id:1553445579192,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1553445579192_async-await-picture.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=bf1NapZLUikQuYOGTtn8zaT4xuAv2dussJqRJ1woepFWbnpsCwRm9EnCyKfZhJSlRkAP3ynGgPLQyoMgFxrQ%2FHW8ZLR26YdnABTtl3vikW0B9phzuurZ5FVjA5JDPHOnqvkj1jI6EOzW35NJQdx%2FGSXeu%2BkufRuRzZ1PV0h%2FehUbfj%2Fe4ets7FYJevTaUaJH6zu2kPLwyCLEIiiOiAVLgNaVhvhpkPRTJRHFsvWX3lOHSFukRkPMUxfC%2BJRwVzGLjYbaQ9Q5PYZ9xyZhMrQDn%2FKJnT7BZuo9DPEQ3mK4MgZKORaKNjW%2BiChTUyrThsYwWSzrgPaTWLWJgOYwHMPlnA%3D%3D"}],description:"Understanding Async\u002FAwait, building out our Event Show page, and getting the progress bar working.",duration:Cm,author:P,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:Cn},contentType:E,file:Co,folderId:ao,id:Cp,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Cq}],facebookImage:[{__meta__:{createdBy:c,createdDate:Cn},contentType:E,file:Co,folderId:ao,id:Cp,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Cq}],socialSharingDescription:"I learned how to use Async\u002FAwait with @nuxt_js and implement a progress bar on @VueMastery",belongsToCourse:c_},{slug:"using-vuex",status:H,date:"2019-05-07T00:00:00-04:00",title:"Using Vuex",lessonNumber:ah,free:F,image:[{__meta__:{createdBy:c,createdDate:"2019-05-05T15:33:01.294Z"},contentType:E,file:"1557070374821_vuex-nuxt-picture.jpg",folderId:ao,id:1557070374821,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1557070374821_vuex-nuxt-picture.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=GyITFOD2oYpdfLmeiPOD9FA0Q8dkUptoEdrsLH6%2F1z4e2R%2Bnl4O0%2BrjEDOyX0HjcmPMXtH6L9Q5rnDQ8pK0me6HOmAlIX9JAVjBiWG%2B%2F99LdQKJmqkwVPKyBSkzwup7%2FCeIWkdcFR%2FTcw8sSLp67ZIJE70dz4CXKdK65tC0jE0sdWDcSa%2Bsds79Kl5WvvMWkGzItXUbdS4tN%2FfVEM5ZiyHVgKpCu12ERwWxlU2jUrB6GUmilaelSrgJ8%2BJoVfUnvod3knKq591wviYo0VvCOPN45RtsMCQ%2FsP%2FRQ0m0lHRIph458iqe%2BVHlpp9e1Q1u0fJPuaevxaNmKFdC1WfuGjQ%3D%3D"}],description:"As our application grows we should use the Vuex to store our application state. This lesson will show us how.",duration:Cr,author:P,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:Cs},contentType:E,file:Ct,folderId:ao,id:Cu,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Cv}],facebookImage:[{__meta__:{createdBy:c,createdDate:Cs},contentType:E,file:Ct,folderId:ao,id:Cu,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Cv}],socialSharingDescription:"I just learned how to use Vuex to store state with @nuxt_js on @VueMastery",belongsToCourse:c_},{slug:"universal-deployment",status:H,date:"2019-06-11T17:00:00+07:00",title:"Universal Mode Deployment",lessonNumber:an,free:F,image:[{__meta__:{createdBy:c,createdDate:hY},contentType:E,file:"1558992995324_deploy-to-heroku.jpg",folderId:ao,id:1558992995324,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1558992995324_deploy-to-heroku.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=RFjWs1H%2BgXwJ6ipSdIH36QKjeo5RHMfSYCrlXvuPXdMjISS5yfZu022fXjZWowYBKX8Ol39ICeVgH57HZAqkxvz83IgrOnrtYhb0XxqI8OKch51Gwy8y8x1bBtywQAz1%2FypdaQf7Gta5%2Fw%2BrpUHPDrO2HM%2FcHa9JRO4afM%2FuZkEoyQ%2BD6IxtmYhld3e1t5De24yZjQCkelVEBLsZh%2BUArDM9LO4aIZxkiC6TY%2BJ1HNZlIdCJrXkDHKMsY05E2ufjIGgEkifJrqgWEbi%2BsAVQW7bjpZBXogd5z0NrbCEFVe%2BDFeYeT4o7mkDYMJu3lQ0lswZz%2BJwC%2F1sHGsUydoPMFA%3D%3D"}],description:"Let's deploy our Nuxt application in Universal Mode onto the Internet",duration:"00:11:05",author:P,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:hY},contentType:E,file:Cw,folderId:ao,id:Cx,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Cy}],facebookImage:[{__meta__:{createdBy:c,createdDate:hY},contentType:E,file:Cw,folderId:ao,id:Cx,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Cy}],socialSharingDescription:"I learned how to deploy my @nuxt_js application onto the Internet in Universal Model thanks to @VueMastery",belongsToCourse:c_},{slug:"static-site-generated-deployment",status:H,date:"2019-06-25T00:00:00-07:00",title:"Static Site Generated Deployment",lessonNumber:aS,free:F,image:[{__meta__:{createdBy:c,createdDate:"2019-06-17T21:15:40.313Z"},contentType:E,file:"1560806138828_static-site-deployment.jpg",folderId:ao,id:1560806138828,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1560806138828_static-site-deployment.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=okJWdNySnmbxlWBxubrFEuerLZf3ld0NMAisvsoJh79%2FvpExmvwOqol3l1uO0tAHIoY1LknR0i55eM1O%2FH0St8JfzVjqUdrH3Fw79Yw0KxPSQKfIK0jsOr2tyVlcV5L0HIf%2FGCkSLrPRqfyeh1zS3l2LGLxLSsZfi8yIw8uWcIXK1qzKYdMPq51N6Fw5P%2BJbiB2veDLGTaQwVPbidClLWVF8BSvVIqVwI1ZtxMLG8MrrZIcKtJal7WpYLFh2CuTATJmjS304sISpmtl6MNxFHAAYSpvlj24Y8EGrqQXqwegc6dxfz0ujvgRW9jD%2BXyYBtKSiMVkN9gIYwG5vm2%2F64Q%3D%3D"}],description:"Learn the most scalable way to deploy your Nuxt app and how to deploy on Netlify.",duration:"00:08:20",author:P,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:Cz},contentType:E,file:CA,folderId:ao,id:CB,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:CC}],facebookImage:[{__meta__:{createdBy:c,createdDate:Cz},contentType:E,file:CA,folderId:ao,id:CB,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:CC}],socialSharingDescription:"I learned how to scale @VueJS by using Nuxt's Static Site deployment on @VueMastery",belongsToCourse:c_}],lessonsCount:aS,order:ah,parentId:M,slug:"scaling-vue-with-nuxt-js",teachers:[{firstName:dw,lastName:dx,about:dy,image:[{__meta__:{createdBy:c,createdDate:dz},contentType:E,file:dA,folderId:X,id:dB,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:dC}]}],title:"Scaling Vue with Nuxt.js"},"1541609602991":{__meta__:{createdBy:c,createdDate:"2018-11-07T16:53:22.991Z",lastModifiedBy:c,lastModifiedDate:"2022-11-11T10:32:45.387Z",locale:T},completable:G,courseDependencies:J,courseLabelsBar:"Although this course was developed with Vue 2, the syntax for Vue 3 with Vuex is virtually the same.",description:"Learn how to handle state in a production-level application with Vuex, Vue's own state management pattern and library.",difficulty:bM,duration:"01:27:30",free:F,id:ff,image:[{__meta__:{createdBy:c,createdDate:"2019-09-25T19:30:59.572Z"},contentType:K,file:"1569439858361_3.png",folderId:R,id:1569439858361,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1569439858361_3.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=urj7A6mLjMLKRe0rx7INnZp%2B8uN4sc9BABJUDuwQodiUyqKrXCK3g1uhrE7UjriRNjSGp%2Bf5mLk7Ck6c5HZksdKnm2kTy1B830mbx1vJvCB9E2XCmw1aUVEOfN6VgChFURoxlNZ5w8VStYQklQKU1S55c15EsK%2FRGxtfbHlRMSjlk3IcuVhOobTvjZ1FGxVXEELTiaR7XATzgviicyniud9ng21YxX1DB87a%2B%2F9G2J4iQyvIv6kby9A%2BnJHEqtIvOzE%2Bctu%2Fw%2B56UTvPCUakJrlxSAUL%2FzIqbDFWABQhnSmSo21ODMbMRHWFeD8b%2Fe0uq1HNYYgTPYcmcrC5eOhQHg%3D%3D"},{__meta__:{createdBy:c,createdDate:"2022-05-15T19:45:47.117Z"},contentType:K,file:"mastering-vuex.png",folderId:aR,id:1652643652559,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fmastering-vuex.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=DLNpPh5K6%2FOelUxFUSSPMQ1rLHRel5JSEO5sjgcvKqRfCX5TlLVWFkvjKqGjlSkO859vfoY290%2FfvAmpbemcrNKZ9mkXjh9UTmx4dIFEf5DsESwSIYoTKx0lAX76PZ0LiK9gZ6DvBGW8NvJGz%2FLM%2Bxna5rnu9Gx%2BSwYn%2FjjT2MfhDzodPyK7VgGuqRaU6fAeYcd3Ds9wPmeNyL%2Bje7%2BtfJUFAroKor2XMKxAwjk94UlkgVomQe97jNDMRaH1d2jg%2FvhZb%2BAT9%2Bqp1KlAagva1YqOyMkaPNq9gVdJulLnhCvtOU331NF0iq2Pf5J6sTMarwHgU7vRdrXZyCr7xPiGHw%3D%3D"}],isComingSoon:F,isDraft:F,isPromoted:F,label:eY,lessons:[{slug:"intro-to-vuex",status:H,date:"2018-09-10T00:00:00-07:00",title:CD,lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:"2019-10-03T14:26:30.291Z"},contentType:E,file:"1570112786598_vuex_diagram.jpg",folderId:L,id:1570112786598,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1570112786598_vuex_diagram.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=YqQLOoz1cg2QozvjqherBI%2FlCRARSPT8cDe2h7uGiBbYyUSRS2z4EXhlPWtuZ1AHwuciWQiqhCrvbLZOA7CMM3GY2PTIq%2Fl%2FX5kcNlaYvuKupnYv2wQBhULKAdym%2FEPDyNr81ucC14%2F2zP4hUwO59Gz6LTM3nnGJYNhk3TBjA7zcWr37V6iOatwYVYNW2Tb%2BcvlFJ1OvUKhHO23Paamba6TbuZ64NX%2F2BGXRWoOcqZ88e7gSobiBRYm04fLM%2FgedpP2FVohyBYwUaxIqcrR%2BKiV8gRgZ9gcybarD7aF23S7BGjfhY%2BWpQ%2FJN0jLToDZgPeo1R2T17JbfwMjhEpdYPA%3D%3D"}],description:"Learn how Vuex can solve the problems of state management in a Vue application",duration:CE,author:O,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:CF},contentType:K,file:CG,folderId:L,id:CH,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:CI}],facebookImage:[{__meta__:{createdBy:c,createdDate:CF},contentType:K,file:CG,folderId:L,id:CH,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:CI}],socialSharingDescription:"I'm mastering #Vuex in @vuemastery's Real World Vue course!",belongsToCourse:ff},{slug:"mastering-vuex-orientation",status:H,date:"2018-11-07T00:00:00-08:00",title:"Mastering Vuex Orientation",lessonNumber:U,free:G,image:[{__meta__:{createdBy:c,createdDate:hZ},contentType:K,file:h_,folderId:L,id:h$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ia}],description:CJ,duration:"00:05:59",author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:hZ},contentType:K,file:h_,folderId:L,id:h$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ia}],facebookImage:[{__meta__:{createdBy:c,createdDate:hZ},contentType:K,file:h_,folderId:L,id:h$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ia}],socialSharingDescription:"I'm learning #Vuex in @vuemastery's Mastering Vuex course!",belongsToCourse:ff},{slug:"vuex-state-getters",status:H,date:"2018-09-18T00:00:00-07:00",title:"State & Getters",lessonNumber:bN,free:F,image:[{__meta__:{createdBy:c,createdDate:ib},contentType:K,file:ic,folderId:L,id:id,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ie}],description:"Learn how to access your Vuex Store's State from your components",duration:"00:11:58",author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:ib},contentType:K,file:ic,folderId:L,id:id,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ie}],facebookImage:[{__meta__:{createdBy:c,createdDate:ib},contentType:K,file:ic,folderId:L,id:id,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ie}],socialSharingDescription:"I'm learning about #Vuex State + Getters in @vuemastery's Real World Vue course!",belongsToCourse:cf},{slug:"vuex-mutations-actions-1",status:H,date:"2018-10-01T00:00:00-07:00",title:"Mutations & Actions Pt. 1",lessonNumber:dN,free:F,image:[{__meta__:{createdBy:c,createdDate:if0},contentType:K,file:ig,folderId:L,id:ih,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ii}],description:"Learn how to mutate your Vuex State with Mutations & Actions",duration:"00:17:15",author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:if0},contentType:K,file:ig,folderId:L,id:ih,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ii}],facebookImage:[{__meta__:{createdBy:c,createdDate:if0},contentType:K,file:ig,folderId:L,id:ih,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ii}],socialSharingDescription:"I'm learning about #Vuex Mutations & Actions in @vuemastery's Real World Vue course!",belongsToCourse:cf},{slug:"vuex-mutations-actions-2",status:H,date:"2018-10-09T03:14:49+07:00",title:"Mutations & Actions Pt. 2",lessonNumber:eF,free:F,image:[{__meta__:{createdBy:c,createdDate:"2018-10-08T22:49:49.954Z"},contentType:E,file:"1539038987763_diagram.jpg",folderId:L,id:1539038987763,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1539038987763_diagram.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=BBdlSaNeU9Mht6QYHh9nZND9pCRs5%2B%2BLyPy1AH%2BZ4t7og4sZj49kGYwlx6zgNKzhnedyzoQh9WLFANsAJx3otefQfaMmm0s2cDhsADUnh03w5F0qybqLnNMLR%2BzlEZmdKLYzE7q0Y03XBGjUgUwKo63FYOqovHrpKo0%2BrfOYxiTFdTTX9enf4YBi7FTnvAXLjU17ZKQjsevFBk1%2BgCbQKDoV0whur1gmw17wZqbMcGvLoJfs2RBb09l992pAoURGZL9Zr76uiqHAbNces4i3oCWF4bCpS0U7ItHhTciZ0yacS1CdnFnYIZ61sJv6daNR8G4H8L5eQgjckfdP2S4Hzg%3D%3D"}],description:"Create more Vuex mutations & actions while learning about pagination.",duration:"00:17:47",author:P,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:CK},contentType:E,file:CL,folderId:L,id:CM,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:CN}],facebookImage:[{__meta__:{createdBy:c,createdDate:CK},contentType:E,file:CL,folderId:L,id:CM,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:CN}],socialSharingDescription:"I learned how to paginate with Vuex with Actions & Mutations on @VueMastery's Real World Vue course.",belongsToCourse:cf},{slug:"vuex-modules",status:H,date:"2018-10-16T23:00:00+07:00",title:"Modules",lessonNumber:eG,free:F,image:[{__meta__:{createdBy:c,createdDate:"2018-10-15T20:43:29.390Z"},contentType:E,file:"1539636207956_Modules-Break-Out.jpg",folderId:L,id:1539636207956,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1539636207956_Modules-Break-Out.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=CbpXm%2BICzswXPzZ7iaKPAkv9jk8O2D8t5vvUUYankph1NpMhKLLQ5o5OHKqOPr4snbFY%2F8HcYKAOgtD0KHuRp9JkIOE9K3T%2F32sdv5%2FCqYxdp%2BPIkIjAsoaescnlIfyd%2B00xIvNNlGqjgUh3N5mCOQjTjfqJi3C6Bxh1t4ce9JfPS4zn%2FzwmKdR5te7SFlVmqPxfrpyXzloQxk4WvfUiQtmPF39oBXQiwjoyx4uTyRJV%2BgDvR1VGHabs2OptxAi4GvMKJoQcyXqGZCAlgwkDUDs2qfV3YTl1G82JxY3W3i%2BrAvXhOU2yGn8Z54aCoSeCsK4X0h47ZUTTXNJbkFcnFg%3D%3D"}],description:"As our Vuex code increases we'll need to organize it into Vuex Modules.",duration:"00:15:18",author:P,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:CO},contentType:E,file:CP,folderId:L,id:CQ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:CR}],facebookImage:[{__meta__:{createdBy:c,createdDate:CO},contentType:E,file:CP,folderId:L,id:CQ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:CR}],socialSharingDescription:"I learned how to encapsulated my Vuex code into Modules on @VueMastery's Real World Vue Course",belongsToCourse:cf},{slug:"success-error-notifications",status:H,date:"2018-10-23T00:00:00-07:00",title:"Success & Error Notifications",lessonNumber:eG,free:F,image:[{__meta__:{createdBy:c,createdDate:ij},contentType:K,file:ik,fileRef:{preview:il},folderId:L,id:im,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:in0}],description:"Learn how to capture and display success and error notifications.",duration:"00:13:47",author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:ij},contentType:K,file:ik,fileRef:{preview:il},folderId:L,id:im,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:in0}],facebookImage:[{__meta__:{createdBy:c,createdDate:ij},contentType:K,file:ik,fileRef:{preview:il},folderId:L,id:im,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:in0}],socialSharingDescription:"I'm learning about success & error notifications with #Vuex in @vuemastery's Real World Vue course!",belongsToCourse:cf}],lessonsCount:ae,order:ab,parentId:M,slug:"mastering-vuex",teachers:[{firstName:cs,lastName:cx,about:cy,image:[{__meta__:{createdBy:c,createdDate:cz},contentType:E,file:cA,folderId:X,id:cB,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cC}]}],title:"Mastering Vuex"},"1541714005156":{__meta__:{createdBy:c,createdDate:"2018-11-08T21:53:25.156Z",lastModifiedBy:c,lastModifiedDate:"2023-03-02T14:18:17.804Z",locale:T},category:[{name:d$,color:ea}],completable:G,courseDependencies:J,courseLabelsBar:J,description:"Learn more advanced real-world practices on routing, component loading, code reuse, and forms.",difficulty:bM,duration:"01:49:45",free:F,id:cu,image:[{__meta__:{createdBy:c,createdDate:"2019-09-25T19:31:43.594Z"},contentType:K,file:"1569439902643_4.png",folderId:R,id:1569439902643,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1569439902643_4.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=jBl47CsZTv9GQuNDulOeJwWv5k5%2Bv9LQA33Lm8uD5s4SGqKVPgWmUqR0mKKn2kYT%2BJMRF%2Fxa9z7ruoh0bCb7lyXl9I7kZTWYUFI0njKy5EyBjpc0vMZclb%2Bu5oLJDOKK%2Fneb8R1F8%2Bp0rSdG4UaOUzYZUDZhO%2BGkZz1agBM%2FH9lqo7UuFjnejaGjtjIbpNSQT7zy1LRD7AESvvkXjjvB8bnve%2Fl8akhOtez39BBGGjvzXwcATUt6mOdBiqFZH87CmU3w4z%2BZWmTh93xWRstV9dLkN%2FsyYaQn2ILnzsife%2Fv04%2FG%2BeRGUO6Ww%2Fgeyu5HRW95%2FOaPBp4n0r%2Fg7mgASdg%3D%3D"},{__meta__:{createdBy:c,createdDate:"2022-05-15T19:45:41.818Z"},contentType:K,file:"next-level-vue.png",folderId:aR,id:1652643662042,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fnext-level-vue.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=hN%2FllHuAcFdcC6I9FpTM0iJQ0cAIw4jMmFoUzAik5oHS5PW7sjY%2FSEHGffI42glOqZYFQf31k7WRPFk1Nz7It8vg3E7RXaoS0TEmYvwDB0E8HN%2FtNlukOmDtcycTF29VJuQzDUJjlYeIWBmLSioWdkWOjedcoVEQfAh5mWmykRjz0XDj0r5XnZ7TMKWKq6E0SP0woyuTADOEn1dUVHowMdl40hX%2F8RCilF5kGdh7N3b1Ziscg1pVpcTKSAEeTPpUYg2jdZA9iEctsSPIrC5SZ8SWfGqqqtaAp4%2Fk6%2FtvtGhzGVpGqxdzC4xdvF%2Fh7RQ2s%2Bneez%2Bjw8sUe990YY8umg%3D%3D"}],isComingSoon:F,isDraft:F,isPromoted:F,label:eY,lessons:[{slug:"next-level-vue-orientation",status:H,date:"2018-11-08T00:00:00-08:00",title:"Next-Level Vue: Orientation",lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:io},contentType:K,file:ip,folderId:L,id:iq,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ir}],description:CJ,duration:"00:03:20",author:O,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:io},contentType:K,file:ip,folderId:L,id:iq,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ir}],facebookImage:[{__meta__:{createdBy:c,createdDate:io},contentType:K,file:ip,folderId:L,id:iq,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ir}],socialSharingDescription:"I'm starting the Next-Level Vue course on @vuemastery!",belongsToCourse:cu},{slug:"progress-bar-axios-interceptors",status:H,date:"2018-10-30T00:00:00-07:00",title:"Progress Bar: Axios Interceptors",lessonNumber:U,free:G,image:[{__meta__:{createdBy:c,createdDate:"2018-10-29T02:20:12.218Z"},contentType:E,file:"1540779605649_Axios Interceptors.jpg",fileRef:{preview:"blob:https:\u002F\u002Fapp.flamelink.io\u002F42e4f432-6d93-4d5e-ac6a-d0585ba16770"},folderId:L,id:1540779605649,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1540779605649_Axios%20Interceptors.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=HLCPYzsk7fYprDXvej2MIVDQPNsOyxkwBkPT%2FcDRbL99%2BofoEAnQpc7rbe4WoPmhviLg%2BfMiNmMygcAr3AptK8AebN0eBvz0M3VBVbIqSVqUurPVVdp6inW8Y4BB1tpqIsImm6iqWT0obkCV8pP%2FGhnSynSi4AO4PCyN7wxJdOykCFptp%2BQK0vX8KnchnIB6VB9Twr1nb3cLeimwsPhwOmDu7jJv4jjrv6lf7WgGHMcF849BjQTnS4NbPdAAyamkkPVxY%2B8ebDiGV0zgzIyWC45N9nj5EZ2IdIP4Qm8shN0z0YjDYfaoy%2Bhd5nGJzw4WkGrLTnDEtP%2FlOE2%2FZc8CFg%3D%3D"}],description:"In order to give the best user experience we'll implement a progress bar when fetching data from our API.",duration:"00:08:30",author:P,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:CS},contentType:E,file:CT,fileRef:{preview:CU},folderId:L,id:CV,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:CW}],facebookImage:[{__meta__:{createdBy:c,createdDate:CS},contentType:E,file:CT,fileRef:{preview:CU},folderId:L,id:CV,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:CW}],socialSharingDescription:"I learned how to create a progress bar using Axios Interceptors on @VueMastery",belongsToCourse:cu},{slug:"progress-bar-in-component-route-guards",status:H,date:"2018-11-07T00:00:00+07:00",title:CX,lessonNumber:ab,free:F,image:[{__meta__:{createdBy:c,createdDate:"2018-11-02T20:40:34.335Z"},contentType:E,file:"1541191231220_Navigation-Guard.jpg",folderId:L,id:1541191231220,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1541191231220_Navigation-Guard.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=Nr%2FsdSQv1rCA0Sspt24zefX%2BToWZmZ%2B9yIBoOCTi6d2bxh8HCMZgVrxqA1RGH%2Fq22kTx6Ruzoa%2FYyYYW5EXxY%2FmUIr9iwvBCwbxqKZt6sWrigfoTtN05a9F70BUHMMwYpP%2FHiBYPWel%2Ff391CyippGKm14N6UH8rPqKBy6yXd3D%2BTtpzXMu%2Fw5PwjfFxn1YFT6ilMuJgQcM6SXiqeBnkalwyeqt7tWagKM%2BVp7NsqO7Mo3BMTXKprOIYh7NTZVRpYyykPrrCPdOXKhl%2Fb6rv7nrXBG1AsqMo0kKIo4zY36r7KTGvxBh4seSO1dkVnVCfCpnLlxvCWI0%2BQekTktfR6Q%3D%3D"}],description:"Another progress bar solution could use Vue Router's In-Component Route Guards. Let's learn about these.",duration:"00:07:48",author:P,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:CY},contentType:E,file:CZ,folderId:L,id:C_,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:C$}],facebookImage:[{__meta__:{createdBy:c,createdDate:CY},contentType:E,file:CZ,folderId:L,id:C_,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:C$}],socialSharingDescription:"I learned how to use Vue Router's In-Component navigation guards to build a progress bar on @vuemastery",belongsToCourse:cu},{slug:"progress-bar-global-and-per-route-guards",status:H,date:"2018-11-14T00:00:00+07:00",title:Da,lessonNumber:ac,free:F,image:[{__meta__:{createdBy:c,createdDate:"2018-11-13T01:27:57.828Z"},contentType:E,file:"1542072476198_global-routing-guards.jpg",folderId:L,id:1542072476198,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1542072476198_global-routing-guards.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=aKUew54AKYYUE1AZ1nekvvtqFZ%2BshHkU9QnFK98VSt%2BAsOuVEH7OpdfhJHXC9yvIng%2FHcQCQ87DXUkCMnUa3fgKg5yse65CeD5XldFY5bXqvI%2F6GqCjZWAGDzwqwTPWfFTlulDhz1YtOf5VJ7liO9jZw0QLWDYF6jipE7GhGN9NHL5%2BjtEE09dfmS5BVvgVsRtHv%2B02Ong9IrNvr65vU57v1yhRA33q1lnOsmQ5wwsJwP7RkaT82lKjcMYBXgBJ5G3s4rD1qKCc%2B2EeYmaOMMtD%2Fr2qrBRQKllj%2F6DokEqVhImp6JOBoSNyWxhcnFLN3Eg40rMjcQaKWGfEQrQfgZw%3D%3D"}],description:"Learn how to add navigation hooks in our router using Global and Per-Route Guards.",duration:is,author:P,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:Db},contentType:E,file:Dc,folderId:L,id:Dd,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:De}],facebookImage:[{__meta__:{createdBy:c,createdDate:Db},contentType:E,file:Dc,folderId:L,id:Dd,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:De}],socialSharingDescription:"I learned how to add navigation hooks in my router using Global and Per-Route Guards on @VueMastery",belongsToCourse:cu},{slug:"completing-our-progress-bar",status:H,date:"2018-11-21T00:00:00+07:00",title:"Completing our Progress Bar",lessonNumber:W,free:F,image:[{__meta__:{createdBy:c,createdDate:it},contentType:E,file:"1542383083072_event-create.jpg",folderId:R,id:1542383083072,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1542383083072_event-create.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=mIMg8sHVELNa7WWZwGeUA%2FAdmAMAEHZUNuJJZjG23lIzhRaemC2bIkqAUwLa%2FLLHBJn4k9hercPg5GXt8lM6JZHcODHfPa18dExQFw6FgUlGnWUDxEN0OkGP4nQo9uk7%2FYId0Tl3Ay5tAxMsITMjoiFtTrjiBUC7w2w94bHE0kd%2Fha1gXXzoplFAFpsMqUoC%2BhDon67Zioriz2JK94RdM5SkxT3mX%2FFpA90mY%2BW1Sx2%2FmJix1GOptFEalw3TdMbvVxy%2B19Kh2gLNzBbngLxzn08WFVt4Ly1OjO7w%2BeNBgb0jN%2FXhD6XvIYRsij3fvlsgbDHv%2FaBA2bOd2bmd%2Bt4tYw%3D%3D"}],description:"Using everything we've learned so far we finish implementing the Progress Bar in our example app.",duration:Df,author:P,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:it},contentType:E,file:Dg,folderId:R,id:Dh,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Di}],facebookImage:[{__meta__:{createdBy:c,createdDate:it},contentType:E,file:Dg,folderId:R,id:Dh,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Di}],socialSharingDescription:"I learned how to implement a progress bar on my @VueJS app on @VueMastery",belongsToCourse:cu},{slug:"404-error-handling",status:H,date:"2018-11-28T00:00:00+07:00",title:Dj,lessonNumber:S,free:F,image:[{__meta__:{createdBy:c,createdDate:"2018-11-26T22:57:16.995Z"},contentType:E,file:"1543273035683_catch-all route.jpg",folderId:R,id:1543273035683,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1543273035683_catch-all%20route.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=TxRWJMDxLoXq9Ya0btnr%2F6I2HiXOczJg3sGskUb%2BLQa4zVwp6Nme%2BMg6ZgHJfzO7%2BcQmN%2BIj5WSV%2FJinjoBcBCbLNjnZ64%2FHQtw9VewYmsKa7XWPS0z%2B20rVdrSDKxD%2F3ret3Efl7NyKJ77W9RLeX0Ern2kDBugxCFX2UswBlFTaAw85F%2FriDhT3IPK8x%2BtWn55M1Dv5ZrhN177pBqLhJQyi2OvVX7EFi6Dplbcl6iUHq%2FD5wTrSHROqlgkKMqKwgQxVPd%2BU7APV%2Bhvl0Sef0uUlCj8jRCcgFyv2QsUmUlplsFkpze4PJEz7Yo6zsM9FfDX5FhY%2FpyefYVCbMcUqSA%3D%3D"}],description:"Learn to create user friendly error pages for 404 page not found and network issues.",duration:"00:10:04",author:P,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:Dk},contentType:E,file:Dl,folderId:R,id:Dm,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Dn}],facebookImage:[{__meta__:{createdBy:c,createdDate:Dk},contentType:E,file:Dl,folderId:R,id:Dm,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Dn}],socialSharingDescription:"I learned how to create the proper error handlers in my @VueJs code thanks to @VueMastery",belongsToCourse:cu},{slug:"reusable-form-components-baseinput",status:H,date:"2018-12-11T12:00:00-05:00",title:"Reusable Form Components: BaseInput",lessonNumber:an,free:F,image:[{__meta__:{createdBy:c,createdDate:iu},contentType:K,file:iv,folderId:R,id:iw,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ix}],description:"Learn how to create a reusable BaseInput form component to use throughout your app's forms.",duration:"00:08:06",author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:iu},contentType:K,file:iv,folderId:R,id:iw,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ix}],facebookImage:[{__meta__:{createdBy:c,createdDate:iu},contentType:K,file:iv,folderId:R,id:iw,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ix}],socialSharingDescription:"I learned how to make a reusable form component in @vuemastery's Next-Level Vue course!",belongsToCourse:cu},{slug:"Reusable-Form-Components-BaseSelect",status:H,date:"2018-12-19T00:00:00+07:00",title:"Reusable Form Components: BaseSelect",lessonNumber:ah,free:F,image:[{__meta__:{createdBy:c,createdDate:iy},contentType:E,file:iz,folderId:R,id:iA,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:iB}],description:"Learn how to create a select component to use throughout your app.",duration:Do,author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:iy},contentType:E,file:iz,folderId:R,id:iA,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:iB}],facebookImage:[{__meta__:{createdBy:c,createdDate:iy},contentType:E,file:iz,folderId:R,id:iA,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:iB}],socialSharingDescription:"I learned how to create a reusable @vuejs Select component with @vuemastery",belongsToCourse:cu},{slug:"Reusable-Form-Components-BaseButton",status:H,date:"2018-12-26T00:00:00+07:00",title:"Reusable Form Components: BaseButton",lessonNumber:an,free:F,image:[{__meta__:{createdBy:c,createdDate:iC},contentType:K,file:iD,folderId:R,id:iE,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:iF}],description:"Learn how to build a button component you can use throughout your app for various purposes.",duration:"00:05:58",author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:iC},contentType:K,file:iD,folderId:R,id:iE,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:iF}],facebookImage:[{__meta__:{createdBy:c,createdDate:iC},contentType:K,file:iD,folderId:R,id:iE,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:iF}],socialSharingDescription:"I learned how to build a reusable app Button in @vuemastery's Next-Level Vue course!",belongsToCourse:cu},{slug:"form-validation-with-vuelidate",status:H,date:"2019-01-01T00:00:00-05:00",title:"Form Validation with Vuelidate",lessonNumber:aS,free:F,image:[{__meta__:{createdBy:c,createdDate:iG},contentType:K,file:iH,folderId:R,id:iI,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:iJ}],description:"Learn how to validate your forms with Vuelidate",duration:Dp,author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:iG},contentType:K,file:iH,folderId:R,id:iI,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:iJ}],facebookImage:[{__meta__:{createdBy:c,createdDate:iG},contentType:K,file:iH,folderId:R,id:iI,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:iJ}],socialSharingDescription:"I learned how to validate my #vuejs forms with Vuelidate on @vuemastery",belongsToCourse:cf},{slug:"form-validation-with-vuelidate-2",status:H,date:"2019-01-16T00:00:00+07:00",title:"Form Validation with Vuelidate Pt. 2",lessonNumber:bN,free:F,image:[{__meta__:{createdBy:c,createdDate:iK},contentType:K,file:iL,folderId:R,id:iM,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:iN}],description:"Learn how to validate a Vue form composed of reusable form components with Vuelidate.",duration:"00:12:53",author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:iK},contentType:K,file:iL,folderId:R,id:iM,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:iN}],facebookImage:[{__meta__:{createdBy:c,createdDate:iK},contentType:K,file:iL,folderId:R,id:iM,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:iN}],socialSharingDescription:"I learned how to validate Vue forms with Vuelidate on @vuemastery",belongsToCourse:cu},{slug:"mixins",status:H,date:"2019-01-22T00:00:00-08:00",title:"Mixins",lessonNumber:dN,free:G,image:[{__meta__:{createdBy:c,createdDate:iO},contentType:K,file:iP,folderId:R,id:iQ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:iR}],description:"Learn how to encapsulate repeated code into a mixin that can be used throughout your app.",duration:Dq,author:O,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:iO},contentType:K,file:iP,folderId:R,id:iQ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:iR}],facebookImage:[{__meta__:{createdBy:c,createdDate:iO},contentType:K,file:iP,folderId:R,id:iQ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:iR}],socialSharingDescription:"I just learned how to encapsulate my #vuejs code into a mixin on @vuemastery",belongsToCourse:cu},{slug:"filters",status:H,date:"2019-02-13T00:00:00+07:00",title:"Filters",lessonNumber:eF,free:F,image:[{__meta__:{createdBy:c,createdDate:iS},contentType:K,file:iT,folderId:R,id:iU,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:iV}],description:"Learn how to use filters to format your template code.",duration:iW,author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:iS},contentType:K,file:iT,folderId:R,id:iU,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:iV}],facebookImage:[{__meta__:{createdBy:c,createdDate:iS},contentType:K,file:iT,folderId:R,id:iU,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:iV}],socialSharingDescription:"I learned how to use #vuejs filters on @vuemastery",belongsToCourse:cu}],lessonsCount:eF,order:ac,parentId:M,slug:"next-level-vue",teachers:[{firstName:dw,lastName:dx,about:dy,image:[{__meta__:{createdBy:c,createdDate:dz},contentType:E,file:dA,folderId:X,id:dB,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:dC}]}],title:"Next-Level Vue 2"},"1549646151774":{__meta__:{createdBy:c,createdDate:"2019-02-08T17:15:51.774Z",lastModifiedBy:c,lastModifiedDate:"2024-08-19T18:33:36.581Z",locale:T},category:[{name:d$,color:ea}],completable:G,courseDependencies:"Node v.11",courseLabelsBar:J,description:"Learn how to control access to certain parts of your app by implementing user authentication with JWT. ",difficulty:aQ,duration:Dr,free:F,id:eb,image:[{__meta__:{createdBy:c,createdDate:"2019-09-25T19:32:24.471Z"},contentType:K,file:"1569439942942_8.png",folderId:R,id:1569439942942,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1569439942942_8.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=b%2FQAFJlUrnBZ5HPWeVAmMx3RZ%2FOEhvgLjZmIV5HOZ4CCVWtB8mhoQD9v3N7mgxfeP1KJQjYpikcxtkEPuuj0%2FVfcZs6O2km%2B4gMWuccehpTpvuq%2BWRJ7q4uomV4XvoZ8HnerHmoYvPttT5FbelOF%2BDRA4K72IH6ims8ZNMC5zFcOGEF7AMnt40C%2Fu%2FlCKEQiYrAFrNHiOSSVsRRQDI2OTZQi3CcbJi7BJuyUbVBNra9uutDBxoX%2BJOQ4IL%2F3ZkPpjaHsV1ump3wHHfsgPQFpITJqf2llw7dJBg6hhg3In60qjOmtnr2w2GE963Ya%2FWK%2FqgO2ZcMzrCNC1wk36qCGXg%3D%3D"},{__meta__:{createdBy:c,createdDate:"2022-05-15T19:45:44.840Z"},contentType:K,file:"token-based-authentication.png",folderId:aR,id:1652643734483,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Ftoken-based-authentication.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=VTcD15ytQJR9u4IzyitWeC3XgoTxdmnRkyTx6jRPj7naLjD4dZsr26Uzxdb3BlRRblBeQkvYWNS%2FFAFvDZPQZYrPCeKPGwh5i%2FOhdD8GHGAErI6GZoMD3%2BHyGHJepreX4ilOm3h8Q%2F%2B0x72ArfMepf1g4Mp4ag%2F7ETwJgQOBxKOGYC8XIvJPou5yRPXKBHwMeb%2BgoDCGZpJ6tUXh8O4hZtm1EVqXEABITH3faVtQtPmTy5qrZmeFyTUHSozwRHtRAJN0PPa%2FxFx0CN2t2rM4A2AVBP%2BXZ6HzhZhyw6LI6IJVMblpybx4nZq6%2FUlCxI0bjpy5pdp4SVTZg%2BvdZGwA0w%3D%3D"}],isComingSoon:F,isDraft:F,isPromoted:F,label:ad,latestAt:J,lessons:[{slug:"intro-to-authentication",status:H,date:"2019-03-05T12:00:00-05:00",title:"Intro to Authentication",lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:iX},contentType:K,file:iY,folderId:R,id:iZ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:i_}],description:"Let's explore how token-based authentication works and how we'll use it throughout this course.",duration:"00:03:26",author:O,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:iX},contentType:K,file:iY,folderId:R,id:iZ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:i_}],facebookImage:[{__meta__:{createdBy:c,createdDate:iX},contentType:K,file:iY,folderId:R,id:iZ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:i_}],socialSharingDescription:"I'm learning about user authentication in a Vue app with @vuemastery",belongsToCourse:eb},{slug:"project-structure",status:H,date:"2019-04-01T00:00:00-07:00",title:"Project Structure",lessonNumber:U,free:G,image:[{__meta__:{createdBy:c,createdDate:i$},contentType:K,file:ja,folderId:R,id:jb,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:jc}],description:"We'll take a look at our starting code and understand the steps needed to add authentication to an app.",duration:Ds,author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:i$},contentType:K,file:ja,folderId:R,id:jb,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:jc}],facebookImage:[{__meta__:{createdBy:c,createdDate:i$},contentType:K,file:ja,folderId:R,id:jb,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:jc}],socialSharingDescription:"I'm learning how to add authentication to a Vue.js app on @vuemastery",belongsToCourse:eb},{slug:"user-registration",status:H,date:"2019-04-09T23:00:00+07:00",title:"User Registration",lessonNumber:ab,free:F,image:[{__meta__:{createdBy:c,createdDate:jd},contentType:K,file:je,folderId:R,id:jf,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:jg}],description:"Let's start registering users into our app, which gives them a token to access protected dashboard data.",duration:"00:09:24",author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:jd},contentType:K,file:je,folderId:R,id:jf,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:jg}],facebookImage:[{__meta__:{createdBy:c,createdDate:jd},contentType:K,file:je,folderId:R,id:jf,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:jg}],socialSharingDescription:"I'm learning how to add register users into a Vue.js app on @vuemastery",belongsToCourse:eb},{slug:"user-login",status:H,date:"2019-04-23T23:00:00+07:00",title:"User Login",lessonNumber:ac,free:F,image:[{__meta__:{createdBy:c,createdDate:jh},contentType:K,file:ji,folderId:R,id:jj,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:jk}],description:"Learn how to log users back into the accounts they created with our app.",duration:"00:11:34",author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:jh},contentType:K,file:ji,folderId:R,id:jj,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:jk}],facebookImage:[{__meta__:{createdBy:c,createdDate:jh},contentType:K,file:ji,folderId:R,id:jj,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:jk}],socialSharingDescription:"I'm learning how to log users into a Vue.js app on @vuemastery",belongsToCourse:eb},{slug:"user-logout",status:H,date:"2019-05-21T12:00:00-04:00",title:"User Logout",lessonNumber:W,free:F,image:[{__meta__:{createdBy:c,createdDate:"2019-05-20T21:31:43.666Z"},contentType:K,file:"1558387901115_main.png",folderId:R,id:1558387901115,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1558387901115_main.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=WRJ6K3xy8jJALBRBbs6TmVD0riNKKV7pnOgQkW2jgFVcw4T385dXp%2FLEbPaeDX5Rj01nRT33pgvFyzkhm9%2BOxQHNk3JsStwfke7tvqqDdEp%2B%2Fna7q65iSGAC3voYt74jJL09w0CAaSxHdh5uh5eEwE3RlWPWimg0Z2oCLc2GGyErFD92EQrZyUXyc%2FqlQiknk7c85tECScOWAAqRPbV%2BGaKhTtv%2FhrEjpjLBfsi0SwJSpDdH78WO0uLYL329w2yFizvH3maiaxPkgE84s2IXRixEuAvSfoE93%2Fuxm5rJrfAgDK7zYVG2cIscX0CfJcZjI4EPknyszqH%2FZFVNiHYrOQ%3D%3D"}],description:"Let's learn how to log a user out, which reverses the steps we took when we logged a user in. ",duration:jl,author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:Dt},contentType:K,file:Du,folderId:R,id:Dv,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Dw}],facebookImage:[{__meta__:{createdBy:c,createdDate:Dt},contentType:K,file:Du,folderId:R,id:Dv,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Dw}],socialSharingDescription:"I learned how to log users out of a Vue.js app on @vuemastery",belongsToCourse:eb},{slug:"handling-errors",status:H,date:"2019-06-11T00:00:00+07:00",title:"Handling Errors",lessonNumber:S,free:F,image:[{__meta__:{createdBy:c,createdDate:"2019-06-10T22:37:19.103Z"},contentType:K,file:"1560206237797_errors.png",folderId:R,id:1560206237797,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1560206237797_errors.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=k9iMzdXTTcNbT34mZIBGdR6MhW39feURyn5Tqu5J5OQ54o2PApXPUtNpHonDj%2FVMBvNOCrouBJyY6%2Fs4nBuSP4zHz%2BYJNCxBSJRL5SQlPT9l9g8qIZjW2efVCTywR%2FR6gf%2BTsusWji4MRFYvnlR8Nyafk7RSwigZJQuwgV5dUDy6zH%2BFjOSsFEg%2FjZYf8Z9MRglRbdKBCOmnOmh2sI9YoTFz09kmfFX9ObFVi0ZCi7loQpv5ap0AnBWWQjZmVtlL2Ly7pFQ06JJQ2nmW3kMdlZ3pNQZs4yakz7OwedexMCkQ1Cz%2Bz7m5DerBzP1qusM8CSACqTxWb1hINN1DcWGeSg%3D%3D"}],description:"We'll learn how to handle some of the errors that can happen as users attempt to log in to our app.",duration:fi,author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:Dx},contentType:K,file:Dy,folderId:R,id:Dz,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:DA}],facebookImage:[{__meta__:{createdBy:c,createdDate:Dx},contentType:K,file:Dy,folderId:R,id:Dz,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:DA}],socialSharingDescription:"I learned how to handle errors that might happen when users log into my app on @vuemastery",belongsToCourse:eb},{slug:"automatic-login",status:H,date:"2019-07-02T12:00:00-04:00",title:"Automatic Login",lessonNumber:ae,free:F,image:[{__meta__:{createdBy:c,createdDate:"2019-06-28T13:43:48.369Z"},contentType:K,file:"1561729426273_1.png",folderId:R,id:1561729426273,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1561729426273_1.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=Ssi5U9cQaqCc1STJrBaKlFT2SIkgpA8XEPiO6gYGjfjOKNqi9IgkWUyfBAIWRSdW6WxGljsTnI%2BE%2FGwFBppgJsUMT2zVUK3Z6BqMNgXQGVtKTjEgGf%2BX%2F3gzBeWtr7XlADvuutrQmRREqYqFmSf%2FhnyKNQQAC2Ht8eHyYBbTNNnmDK8H2PWZAxWb49WmeYp7mPDCbeA0qObNmkXxaLYwDDwgMnenyiV1MXXkF8fnP1kmqUjbYFHmIf0udTBwMRIN3XYI2nTJiLSFbEXEWHCDQJpjbSL8Kn9oU2rEaadeAuqBEeI%2Bx6R7LeR1elCT8doLgeaLDhE7uXprOR3%2BND9xQA%3D%3D"}],description:"Learn how to restore user data using automatic login.",duration:jm,author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:DB},contentType:K,file:DC,folderId:R,id:DD,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:DE}],facebookImage:[{__meta__:{createdBy:c,createdDate:DB},contentType:K,file:DC,folderId:R,id:DD,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:DE}],socialSharingDescription:"I learned how to implement automatic login in a Vue app on @vuemastery",belongsToCourse:eb}],lessonsCount:ae,order:an,parentId:M,slug:"token-based-authentication",teachers:[{firstName:cs,lastName:cx,about:cy,image:[{__meta__:{createdBy:c,createdDate:cz},contentType:E,file:cA,folderId:X,id:cB,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cC}]}],title:"Token-Based Authentication"},"1555089048381":{__meta__:{createdBy:c,createdDate:"2019-04-12T17:10:48.381Z",lastModifiedBy:c,lastModifiedDate:"2024-03-19T20:55:44.368Z",locale:T},category:[{name:d$,color:ea}],completable:G,courseDependencies:J,courseLabelsBar:J,description:"Core team member Damian Dulisz joins Gregg Pollack to build a Trello clone in Vue.js together. We build the app using Vuex, local storage, the browser drag and drop API, and lots of component refactoring.",difficulty:aQ,duration:"02:21:19",free:F,id:c$,image:[{__meta__:{createdBy:c,createdDate:"2019-09-25T19:32:53.994Z"},contentType:K,file:"1569439972753_6.png",folderId:R,id:1569439972753,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1569439972753_6.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=tEXO8VkQ85FP1Ot8Km1wmGKgVtB%2FGeBCZNmgey6L0YPlHFMDjJMZckLZxST%2B5rHtnKLdgZUrapJ%2FcKlgjUA3wZB%2B5n9JNQsxtd4Mjr4EXv8GH1IQWnl7fKrvU0tN5nRUz7U%2FxJnSA1jqWuaBV%2Be6W8KCC2Uiq5SfMyPoNaL7z555eJIIvja2y2CTS68JI2wSuxEpbXaXI2UVUOfGyQi%2BSVXv6ITL2T6r91Pwy2rd7CmGaraYuYJufX35OWTTtQOAS8tqQw5xwN%2B7%2Bgm0LwVotcv%2FoNi0nTZyxhpwXacUuY3dtsCVniapctRhQWh5mwnCXsogavu878pXC9NMXWOpag%3D%3D"},{__meta__:{createdBy:c,createdDate:"2022-05-15T19:45:45.092Z"},contentType:K,file:"watch-us-build-trello-clone.png",folderId:aR,id:1652643895979,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fwatch-us-build-trello-clone.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=nTx9XCb%2BFdfEx1mvVhYKN6VBVVn8Ba0iVaJPJg0WPrExbqlIqt1zhWUquJHCBRlbr6mSlzGOp9i4rs04EWakOIkX4aThdLyondu55iQM45%2F8u3XFHw3LMDaqHPZTjS1tEihNmiQxsXQgb0Le16tiXhSaUl%2FQ%2BRyBd3CVwGrmnONMp4LYFIReuzTi1Y4FOZrC5BjMseciWvm3uPGdntltsLWDFQg1kfU8XG9xd59XPHuNucJ2a%2BUh%2FWz7dcDaca86svusDjU4RUIW98%2BQE%2BGR%2BwTa5moTtFqQoPdTY%2FvGIyObF0%2BODkMIdQZRkt8j0%2Fqq1HrerCIpBYjbIRnBg1dCOw%3D%3D"}],isComingSoon:F,isDraft:F,isPromoted:F,label:ad,latestAt:J,lessons:[{slug:"tour-of-the-app",status:H,date:"2019-04-16T12:00:00-04:00",title:"Tour of the App",lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:"2019-04-12T17:25:27.343Z"},contentType:E,file:"1555089925338_title.jpg",folderId:bt,id:1555089925338,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1555089925338_title.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=MPE28k5%2Bq37xaB8vCNF1fpYFBWM7%2FspYIRBbfkHIIqdVkjXo1p4obxeb0DdrV44UbSEMnyu2VwAQIgf5aXtNn0zRLIcMsFxB8phoJspDBq2gm1XwWIf6dzau3cMEVAhTBYfI5WXO%2FxUzswXrv6ChI29kCWQdksT8VESpxASMbHK%2BiDwvnNXp%2BQAoMIjXEZ369hW37NMarj1KrT1d%2B2UqTJb%2F5dewg2uSG4ej08ByAWawRwYL2SU7z6sd1w6v5HtEwzrO8Eqe7dvcTW8P67R4YGUdndIRIZyw7t6DIbFR8ebL8LXiv%2FyioPshfBQ6a0adFoihvC9nzUo0kpTox9rjfA%3D%3D"}],description:"We introduce our application and the concepts we'll cover as we build it.",duration:DF,author:ec,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:DG},contentType:E,file:DH,folderId:bt,id:DI,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:DJ}],facebookImage:[{__meta__:{createdBy:c,createdDate:DG},contentType:E,file:DH,folderId:bt,id:DI,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:DJ}],socialSharingDescription:"I just finished watching @damiandulisz and @greggpollack begin to build a Trello clone in @VueJS on @VueMastery",belongsToCourse:c$},{slug:"building-our-board",status:H,date:"2019-04-12T13:26:29-04:00",title:"Building our Board",lessonNumber:U,free:G,image:[{__meta__:{createdBy:c,createdDate:jn},contentType:E,file:"1555363287608_coding.jpg",folderId:bt,id:1555363287608,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1555363287608_coding.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=rTo8O2QNBvWu6zQzxZzyKwn7R6VGhv1Xik96CwyIlk8EL9o8Po%2FWjQ1%2BRXU8cTZ4%2FjsJdizns5RYTAMV%2BVzZJpKN7CFvrenJoRArNTxfbDWKDt%2BPa80Sj6JODJ2JhlJObh5csqGrNhKH1GdbC9cXlQ7hPGhDAFqEviHafoy6EtMrsOb4D606mQj7wKB3tXfTA%2BiwNb6Dd2YTh4cDfA%2FgczJyvTcNarcrkPiXzgqA5RhXLxeiCCoPDRT9P53qyhkYas5xH1oVsuOjiHRyd1kKF70quRCDjJUsh3DYl7PgwJNvqaFZnonI0bt68BHUHKwFU48Q7YcBL7Ja%2B6c89BE1eg%3D%3D"}],description:"We'll take a tour of the starting code, build out our Board using data in Vuex, and save\u002Fload our data from the browser local storage.",duration:"00:16:15",author:ec,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:jn},contentType:E,file:DK,folderId:bt,id:DL,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:DM}],facebookImage:[{__meta__:{createdBy:c,createdDate:jn},contentType:E,file:DK,folderId:bt,id:DL,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:DM}],socialSharingDescription:DN,belongsToCourse:c$},{slug:"opening-tasks-in-a-modal",status:H,date:DO,title:"Opening Tasks in a Modal",lessonNumber:ab,free:F,image:[{__meta__:{createdBy:c,createdDate:"2019-04-29T19:18:34.324Z"},contentType:E,file:"1556565512709_coding.jpg",folderId:bt,id:1556565512709,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1556565512709_coding.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=UVd3Ire9%2BqN2FihcTig9YUw5DtA8XWf2DYKAxXtYBbnQpptlecmjHKuYmoqlzenAUfTP6nYgNCgaCwOMSmS6RTXXNM69%2F%2BqJH%2BrgKO47zqN93M3CvjVP4AsS%2BmQTzCyMyDr1gnLXs8v576uJRVkLhjIjBVHnrCcKP%2BBHpmo%2BTltTxE0sO%2B%2FY7yy5S%2FYR5tZI0MpnvAMUQCMwaC4Pjq9Agvo8lyLB3YfZVGJG6AFfU57UeDD3uc1yJ7ElDG1JbfNgWQfT2vEBV0O4i2I88r4BYJno65k9gpj7BapbsMoAGUSDp1rrgCkKSFIsUIo4g4fmx6IYMH5fuo9EsUmCr%2BOO1A%3D%3D"}],description:"Watch how we add a modal which uses a child route to display task information",duration:"00:12:55",author:P,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:DP},contentType:E,file:DQ,folderId:bt,id:DR,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:DS}],facebookImage:[{__meta__:{createdBy:c,createdDate:DP},contentType:E,file:DQ,folderId:bt,id:DR,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:DS}],socialSharingDescription:DN,belongsToCourse:c$},{slug:"adding-editing-tasks",status:H,date:"2019-05-07T18:00:00+02:00",title:"Adding and Editing Tasks",lessonNumber:ac,free:F,image:[{__meta__:{createdBy:c,createdDate:"2019-05-05T19:02:44.417Z"},contentType:E,file:"1557082962387_edit-task.jpg",folderId:bt,id:1557082962387,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1557082962387_edit-task.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=UXoYPsIjm1qZeG6W800F4KSwU8ckFg5PC2xFUrzQnB1SMHzqxAtmK1TZoVNfDysF36JBUdTefUA38O1ubhGAkVYOI%2BObLxY7U4ixthH3SWu26mDyFfxpQyyIUV4wFzDiCe1L2LD2vvEwwA5pJXnXgIqTeXT%2FTL1ib0ABMqHOw8MDRNFNJusn2CCbs8j%2BHDY6Ty9E5MS5BxA1lgFPMFAhXT%2FiFhSxijEjtA7PMQnDjdWDPm2jTRf%2FhQyU2J%2BnaTEv2jQfaJLk05imUWgI2VqXgk%2BSHByeFgDG0bl8HP0sw8sSMAXW9KymoeBLLATtN4Vg0DsyJAlPiVav6ZxIs1Asnw%3D%3D"}],description:"We add the ability to easily add & edit tasks to our app with forms & Vuex mutations.",duration:"00:12:22",author:ec,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:DT},contentType:E,file:DU,folderId:bt,id:DV,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:DW}],facebookImage:[{__meta__:{createdBy:c,createdDate:DT},contentType:E,file:DU,folderId:bt,id:DV,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:DW}],socialSharingDescription:"I watched @greggpollack and @damiandulisz add & edit tasks to a Trello app with forms & Vuex mutations on @VueMastery",belongsToCourse:c$},{slug:"drag-and-drop-tasks",status:H,date:DO,title:"Drag & Dropping Tasks",lessonNumber:W,free:F,image:[{__meta__:{createdBy:c,createdDate:"2019-05-08T16:01:43.080Z"},contentType:E,file:"1557331296871_watch-drag-drop.jpg",folderId:bt,id:1557331296871,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1557331296871_watch-drag-drop.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=lrccARqLQbH0HanYynBaKRAmSuxtvskuJqCqm32KFC4ihf0pd5yXoA2EoQNKY4nTmGevQQ%2BSvsNyXKsq93IYskYrSAjOLKeKJL02D9QkFbTo9N5ZwKy9tsv2j4Ky94%2BZxoNZisOlCy90iSbWsG8KZG9N962a6Tpxa7%2Bl4aS7N3sZdKlestNY4WjHtlRZedXkd96x01W4c9wFD0jm5Es3w9e2jin3WBOPB7obu0WpWyRZKhIvx5PmC9xmV8cdm27bP1SQTqvRnTg%2F52btNBuF%2FnJOaPBTSOYQBsPYxKXGHLDG7GN%2FjGm82tePbh7tVsRjnpFiJAj24kOd6o0cxuNtNA%3D%3D"}],description:"Watch us implement the browser's drag and drop API to drag and drop tasks into different columns.",duration:"00:13:08",author:ec,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:DX},contentType:E,file:DY,folderId:bt,id:DZ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:D_}],facebookImage:[{__meta__:{createdBy:c,createdDate:DX},contentType:E,file:DY,folderId:bt,id:DZ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:D_}],socialSharingDescription:"I learned how to use the browser's drag and drop API inside a Vue app thanks to @VueMastery.",belongsToCourse:c$},{slug:"dragging-columns",status:H,date:"2019-06-04T12:00:00-04:00",title:"Dragging Columns",lessonNumber:S,free:F,image:[{__meta__:{createdBy:c,createdDate:"2019-06-02T19:43:09.780Z"},contentType:E,file:"1559504586004_drag-columns.jpg",folderId:ao,id:1559504586004,type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1559504586004_drag-columns.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=JLF3ja9SiGV%2BeHSDIJnIKG1%2BwZQayZGtNc9CHrLlxiTEQ3y%2BL5%2ByoMoBI9qDlyRSCRRQ8pjcEZPFk3zOpcZys%2BQ0mfNwkyc53LEicCaUTDSKyv53o0NWesuZ115Atmpn3joVX6kKJ634fb4FmjaOCgs4zJSeZyBXdFK4RW8uePmZ5VROAJLgn1CqYg%2F72s9Va5tHvfA8ywxsfdulo9W53Ib%2BbcHfzOLSfI%2F4kN78A4NVqse7oWqtvodrimcUCv1fKaMaEI5ax8yMN%2FW%2B4kP9%2FxgcD9SI978tzq8NqHJupbCxtYFpNz%2FeBZvPClBVJwL4IE%2FeudF5B3hA%2BfPqGXgFSQ%3D%3D"}],description:"In this lesson we will complete our drag and drop functionality by adding the ability to drag around columns.",duration:"00:23:02",author:ec,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:D$},contentType:E,file:Ea,folderId:ao,id:Eb,type:d,url:Ec}],facebookImage:[{__meta__:{createdBy:c,createdDate:D$},contentType:E,file:Ea,folderId:ao,id:Eb,type:d,url:Ec}],socialSharingDescription:"I just learned how to build complete drag and drop functionality using Vue.js on @VueMastery",belongsToCourse:c$},{slug:"adding-new-columns",status:H,date:"2019-06-18T12:00:00-04:00",title:"Adding New Columns",lessonNumber:ae,free:F,image:[{__meta__:{createdBy:c,createdDate:"2019-06-17T18:48:34.312Z"},contentType:E,file:"1560797312759_vuex-mutation.jpg",folderId:ao,id:1560797312759,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1560797312759_vuex-mutation.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=nOIJOmcEkcH3YW1WrAmV7ab3w%2BKpgJ0oKkMjeVv%2FJ%2Ft%2FA4TQtDRe0ZdPFXk7t1EG%2Bz%2F1LmqOvukaKzyObzgEWEt%2BhhtxEZxdlIoDb0pQByanR9j%2F3At3K6iMw0cH4sZjwAB3EdNUL0EHEVvC1o5MPWHmijLd83BenX%2Bbt8%2BP6pwFgihSoDx8FUzhdvbMi%2F3pG4Pr1MDkCBWMaj939O2xn56NJIR5aGWEhkFnzRnaDsYvVXFC6wkEnXpV0GEaYcIoApuOOFc7KUkbG8yPCJRTZJFP08qNbZFe7aIEdVXbFtbc1Yt4sy5uIXe64cV0Ifuw06q4EtCVtpCR3OEw29K1mg%3D%3D"}],description:"Let's add the ability to create new tasks & discuss Vuex mutations vs actions.",duration:Bv,author:ec,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:Ed},contentType:E,file:Ee,folderId:ao,id:Ef,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Eg}],facebookImage:[{__meta__:{createdBy:c,createdDate:Ed},contentType:E,file:Ee,folderId:ao,id:Ef,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Eg}],socialSharingDescription:"I learned how to add columns in a Vue.js baded Trello clone I'm building on @VueMastery",belongsToCourse:c$},{slug:"extracting-components",status:H,date:"2019-08-06T12:00:00-04:00",title:"Extracting Components",lessonNumber:ah,free:F,image:[{__meta__:{createdBy:c,createdDate:"2019-07-08T22:25:59.339Z"},contentType:E,file:"1562624757972_refactoring.jpg",folderId:bt,id:1562624757972,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1562624757972_refactoring.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=VmEizkYToVxCUh9dsYGG4jeNxefY%2FxiAD5GoLta%2FCVgXk%2BkOMEa%2F6uywFw2C1NSZZRb4DZqVdro8zw2n2%2B7xgdWMgEdtBzgq796%2BfTp%2Fd4dzMrX6fPydnbRqoZUjznICHoXj%2F7EjkRWLr2ZUYlNaHkBGRXeTIvAAbhCtLtAt63ssoUVr19B8X9Dz3Tp9PVITQyBrPORPSV5wqBfP%2FBfy0y2lEuwncRU55JJ8jXEgLfrPrl1c6TqSkS%2BnbqoBUe%2F66hvOKdsaus5n5WgJNw51v5he1JDnm6wdW9pZGWnv2h3Qb7Ur7rEeGgq%2BrZlX3tALzJKeYsDQ%2B2HPgI%2FZlr4vjA%3D%3D"}],description:"Watch Damian refactor our application into smaller components methodically.",duration:"00:19:30",author:P,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:Eh},contentType:E,file:Ei,folderId:bt,id:Ej,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Ek}],facebookImage:[{__meta__:{createdBy:c,createdDate:Eh},contentType:E,file:Ei,folderId:bt,id:Ej,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Ek}],socialSharingDescription:"I learned how to refactor my components thanks to @damiandulisz on @VueMastery",belongsToCourse:c$},{slug:"creating-a-mixin",status:H,date:"2019-07-23T12:00:00-04:00",title:"Creating a Mixin",lessonNumber:an,free:F,image:[{__meta__:{createdBy:c,createdDate:"2019-07-22T16:28:39.244Z"},contentType:E,file:"1563812917415_Mixins.jpg",folderId:bt,id:1563812917415,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1563812917415_Mixins.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=mmOFaIoD54x1oqPz%2FASi3IgnUECg%2BzlshMp%2BY8rD1jzXDKX%2B4tBlrjiQbUdhOk1Ds7sPKdP2QYfxMSzr%2FlpqA2KRkLGDKqSZln4VuP6IDy9TWMRVudMv7sIPAFWE22pb76I1EXvpM3%2FCYa5iVC3geS4IdFstEwnHeUYoX4Hmqg%2BVeKgk3tGE2vbdhOjoJ4ubF0VDo5XiAo8W4ktWYH8niZ4cCLWuEkAea%2BOcB9IieZZgKI3FOZp5T68F2YUo96%2BwqxMsAq%2BrzluuDPbtZQxTj46x256pC8E1jxD5ZaLOBk44JvGIBK%2BlUa6F4AS7BkwC%2F5dLP1gymfFkM4X8pidojw%3D%3D"}],description:"Two of our components have duplicate code. In this lesson we extract this code into a Mixin.",duration:Do,author:ec,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:El},contentType:E,file:Em,folderId:bt,id:En,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Eo}],facebookImage:[{__meta__:{createdBy:c,createdDate:El},contentType:E,file:Em,folderId:bt,id:En,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Eo}],socialSharingDescription:"I learned how to create a Vue Mixin with @damiandulisz and @greggpollack on @VueMastery",belongsToCourse:c$},{slug:"extracting-drag-and-drop",status:H,date:"2019-07-23T00:00:00-04:00",title:"Extracting Drag & Drop",lessonNumber:aS,free:F,image:[{__meta__:{createdBy:c,createdDate:"2019-07-24T19:13:22.729Z"},contentType:E,file:"1563995600716_laughing.jpg",folderId:bt,id:1563995600716,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1563995600716_laughing.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=w%2BdRCG7tGObtMebwpkqzRGapS9mXyddWI0NKBLb03NkZ%2FLAPQOFXXOVfkG2YJ60GP%2BhkdqHjNUxAQ6Q%2Bvom1vxEdfnsWGKncpAYp3CHSHMptApGma%2B2s9UTodKEzx49iuPeirms116XfRkf7X7CFb7Lg%2B5GUxyqzD5ibSxhY%2FZ%2FU2WM31weUFo99a1reN5ECIjl%2BGr5MGClAe1BOFkch9%2F0XinXxRI4lNY%2FBu%2BINpE4YpyHCD8ZW6t11GvnPv3qIS6TUog9sgA%2FzSF2DHccVKTHx3ITOkdwmyPH4EErw5Qq58OCKpBZVHrEQk5JyxC3xfOD9RuH3YNIxcWkAkaxLqw%3D%3D"}],description:"Watch us extract drag & drop functionality into it's own two components so it can be more organized and reusable. ",duration:"00:25:29",author:ec,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:Ep},contentType:E,file:Eq,folderId:bt,id:Er,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Es}],facebookImage:[{__meta__:{createdBy:c,createdDate:Ep},contentType:E,file:Eq,folderId:bt,id:Er,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Es}],socialSharingDescription:"I just finished watching @damiandulisz and @greggpollack build a Trello clone in @VueJS on @VueMastery",belongsToCourse:c$}],lessonsCount:aS,order:aS,parentId:M,slug:"watch-us-build-trello-clone",teachers:[{firstName:dw,lastName:dx,about:dy,image:[{__meta__:{createdBy:c,createdDate:dz},contentType:E,file:dA,folderId:X,id:dB,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:dC}]},{firstName:"Damian",lastName:"Dulisz",about:"Vue.js Core Team Member and tech lead at Coursedog. Author of the Official Vue.js Newsletter and several popular open source libraries: vue-multiselect, vuelidate, vue-global-events.",image:[{__meta__:{createdBy:c,createdDate:"2022-05-24T22:33:08.098Z"},contentType:E,file:"damian-dulish.jpg",folderId:X,id:1653431574884,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fdamian-dulish.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=Jo3WrQP1Csat%2Fyccm%2F0H2IE3b9%2FBhXqEAWFsXjHGlL6oKp0jBNtTaqQ%2BZM6un68rOMfGdf1IkSmu1rXqg2Nueft6wvYuCz7J3UkakK18TVAPb5yVJqoQmNTSHAzFu0CQTZeVu%2BTJbS5A%2ByszFbqDb7i4ibrOQWPTYNH%2B0zg9YmZYJ1odLnqefMsjKEUwfD%2FFxycz1eoLl82%2FOCuc6o%2B777hddoK7cXLcaxTUIN%2Bl4IieIHJatXFTARUW2DofUjFD2VLA4ZUncW6OUjDSE6DmVnoJdQi%2F4eUGlvo43u%2B5CAiDF4ZgslxarroywgLnOpRbi89XpRL%2F8DtVmAwCKxMt2w%3D%3D"}]}],teachersCourseInfo:[{description:J,teacher:1653428614491,uniqueKey:"x3zRMGK2a"}],title:"Watch us Build a Trello Clone w\u002F Vue 2"},"1562174576131":{__meta__:{createdBy:c,createdDate:"2019-07-03T17:22:56.131Z",lastModifiedBy:c,lastModifiedDate:"2024-10-17T20:20:42.453Z",locale:T},completable:G,courseDependencies:J,courseLabelsBar:J,description:"Learn how to create beautifully styled and structured web apps using Vuetify, a material design component framework.",difficulty:aQ,duration:"01:27:00",free:F,id:dD,image:[{__meta__:{createdBy:c,createdDate:"2019-09-25T19:33:35.086Z"},contentType:K,file:"1569440014103_7.png",folderId:R,id:1569440014103,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1569440014103_7.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=Jg%2F5Be2nnkYPC1NlBjfXZNtUOnTyrfr%2BWzGzo%2FHscFuToO96O3uZCbZ%2BjVX03f85%2FGa%2Bp6UGQ6GURj1yA1YVELTTAxmsYK7ZzDydfCGTZrVHbIHHjrWw491BxKC3ytLYAhLqu36jF3%2FLIXuE7jr7m553GfeUzGf6cumxyF8Kx%2B7QQsA0G7D%2FJDdBUd2q6AeD1K%2F8I3O1xgy2p214%2FuA1l9xvf6bkKmWIgKw2Y%2B3zLF9lsxD8lBcNy3fqMr7khSNvlwvFb4UYXEtI8Gyxu0fzxw8T1dodlI9rcL2ANUEO2OUhq3ts1ctlBf%2BpXOlIxBylyRnpyW7OdxjrjomjVe4%2BVg%3D%3D"},{__meta__:{createdBy:c,createdDate:"2022-05-15T19:45:40.025Z"},contentType:K,file:"beautify-with-vuetify.png",folderId:aR,id:1652643553813,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fbeautify-with-vuetify.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=b85mnGyvPI5LQytdkVf5HrhHkXT5Hs%2FCmDGB6XGKXIwxiWNyQ4GYB2tulU9wgOuwbX%2FYo6wVmWpndwZSKVWTIor8p0OdGvVW8%2B%2BduoZfefm2Taiz0HkKnojWewC5qqskB1OobhFfikh18r61gAZZuuJEVjc7BkzUeQex1%2FDsM7f5jMdnhYwmU%2BNZnF0YB5FRhjBhnkjMV9%2FZg%2Bl9C95UlY84lziS5xYuKaOXeAXHA1K5RdM4kRbRnPSjArjdqp%2FmujcnKPINn7t7XNrd6rqXlovOuxJT%2F8z7BfpZLCEJshe%2FiMKqANRluBY9YiqY4Nv4SY8h4zAMtBdvrQ%2BB5xIDJA%3D%3D"}],isComingSoon:F,isDraft:F,isPromoted:F,label:ad,latestAt:J,lessons:[{slug:"getting-started-with-vuetify",status:H,date:"2019-07-09T00:00:00-04:00",title:"Getting Started with Vuetify",lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:"2019-07-08T23:54:55.796Z"},contentType:K,file:"1562629943700_preview-no-play.png",folderId:1562625614289,id:1562629943700,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1562629943700_preview-no-play.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=LysXiP6Ij1JZ7LZ2rB9M386%2BXasYByiPWNESIT6LDodUCxFM8VTCF8bBiIETZ17EpCpywS7S5Vk0zI%2B6kmkwxmIBWqhcVDpO8CscCAWtzKbdRqUWai%2FEON0d%2BM1kDL9jA13r8mmPuEHndol38tFBmks6CTZnd7TSLMSYcs06yhgEHEkh3qNaJ9zexQyzW6IG7ypekxZEpn3jPD3VoJYvvNMcnILB6PVEXzIH8Cb1HH9QOYfZtRbyLiGSLABNdRf9rfZP8T5Ucj5NpWM7N5DnbYVCBJ0npJMX4en%2BsLEVnz4NswD%2Frr%2BCAHpnwlt%2BPr30QLgGFp8ZCtIYxUO%2BmQ%2BDAA%3D%3D"}],description:"Learn how Vuetify can help you make beautiful apps with Google's Material Design.",duration:iW,author:N,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:Et},contentType:K,file:Eu,folderId:R,id:Ev,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Ew}],facebookImage:[{__meta__:{createdBy:c,createdDate:Et},contentType:K,file:Eu,folderId:R,id:Ev,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Ew}],socialSharingDescription:"I'm learning how to build beautiful #vuejs apps with @vuetifyjs at @vuemastery with @bencodezen!",belongsToCourse:dD},{slug:"components-part-1",status:H,date:"2019-07-30T00:00:00-07:00",title:"Components (Pt. 1)",lessonNumber:U,free:G,image:[{__meta__:{createdBy:c,createdDate:"2019-07-30T04:18:41.445Z"},contentType:E,file:"1564460319558_02-vuetify-lesson-2-newsletter-image.jpeg",folderId:jo,id:1564460319558,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1564460319558_02-vuetify-lesson-2-newsletter-image.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=gsr1yS5OIJW9XYNl4WvIGAb6lC3z7OJSD3Lp9WMwYvJpTc29nkogpgdvIW0TT1FwJfT38c%2FCzo3HnvE6VJYrWyBq6%2B1h2mrd1TCSAYkBZFyHZWBvBOT%2FM7XWfCstSKna%2BILHVdvCN2Ki2iNR21%2FPgTLi%2FwTXWGkoYQJGNAVydKyf%2FvXGqf3BevVVqnjTWpPQp1gOxqfg9igElFFfKTuZdodMenc3jbEHBG4ZIY4Fm81s%2BKpQpH0vHf5H5WIPyCbqlLdnXdpO8W%2FXvCC%2F%2BX9XOumBQ9B%2F0PQyaHEcnqgoX3oXm7SdYCQgjLhltMdSL%2B%2BFbNlYNJwc6wf%2BpCj3s%2FkYrg%3D%3D"}],description:"Now that we know how to install and setup Vuetify on our app, let's take a deeper dive into Vuetify ",duration:AG,author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:Ex},contentType:E,file:Ey,folderId:jo,id:Ez,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:EA}],facebookImage:[{__meta__:{createdBy:c,createdDate:Ex},contentType:E,file:Ey,folderId:jo,id:Ez,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:EA}],socialSharingDescription:"I'm learning about Vuetify components on @vuemastery with @bencodezen",belongsToCourse:dD},{slug:"components-part-2",status:H,date:"2019-08-13T00:00:00-04:00",title:"Components (Pt. 2)",lessonNumber:ab,free:F,image:[{__meta__:{createdBy:c,createdDate:"2019-08-13T14:35:11.125Z"},contentType:E,file:"1565706909593_social-media.jpeg",folderId:jp,id:1565706909593,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1565706909593_social-media.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=CuqlVL61DLM%2FJD2j%2BfnsRmhvFQg9uq73yrZ51EWqDm154h07zOSjlMVP9HcZ%2FF0FXfTz532cPUp5LpLhJMUjUS21bK8KcrN2eFgj32iScbRf%2FrdXPWfq0gvcvJQO39vXz%2FERjE1wcZBm1Bwzg2QexJOrc9CsX2vsRB%2BEBTa0vfdy9N1xp59%2BcR5QtUagNd6yq6%2Bcnw6%2FfxXmV65WVxkaWD0Z4UJB18yHwJw9Jk9T3skm0hwYm%2Bv2UAD%2B8BtJfK1buBuj2a%2FB3JdfARVQ1lCU7%2F02jqF8gzpJah821TmDYPIa3TD45FfUXhFFRflBTVg6pbP0iKmlpR%2BEpiGjZFLX5w%3D%3D"}],description:"With a basic understanding of Vuetify components, let's take a closer look at more complex components!",duration:"00:14:35",author:N,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:EB},contentType:E,file:EC,folderId:jp,id:ED,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:EE}],facebookImage:[{__meta__:{createdBy:c,createdDate:EB},contentType:E,file:EC,folderId:jp,id:ED,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:EE}],socialSharingDescription:"I'm learning all about Vuetify components on @vuemastery with @bencodezen!",belongsToCourse:dD},{slug:"layouts-grid-system",status:H,date:"2019-09-03T00:00:00-04:00",title:"Layouts: Grid System",lessonNumber:ac,free:F,image:[{__meta__:{createdBy:c,createdDate:"2019-09-03T05:10:49.317Z"},contentType:E,file:"1567487445428_Vuetify-Lesson-04.001.jpeg",folderId:jq,id:1567487445428,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1567487445428_Vuetify-Lesson-04.001.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=ur1gPZDlHZArGtu5Wl1SmqvSp7WfvvWOAyU9UlSlhqvVxA8xEQYCH1ovYt0mA%2F8qy6YV%2BtgM9GaEsSjlPDgiZ6hflQmU0KskEbBcENzKTQeD4GGO63mC%2FlJFQLkCGxry3elv%2FT4exb75ogaCoshe1ZXNd4wDxitrJxsQkdJBwRYW%2BeQA2lr7Qib682vRH8LvZR71nlS8iFKWlCXsfDqlKtgbVZccxJidfqhZmZMlUgoYv8R5zWpmWcz5QrhJIekBjegCCVkGl3Fl9FHkkAJmrJOiZEkeZl5xSAVOou3V%2Fx998%2Be6DWfEbOys80I78pAwcady3ruDWrl7AUvbb5AqeQ%3D%3D"}],description:"Create layouts for your application with Vuetify's grid system!",duration:is,author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:EF},contentType:E,file:EG,folderId:jq,id:EH,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:EI}],facebookImage:[{__meta__:{createdBy:c,createdDate:EF},contentType:E,file:EG,folderId:jq,id:EH,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:EI}],socialSharingDescription:"I just learned how to layout my application using Vuetify's Grid System!",belongsToCourse:dD},{slug:"layouts-responsive-design",status:H,date:"2019-09-17T00:00:00-04:00",title:"Layouts: Responsive Design",lessonNumber:W,free:F,image:[{__meta__:{createdBy:c,createdDate:"2019-09-16T15:15:12.728Z"},contentType:E,file:"1568646908986_Vuetify-Lesson-5-Featured.jpeg",folderId:R,id:1568646908986,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1568646908986_Vuetify-Lesson-5-Featured.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=QSecpDy1FbUwXEvgV3RkD3l%2BIxsbqO8xyvbg0iWQJsSWH3C3X3TN17xepc1gxnnja1qfYQIjhN8zsKtz5gkm0BgdTFLTCkhaDGbTxEDGJbe%2Brb6dbgQecOurNVEbwqtHs2BDScQ7yqBmrjgt0Qyu7tK%2Btzq3Z1LYdNf81g4a%2FSOG%2BlnthIp51K0x2Cq%2Bl207Whm7a%2BBfSxdxTK%2FFXD45NrlATCNpYK2dqay0q1utKEYFXGZcYt6Fggo8EoZ6IcfPTD1lcIS3B7eYC2RrJBThJprCVEmlj7oUpMTmJasXZoeWRGqPZVPpiq0vDLwO0xJoV4w0Jut2O0mbC8y4b9WRtg%3D%3D"}],description:"Build responsive layouts for your application Vuetify breakpoints!",duration:EJ,author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:EK},contentType:E,file:EL,folderId:L,id:EM,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:EN}],facebookImage:[{__meta__:{createdBy:c,createdDate:EK},contentType:E,file:EL,folderId:L,id:EM,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:EN}],socialSharingDescription:"I'm learning about creating responsive layouts with Vuetify on @vuemastery!",belongsToCourse:dD},{slug:"forms-fundamentals",status:H,date:"2019-10-01T12:00:00-04:00",title:"Forms: Fundamentals",lessonNumber:S,free:F,image:[{__meta__:{createdBy:c,createdDate:"2019-10-01T06:19:28.809Z"},contentType:E,file:"1569910766170_lesson-6-featue.jpeg",folderId:jr,id:1569910766170,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1569910766170_lesson-6-featue.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=I16uP6lkIsuCnBzYPcD49vMbPNtGDFQiTEQP%2Biu7NE5ZAJUcp0e2nJYoMbKwZxt5NK41tJpyHu34jGiJs%2BHPujKgKzIZLzwc52hdj3GXUi0YyShXBc60ryXcQEUfzf7WXjOdDRsZLM2Nke8Mf%2F%2BIzZ0b1T0vMLCZMDbxPkoppv0Qp2j8%2BbAu9p0w0CvzUP1whOIgY8kws9VdzMeYqGOgD1%2B9BXbteQgEI710VNRMtb4692lCWf2VKsM03Dt03zyN24zHnqYqR56RnUpMJWW4gPEqnguq7fEFF4GlSh%2FmU0vXQMw3uVk4JKH%2F41wabTpcNupngniD99a30xHxr7Iq1A%3D%3D"}],description:"It's time to learn how to build forms with Vuetify!",duration:is,author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:EO},contentType:E,file:EP,folderId:jr,id:EQ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ER}],facebookImage:[{__meta__:{createdBy:c,createdDate:EO},contentType:E,file:EP,folderId:jr,id:EQ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ER}],socialSharingDescription:"I'm learning how to create forms with Vuetify on @vuemastery!",belongsToCourse:dD},{slug:"forms-validation",status:H,date:"2019-11-05T00:00:00-08:00",title:"Forms: Validation",lessonNumber:ae,free:F,image:[{__meta__:{createdBy:c,createdDate:"2019-10-29T20:44:52.437Z"},contentType:E,file:"1572381890979_Lesson-7-Featured.jpeg",folderId:eH,id:1572381890979,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1572381890979_Lesson-7-Featured.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=wJUZCTZRNh04%2Bx%2FbLUdJEoZdna054CmbvnUXuPcyLCMQsQhEuNIkTO2Q%2BAVHBGcRAn1JbRbOHXpdWFq9Vapz%2FZP4A%2B9GHCztl4Rh6m05K7F4rMLN7%2FfDjvauwFh%2BziMIrjRdJ%2BfufGnkusbIfZSM5GHqqFU%2FakUBOLN5mywahbNRW6do%2BKWGWlrJUI%2FlMZZ3i9t7AeP7sQCgyShL2dkMKV%2BM%2FlB5oDrgjglkVZ8XsLEoNrNxOLDK%2F%2F%2BWnjn8TK3divaBhdHzlr2KXU%2Bd4h7mCL9zm0P0HkmpwA3STU%2F5fDJJvGv93vAimt97e40TiQU1Tv9Nbaz9tX3FWiiLCOVauA%3D%3D"}],description:"Let's learn how to build validate our forms with Vuetify!",duration:"00:11:45",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:ES},contentType:E,file:ET,folderId:eH,id:EU,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:EV}],facebookImage:[{__meta__:{createdBy:c,createdDate:ES},contentType:E,file:ET,folderId:eH,id:EU,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:EV}],socialSharingDescription:"I'm learning about form validation on @vuemastery!",belongsToCourse:dD},{slug:"directives",status:H,date:"2019-12-10T00:00:00-05:00",title:"Directives",lessonNumber:ah,free:F,image:[{__meta__:{createdBy:c,createdDate:"2019-12-10T16:36:16.599Z"},contentType:E,file:"1575995729428_featured-image.opt.jpg",folderId:js,id:1575995729428,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1575995729428_featured-image.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=hap24HzLUihHQBZfjdh2vS5SfMBmdOJf7U1XHl3N1JqCS6%2B6EHEbYKxHivP3oUdqe8xW39w0sE9L8W4A9KXe7bdL1pBqbTGzl%2FB8dThfTD3rNC%2BBNYLowuESI4E1UfNZuMGJ1yG3RrMZjwvGgN%2BgEDUatFDauXdm0sxT%2FEZNqsPEDNuQMmSaAXPNddbJp7Oe9VxkL2%2BcsboCmtQGUyzxRY4SaYjD2mTxEUrkl%2FFxzDiyE6%2FRY%2FGsyAoC%2FfqIwszmfztd2CILDd8ycb8hLEXBrjxyR2NdN8uzCI4jyi1cDrkAXFxqc2SuPgl6JR1MkNhVeoqUqIQoXU88aeKwTp8VFQ%3D%3D"}],description:"Learn about Vuetify directives to help supercharge your development workflow!",duration:"00:07:53",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:EW},contentType:E,file:EX,folderId:js,id:EY,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:EZ}],facebookImage:[{__meta__:{createdBy:c,createdDate:EW},contentType:E,file:EX,folderId:js,id:EY,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:EZ}],socialSharingDescription:"I'm learning about directives on @VueMastery",belongsToCourse:dD},{slug:"themes",status:H,date:"2019-12-24T15:00:00-05:00",title:"Themes",lessonNumber:an,free:F,image:[{__meta__:{createdBy:c,createdDate:"2019-12-24T16:07:56.806Z"},contentType:E,file:"1577203659778_lesson-9-preview.jpeg",folderId:eH,id:1577203659778,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1577203659778_lesson-9-preview.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=AGxSA5buWV5InWTo8oRlsOqykjOQ%2FKJh%2FnVhZyQXCJwho6kuBwdkMLwVqnN5%2FRpz0HvPTbfx56lYKIRYZNULVhkGjx7u%2FY8Rk4zP0rmW84BtAH8ndkMjxGEvZ0%2F7JQWA5ZgRgWKL3J3CWrVj%2F7wVSumgH5e64SEY5a1A1MPXiwTyr1mzyUTwBtO8szSUT%2BgDAUkwU51rxW%2FWwEwOWuJwAGsLlo3xGbdwKRnNan1cKacw1SmMhgId8vK8mdC0EQvVzNoiVGFDDYPhg4XbqYXdXsaPLkdToeVXRqhtMDal2RHvrjDh8wjRuV%2BtXHQ0G7b5o22E8xBLyAYb4zRKxvb7oA%3D%3D"}],description:"Learn how to create custom themes with Vuetify!",duration:E_,author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:E$},contentType:E,file:Fa,folderId:eH,id:Fb,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Fc}],facebookImage:[{__meta__:{createdBy:c,createdDate:E$},contentType:E,file:Fa,folderId:eH,id:Fb,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Fc}],socialSharingDescription:"I'm learning about building themes with Vuetify on @VueMastery",belongsToCourse:dD}],lessonsCount:an,order:ae,parentId:M,slug:"beautify-with-vuetify",teachers:[{firstName:da,lastName:db,about:dc,image:[{__meta__:{createdBy:c,createdDate:dd},contentType:E,file:de,folderId:X,id:df,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:dg}]}],title:"Beautify with Vuetify 2"},"1566238243912":{__meta__:{createdBy:c,createdDate:"2019-08-19T18:10:43.912Z",lastModifiedBy:c,lastModifiedDate:"2024-10-17T20:15:19.228Z",locale:T},category:[{name:d$,color:ea}],completable:G,courseDependencies:J,courseLabelsBar:J,description:"Bring your web interface to life and improve your user experience with Vue animations.",difficulty:aQ,duration:"01:01:51",free:F,id:dE,image:[{__meta__:{createdBy:c,createdDate:"2019-10-02T14:40:26.773Z"},contentType:K,file:"1570027224019_10.png",folderId:L,id:1570027224019,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1570027224019_10.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=DSXMfOZ0LbumebSsCiD23%2FxfQ4uqpiJENussUVK%2BTpkb%2BiCXEuxqzgjknnY4DI6lv5Z7kV5LbpZ1nEPZrRnJPcmYxjW5k6ZkwfzYuNHhtCgnhz7bkYVMsy3iB%2FErQJcOJymR4OrwdXDXMl0fAY%2FFYruyG76xH64rY%2FYKzCCmrbZeGX1quf1M2v79oONrTkNpe%2B9y6DR4N5Ts8UUOpjq7tGnCFXJLtmkY1EuKwBdA7B4gHmDc0Vs9f3i9g%2FkPv6eBQFu5mtLdg7Kwq4RVlwORzW9lQkw78ozn1Mhai3s%2FyzQTlAH7tgPU%2BRqxPeaFxoGo0Qur1UW%2FPyj9T%2BNWc3XM1w%3D%3D"},{__meta__:{createdBy:c,createdDate:"2022-05-15T19:45:46.527Z"},contentType:K,file:"animating-vue.png",folderId:aR,id:1652643536636,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fanimating-vue.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=goiL1LTK1nZzEUcrJsxY8VuEEzaLDFAlCtNL%2F%2Bw8dXGWEvN1eJ36sB70t7B%2BOxn2FaLX0IxCNSJlWwxHqCrkB%2FqTWHsKXHplQChEq0jNhobWAytJg2FjIn6PcUqrS3vHfcptiUtYeJvT2LVObs0VWkAR9BKv0kVAk%2BZKe%2FQKoE3mLXgzYsBp9c2Y%2B%2BmRmqKZknzp8K9H1BjU%2Bg3UqnXXVOMX4Wz7qF35DkZAlY0g7v9TcRnGEJAl5oDbsxyl1Dwsfx8Jqs23%2FccuGh7bi7stQjZzR7WckW3ToKQnEspld9a9IA3wei4yARdRfuIHZ2a%2BYb7GA9OQQl%2FcOAqCvBxTTA%3D%3D"}],isComingSoon:F,isDraft:F,isPromoted:F,label:ad,latestAt:J,lessons:[{slug:"why-animate",status:H,date:"2019-08-20T17:00:00+01:00",title:"Why Animate",lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:"2019-08-19T18:20:37.776Z"},contentType:E,file:"1566238835050_Why Animate.001.jpeg",folderId:R,id:1566238835050,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1566238835050_Why%20Animate.001.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=vCnIJWBjJ2CGGftZKmhHMfyvqrwPS4M5pZMMyHjhnis3OOK9DM%2FaB%2FxxtW0tI%2B52p%2F1G98tFz7gcENlfHdFgER2YZVZmnveOYQnTTlFSkZ8EDsYUvNI2IxVNP9QsLfg5X626fVOnPXumGlKZ6E%2BIHpB%2F%2FH0TNrqH7ALrJcNm6LceMP5gKe%2BD0denITj1W%2BEDYC0IPOQC3quwFiB3bWS5vSQX9B3%2BXk29rmr5ADU2%2F0ZAio0tNpQFmxTjZv2rLNnooY7%2BqVLHBfl52ZC5VFJ4OLX0QY6hcap3KcZN%2Bq6Y1XQdGsM%2BxrITDO%2FxmBA%2BoTeu%2Fw17%2FWk5DivzQ2ItLazpVw%3D%3D"}],description:"How can animations improve our user experience?",duration:BM,author:O,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:Fd},contentType:E,file:Fe,folderId:R,id:Ff,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Fg}],facebookImage:[{__meta__:{createdBy:c,createdDate:Fd},contentType:E,file:Fe,folderId:R,id:Ff,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Fg}],socialSharingDescription:"I just started learning about Animating Vue with @vuemastery",belongsToCourse:dE},{slug:"transitions",status:H,date:"2019-08-27T00:00:00-07:00",title:"Transitions",lessonNumber:U,free:G,image:[{__meta__:{createdBy:c,createdDate:"2019-08-27T17:36:02.001Z"},contentType:E,file:"1566927353934_Transitions.001.jpeg",folderId:R,id:1566927353934,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1566927353934_Transitions.001.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=diqzgpa5GahNkmjsNxeoqH3p1VmiVjmoNYjN6ehfvhE8wHAqBzHeIM27SqXvxhHXidFufCDgwKZw%2FRHno1aZ2Yd8Y5z7Q0umTyIfU%2B8RwOU%2FAz2WQP4XVfQ9IawQz3ynKuRVHMj8oE%2FBOF2ZTj1CUcYII8mStW%2BKXtT5J%2B6lyjM9ENcFISIHWQTCvcvtEgimrvXAmJQHH1UbSNTZRJotetdVzQXbY2jAucoRqaegapOXIrLDNf0orS7f6m%2Bo5iSvgujQmSIth6EdDwVLQNTyqRNLaS0GNYUb3%2BgfHkcdpDTiH1xeTpWWuYRU47Q9tLvAGLfeVDOv3I2AI9KxUZDZVw%3D%3D"}],description:"Learn how Vue's transition component works as we build our first simple transition.",duration:BB,author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:Fh},contentType:E,file:Fi,folderId:R,id:Fj,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Fk}],facebookImage:[{__meta__:{createdBy:c,createdDate:Fh},contentType:E,file:Fi,folderId:R,id:Fj,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Fk}],socialSharingDescription:"I just built my first Vue transition with the help of @vuemastery's Animating Vue course",belongsToCourse:dE},{slug:"page-transitions",status:H,date:"2019-09-10T12:00:00-04:00",title:"Page Transitions",lessonNumber:ab,free:F,image:[{__meta__:{createdBy:c,createdDate:"2019-09-10T17:21:43.262Z"},contentType:E,file:"1568136101490_Page Transitions.jpeg",folderId:R,id:1568136101490,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1568136101490_Page%20Transitions.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=juFnuGpyQPuu%2FEJjEqMJyIaUJQlksw6lDNMYJxfM3daLgdatI2jzorp9pBrDujg9UNExX%2FXmvTLGFt%2FU5q6%2FEhTi2hhv7MvYcHOT9gFiPYnC0mx7qHtzco6LxTDVdeEBQV3ckddONrVCEmtZk4eBRrcWV0hRKfbTqiLPEBDmhXo12LFM4EjkFr01%2FdvVOuBLm5DXDFmWVgOg%2B7Tl1zcGz3c7b%2FQU3wkOgbO0MUwOyFan7DmV55jX0cdQ2rZJnvhD75IjIp%2FDM4zuhN7Fon4ievtJ6fWpLeSzAwrWfSDrQbpdsE8oMpdO9dI63ockJ5n2XO52A9lmKeFpfelf7mM7Jw%3D%3D"}],description:"Smooth out the navigation between routes with page transitions.",duration:"00:06:25",author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:Fl},contentType:E,file:Fm,folderId:R,id:Fn,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Fo}],facebookImage:[{__meta__:{createdBy:c,createdDate:Fl},contentType:E,file:Fm,folderId:R,id:Fn,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Fo}],socialSharingDescription:"I'm learning about page transitions on @vuemastery",belongsToCourse:dE},{slug:"group-transitions",status:H,date:"2019-09-24T00:00:00-07:00",title:"Group Transitions",lessonNumber:ac,free:F,image:[{__meta__:{createdBy:c,createdDate:jt},contentType:E,file:"1569278856613_Group Transitions.001.jpeg",folderId:L,id:1569278856613,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1569278856613_Group%20Transitions.001.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=IScrgoEpU38J2X6AnKg%2BMYgCOlTMR2UYl4oPYf6OEj2gX8c%2BeoeR0CvGdGQeDQ%2BSoWh1ceMkWLTCPf6WqYheVPTn3q6h5Tb1ooldTfMEsFNEch6vqaNEFEmqQ4aHuqS1wwwqe3AQ8pY3apaVcTD2pzIVSOtcFyEIeq8X2uzdOQBbG6i12kjUyEPm1pJ9EEb79z7Db6mp%2BOFG5DrkSBbENP2lg9XEuk95pC1NbuOWK984RSBilq6CgaDP384d8rFJBp%2BoSW4xgl3AW9NGYfFYluAYpJMF7Ov4Q7e%2FZb7kxNtUk3TZgKLDrxMM%2BZJt0D%2F0QKd44iGoQUMvQ%2FDwGa%2B82A%3D%3D"}],description:"Learn how Vue's transition-group component allows us to apply the same transition to a group of elements\u002Fcomponents.",duration:"00:08:19",author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:jt},contentType:E,file:Fp,folderId:L,id:Fq,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Fr}],facebookImage:[{__meta__:{createdBy:c,createdDate:jt},contentType:E,file:Fp,folderId:L,id:Fq,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Fr}],socialSharingDescription:"I'm learning about group transitions on @vuemastery",belongsToCourse:dE},{slug:"javascript-hooks-velocity",status:H,date:"2019-10-22T15:00:00-04:00",title:"JavaScript Hooks + Velocity",lessonNumber:W,free:F,image:[{__meta__:{createdBy:c,createdDate:"2019-10-22T03:39:19.774Z"},contentType:E,file:"1571715557506_javascriptHooks2.jpg",folderId:ju,id:1571715557506,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1571715557506_javascriptHooks2.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=cTy6iKIGV6zTaw2oueRz59gIzGOdTRJlUheiTHOT6%2B3KaLN1dLkU8sBqLKccmE7N%2BSb5UTPhIS7LYujwNgsNqc9%2BQvRJg9OS86mPzJ7KwapsIWCXFg6fSHI2zOyJwFCEiLQUhUMMAwWockt6armTR4H3vlqmrs5h6QGGxtuQeCvEd895Tv60yaBQA7knBNb1Asw3HnCpVvE1dqZIRlUcfpJVUfzdMG1Iy6W95b7o9sTGtjFhjMP4gvfbrVTvnfQbONQE7mI7O1p1yWV%2BKXkSkEi6JvCcrJdw7F%2F%2FQTGUfE80hbelpVG3HgPl0fDX4RaB5%2FtDKmigjJ6NfDajh2KLzw%3D%3D"}],description:"Learn how to use JavaScript Hooks to build out more complex motion using the Velocity animation library.",duration:"00:08:31",author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:Fs},contentType:E,file:Ft,folderId:ju,id:Fu,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Fv}],facebookImage:[{__meta__:{createdBy:c,createdDate:Fs},contentType:E,file:Ft,folderId:ju,id:Fu,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Fv}],socialSharingDescription:"I'm learning about JavaScript Hooks + Velocity on @vuemastery",belongsToCourse:dE},{slug:"intro-to-GSAP-3",status:H,date:"2019-11-12T12:00:00-05:00",title:"Intro to GSAP 3",lessonNumber:S,free:F,image:[{__meta__:{createdBy:c,createdDate:jv},contentType:E,file:jw,folderId:jx,id:jy,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:jz}],description:"Learn how to start using the popular GreenSock Animation Platform (GSAP) to animate with JavaScript.",duration:"00:07:17",author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:jv},contentType:E,file:jw,folderId:jx,id:jy,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:jz}],facebookImage:[{__meta__:{createdBy:c,createdDate:jv},contentType:E,file:jw,folderId:jx,id:jy,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:jz}],socialSharingDescription:"I'm learning about animating with GSAP on @vuemastery",belongsToCourse:dE},{slug:"state-with-GSAP",status:H,date:"2019-11-26T00:00:00-08:00",title:"State with GSAP",lessonNumber:ae,free:F,image:[{__meta__:{createdBy:c,createdDate:"2019-11-25T23:41:12.256Z"},contentType:E,file:"1574725256780_State with.001.opt.jpg",folderId:jA,id:1574725256780,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1574725256780_State%20with.001.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=SKXuyQtakkrBI0LZzCX9oVBnYxeyT84v56K1rBurMtLUEr3%2F30G6w8%2Ftz%2FkIvId3WX3cI7gsue4UZ%2FV7Zp1uDlYZYbL5bSwo2Pog8zHZLcoGWjshtGbF1%2F2dWIHktyG6Om356ekMC17EOAqtHR8530e3NVtKrX1IwznEKsykitI8ZMRGz%2F7j7b4333k0rpePWtrClJiHZe8i4COYIroXnOHFref1LUtWIqfRpWMAo3xnnTyi6%2BJ05mmH4h3K7RfNxHbYMFpAABEWSbvpPIxHeTvAakGAlK6YOJKwxrb3RNQrigH8gnLqBh%2BM8dg%2BIgiQfKkNNq5CXOFU%2FdVYZGbSjg%3D%3D"}],description:"Use GSAP to animate reactive, always-changing state.",duration:"00:04:37",author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:Fw},contentType:E,file:Fx,folderId:jA,id:Fy,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Fz}],facebookImage:[{__meta__:{createdBy:c,createdDate:Fw},contentType:E,file:Fx,folderId:jA,id:Fy,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Fz}],socialSharingDescription:"I'm learning about animating state with GSAP on @vuemastery",belongsToCourse:dE},{slug:"timelines-with-gsap",status:H,date:"2019-12-17T12:00:00-08:00",title:"Timelines with GSAP",lessonNumber:ah,free:F,image:[{__meta__:{createdBy:c,createdDate:jB},contentType:E,file:jC,folderId:jD,id:jE,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:jF}],description:"Create more powerful animations by sequencing them inside of a GSAP timeline.",duration:"00:07:24",author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:jB},contentType:E,file:jC,folderId:jD,id:jE,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:jF}],facebookImage:[{__meta__:{createdBy:c,createdDate:jB},contentType:E,file:jC,folderId:jD,id:jE,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:jF}],socialSharingDescription:"I'm learning about Timelines with GSAP on @vuemastery",belongsToCourse:dE},{slug:"nested-timelines",status:H,date:"2020-01-14T12:00:00-08:00",title:"Nested Timelines",lessonNumber:an,free:F,image:[{__meta__:{createdBy:c,createdDate:"2020-01-13T22:04:04.833Z"},contentType:E,file:"1578953025501_nested_timelines_opt.jpg",folderId:jG,id:1578953025501,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1578953025501_nested_timelines_opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=TBXaQ1BRfUUowiqFw2fmOdleDEhcJ4LKmnw2CimQOxTXEm1S9k2PNwB8Qb3PyP7HlJcKrbLxeba2EH3uTQMXQjOBVvG2lyG2V471CJ6qKWHz8ylKuoYzne%2B7NSZHR%2FYL7EMiwqdSVUygV6zBM4%2B9XShLjRM%2F6gCdYUbGR4w%2FQOdbVT%2FZ3NvgXAQWa1ileOMXonf02iUpVidLtFT%2FjkR1WEs8MFLOp6U4n7DZeCO9l8QcCf99ms6rz4sDggJZZi9DuctfdUPvdlYBFiwglz0khKGNi1%2FC9d9ODqglJiOAELE9xRGhrXOlxKAB6qDinadWY%2FeDCqTSH9PjwAVlWCzLRg%3D%3D"}],description:"Create flexible, scalable animations by nesting timelines within a master timeline.",duration:"5:07",author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:FA},contentType:E,file:FB,folderId:jG,id:FC,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:FD}],facebookImage:[{__meta__:{createdBy:c,createdDate:FA},contentType:E,file:FB,folderId:jG,id:FC,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:FD}],socialSharingDescription:"I'm learning about nested timelines on @vuemastery",belongsToCourse:dE}],lessonsCount:an,order:S,parentId:M,slug:"animating-vue",teachers:[{firstName:cs,lastName:cx,about:cy,image:[{__meta__:{createdBy:c,createdDate:cz},contentType:E,file:cA,folderId:X,id:cB,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cC}]}],title:"Animating Vue"},"1569440715969":{__meta__:{createdBy:c,createdDate:"2019-09-25T19:45:15.969Z",lastModifiedBy:c,lastModifiedDate:"2024-03-19T20:42:58.021Z",locale:T},category:[{name:af,color:ag},{name:au,color:av}],completable:G,courseDependencies:J,courseLabelsBar:J,description:"Learn Vue 3's new Composition API, an alternative way to compose components for scalable Vue applications.",difficulty:aQ,duration:"00:43:30",free:F,id:cv,image:[{__meta__:{createdBy:c,createdDate:"2019-09-25T19:42:08.116Z"},contentType:K,file:"1569440526519_11.png",folderId:R,id:1569440526519,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1569440526519_11.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=CAVZsCb6D%2BgCsvoXDq4f%2B4rKugzZtV%2FONq%2BB8r070vBVGYZ1X2bsDrlZJKuYGRBeHRNIRzB2Ke7Qe%2Bqnf3ooYYqTayE5uE%2BuJy%2FW7zdcJVCgb%2FYi0nKkwd2HsmNolNoHUCd7jtZSN85dq1txw%2BNMZzAkzZtLwkW1FDT9OqDp2s7lO6oAaCIcC1qqE5d8eZCMKaumuZ7mqE2chZqnaNRG%2BwXwTESIg9igWwyiECDfGaVlYrhMj90y%2B9sGyr3kx3ExXGo4h5btjMDwPasH%2FHb1AWzI4%2F3I06z2Whv1JA6O3%2BkBxsTjcIdGswIYepGz1WBRBAHmNVSaN3%2BdmDKXSRkZ0Q%3D%3D"},{__meta__:{createdBy:c,createdDate:"2022-05-15T19:45:47.822Z"},contentType:K,file:"vue-3-essentials.png",folderId:aR,id:1652643817062,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fvue-3-essentials.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=pEOIYo%2BXMLUHHm6nzR%2FwWx5wO%2FLrSiGAE3eK1yecR%2BPTp7myuvFOrMVHrhwE4I6cSn%2Bs9VBWrddNHHRcOIKS%2B1sNq1Ezp8ZNdp8FSVVBBO41Q0MUW5roDTG5qX9sb7nHS12Hz5s99rqU%2BQvYW8Jv0vE0yyCbHjY6sOY20NuIVsW9E4X4BSAHEQo%2B8YDtO834hIY08uQC%2FLRxvL1Sokxe%2FGSQyA7gupCRGokMD%2BPMuUa0PLf6AjqATkEKi5pIUdP33BusR11nH26lKPQ3URQ7UvMEEfbTP2yv%2FYCzOizFya1RmYjOXez0SUW8I0hJMVfEGKBDOwqD7B5ebGLB5ylw8w%3D%3D"}],isComingSoon:F,isDraft:F,isPromoted:F,label:ad,latestAt:J,lessons:[{slug:"why-the-composition-api",status:H,date:"2019-10-08T04:00:00-07:00",title:"Why the Composition API",lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:"2019-10-07T16:24:34.262Z"},contentType:E,file:"1570465466855_why-composition-api.jpg",folderId:jH,id:1570465466855,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1570465466855_why-composition-api.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=ZIGjArcuFQ8hDYmxzxWTnIaycLas0ojMqJMMR90NKpdJNiRU8FYuegfFY378c47CT%2Bao%2BJSk2FUf8Kq7OLGBN9tduHei%2FSaFMCiTHiTtCW%2BbLlUhRI2r4VEwsNENHUPRfyggvAsBJQ2qTTw6i0bZY5RdVM7ykIUqBSsuf3axTayDbukylFMXKxZxIeZwMJ6h%2FTrpGLJ7GJutDFiBEs2cVxXDZVT97NZnrPsDXuf710%2Fo2vqnelHov0ZC9IWpyn41%2BxT5Yk%2BgRFBNhvHACKOp5cGL31CjkF1ih8pMW31AbEpJzcO77haDxH0iTMws2dtnHbO666rsBe52n24skFvNeQ%3D%3D"}],description:"The killer feature of Vue 3 is the Composition API, but why exactly is it needed and what problems does it solve for us?",duration:FE,author:P,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:FF},contentType:E,file:FG,folderId:jH,id:FH,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:FI}],facebookImage:[{__meta__:{createdBy:c,createdDate:FF},contentType:E,file:FG,folderId:jH,id:FH,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:FI}],socialSharingDescription:"I understand why @VueJS needs the composition API in Vue 3 thanks to @GreggPollack and @VueMastery",belongsToCourse:cv},{slug:"setup-and-reactive-references",status:H,date:"2019-10-06T00:00:00-07:00",title:"Setup & Reactive References",lessonNumber:U,free:G,image:[{__meta__:{createdBy:c,createdDate:jI},contentType:E,file:"1570470267995_video-shot.jpg",folderId:jJ,id:1570470267995,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1570470267995_video-shot.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=lzwGcePrvR84SsHzH3oBxL1iqU%2BliqoOvT%2Btv%2BnqkV%2FeA5tRTFBvJ6BIUrZPiTL1t5TjYSykHD52YeE5LHB7XrFtuqHhy%2FzNBI9VaGGRfvKSfiojjkqzLrUL6dcamR0ULyQPhhFSUCS01%2B2rQEBw9O7kdlZC8a7eQW4jt48xfMLp7Gt%2FCjWc0OE3ymXivnuZdeaFbcTBRiJdAx3IuTSEJtM8pDeI2ZQ4CgJmHaZcVuDxMDF7KVhXQIuxFq2%2FLSovnhFMoc6EfgSr8og7Tm%2Fh6ej8o662stIg8lArqnoRaL8UNQdbQwAKwU0lEUPq5Vdppt8HAD1gjGHpSDxq3DBFFQ%3D%3D"}],description:"Learn the Vue 3 Composition API syntax starting with the setup method & reactive references.",duration:fj,author:P,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:jI},contentType:E,file:FJ,folderId:jJ,id:FK,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:FL}],facebookImage:[{__meta__:{createdBy:c,createdDate:jI},contentType:E,file:FJ,folderId:jJ,id:FK,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:FL}],socialSharingDescription:"I started learning the Vue 3 Composition API on @VueMastery with @GreggPollack",belongsToCourse:cv},{slug:"methods",status:H,date:"2019-10-15T00:00:00-04:00",title:"Methods",lessonNumber:ab,free:F,image:[{__meta__:{createdBy:c,createdDate:jK},contentType:E,file:"1571072661608_video-shot.jpg",folderId:jL,id:1571072661608,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1571072661608_video-shot.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=dLdwzGF%2FkqNoOPFMGrNY%2BG%2BsHGbPmGTUOttUavuKRckieig%2F8j7TRrKxbP%2B%2FkgNbXDR9M%2FkaSsxPscJb7goFr4xS3xqEVCu2eCVoMFqbcZmxEi0OCS7AvoImwa0S2%2FWR2%2BQNl8%2FrhTmujUdYkmFldRGuCRdKGSoLAHz7ejL%2BKqgNRBetIKiZfksv%2FgTv%2BwIbS%2Bb1Ifn4QImi9%2FrIO6nkXwFhi4qt26m7Ku53nzCIWC1VVdIrQHovbnPT0Tj0x%2Fa%2FoAzrF5urSEDXkncTPx3QcXQcyZbPNU%2F4tZAD1ZHULxVDF3zUpyrZJWff%2FOsbLas1mrPkA8J5gF3krGMpYup88Q%3D%3D"}],description:"How to write component methods and interact with Reactive References using the composition API.",duration:"00:01:50",author:P,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:jK},contentType:E,file:FM,folderId:jL,id:FN,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:FO}],facebookImage:[{__meta__:{createdBy:c,createdDate:jK},contentType:E,file:FM,folderId:jL,id:FN,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:FO}],socialSharingDescription:"I learned how to write component methods and interact with Reactive References using the composition API in @VueMastery's Vue 3 Essentials Course",belongsToCourse:cv},{slug:"computed-properties",status:H,date:"2019-10-15T00:00:00+01:00",title:eZ,lessonNumber:ac,free:F,image:[{__meta__:{createdBy:c,createdDate:jM},contentType:E,file:"1571087646689_video-shot-1.jpg",folderId:jN,id:1571087646689,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1571087646689_video-shot-1.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=XU8e93ALJkFGKLs4RSN5ettwVhGHTu6HPkFqbtE6B%2BdGISQoaNAiqIR1HW2p%2Fbyz%2FAjdJC5O2xZyZI1PJnYQGCMmusJ%2F%2BADeyOFE7WdxVywyv%2FKQVknT0z%2BUOGYRvp2mgv7emdXnIxDhdT7YNNobnPieYkNGelqB0ivN1%2BNDhf7V9ypAN6PeoJaKj2lHWBsc0XPNtVnZThSar%2F2TFZWoU0EpxMgFhDxHNC3MkHU2fs%2FRAjXPeGQ566EyVziTOuLdlXbfjF1EWepyCvj%2FhE2G7Eqa3ZjiNqSBY%2BPUNj7FHNJgOd3Oi%2BgCmPE3XKqEFUQfIPQTabX%2FnNfCyKBBhTrW8g%3D%3D"}],description:"Writing computed properties using the new Composition API syntax.",duration:"00:01:31",author:P,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:jM},contentType:E,file:FP,folderId:jN,id:FQ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:FR}],facebookImage:[{__meta__:{createdBy:c,createdDate:jM},contentType:E,file:FP,folderId:jN,id:FQ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:FR}],socialSharingDescription:"I learned how to write computed properties using the new Composition API syntax on @VueMastery",belongsToCourse:cv},{slug:"reactive-syntax",status:H,date:"2019-10-29T00:00:00-04:00",title:"The Reactive Syntax",lessonNumber:W,free:F,image:[{__meta__:{createdBy:c,createdDate:"2019-10-22T17:43:04.033Z"},contentType:E,file:"1571766180347_video-shot-2.jpg",folderId:jO,id:1571766180347,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1571766180347_video-shot-2.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=eslfwzgpFNtCn%2BHyL%2Bd8BFoHCL1Ts7QNwf0r2TBwEuc5b1xYt2QH2wL4H0ziAJsFd%2Fg2QEVfQs70bWIaZPKKuwGtFw75BwFpMB%2B1vnmnvxDpyQ7eLMJRZuVYrilqdctl3lCvPv8vvehZfMiYGPteraTrdotn5iW2JmaRFPYBUoDx17NjAb%2BToAks8OmC73Bqtt4Apak9uN%2FvkifaQT0Y%2F2CqoK%2FO80PoqqlqSCNiveufETB%2BHk8ts%2BoSd8fb%2BmJvUb3yTiGQsTR8MFlB76UDxC3pSKzUD%2BsBYnpVhXf7Dj1sh%2F5cC3kZzYJkmHgmw4TbZUC9w6zYiLEBZWJjpQ2qQQ%3D%3D"}],description:"There are two ways to define reactive objects with the Composition API. Reactive References and using reactive.",duration:"00:03:04",author:P,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:FS},contentType:E,file:FT,folderId:jO,id:FU,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:FV}],facebookImage:[{__meta__:{createdBy:c,createdDate:FS},contentType:E,file:FT,folderId:jO,id:FU,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:FV}],socialSharingDescription:"I learned how to use the reactive syntax in the Vue 3 Composition API with @VueMastery",belongsToCourse:cv},{slug:"modularizing",status:H,date:"2019-10-28T00:00:00-04:00",title:"Modularizing",lessonNumber:S,free:F,image:[{__meta__:{createdBy:c,createdDate:"2019-10-22T17:47:25.487Z"},contentType:E,file:"1571766442152_video-shot-3.jpg",folderId:jP,id:1571766442152,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1571766442152_video-shot-3.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=oxjjdROaD51P0XDUsLmIq70rqSaFQMjoq4xjsKCJukAhlv1NYiT7wkWweOADHOBUfgCMlMkkjIWUkK3Y70IQhN9uqZCfFQpoH2KIS9gLKvB%2BO4HkKc%2BAC4C7rIjNQ%2BN3UsOSu3OZxx2sRJKS%2FTKlfeTjzXW1nDugmEdZ4UbFQdmMHIFVx7w77RMKZqTGH762behnktwAWsHp9GH9zULomK97fChzh56rMlhad0g7YcFgt2KzdDVX%2FW%2BKXqc1Ae89epax1Gj7ncBoQHb79iWi9Gnh4VptMD%2BcwPaGezvNuuwwd0luZqw%2FV8oJQsVTHq0m2NCLs8CEcIPVnFqojlk6eg%3D%3D"}],description:"Now that we've written out the basics of a composition function, let's modularize it so our component can scale.",duration:FW,author:P,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:FX},contentType:E,file:FY,folderId:jP,id:FZ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:F_}],facebookImage:[{__meta__:{createdBy:c,createdDate:FX},contentType:E,file:FY,folderId:jP,id:FZ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:F_}],socialSharingDescription:"I learned how to modularize my Vue 3 composition functions at @VueMastery",belongsToCourse:cv},{slug:"lifecycle-hooks",status:H,date:"2019-11-19T00:00:00+01:00",title:F$,lessonNumber:ae,free:G,image:[{__meta__:{createdBy:c,createdDate:"2019-11-16T16:46:50.155Z"},contentType:E,file:"1573922799075_cover-1-opt.jpg",folderId:jQ,id:1573922799075,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1573922799075_cover-1-opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=hiw4pmTwYhe35RblZt9N7R0yIad2BRfkB7%2FcpreZeZUHjyO6NWRbOnCT5jN8rbucDfE76CwQJpdAC1gmf2hEjbKK%2FYjSVd7lXm368pPTSJ561g7wb7U194mzaEejf7WkU7r563Fy5atXT6QsSTUnr%2BvaJH2yD%2BaiBNQvDWSzyYk0uGOh0zQ4e02Jz4y8G1eSZdFnGkSQjP1qc76AfUY2ofTO6bt2ElZvPIpVxMAZtmLC894YaxyouyFBpEvQcunQBUdsHX5j2J7UPbhh4tEyRd0MIKRQh%2Bds3qwi1giHZbeawPw3T2Z%2BEOh5mdvxXExh098Lsn0Rfwy0V%2BpUeOvN0Q%3D%3D"}],description:"Vue 3 introduces some new LifeCycle hooks. We'll learn about those and how to call LifeCycle hooks from the Composition API.",duration:"00:03:11",author:P,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:Ga},contentType:E,file:Gb,folderId:jQ,id:Gc,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Gd}],facebookImage:[{__meta__:{createdBy:c,createdDate:Ga},contentType:E,file:Gb,folderId:jQ,id:Gc,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Gd}],socialSharingDescription:"I learned about Lifecycle Hooks at @vuemastery",belongsToCourse:cv},{slug:"watch",status:H,date:"2019-11-18T00:00:00-05:00",title:"Watch",lessonNumber:ah,free:F,image:[{__meta__:{createdBy:c,createdDate:"2019-11-16T17:08:19.770Z"},contentType:E,file:"1573924086992_cover-opt.jpg",folderId:jR,id:1573924086992,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1573924086992_cover-opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=E07EBzS0IGqeudQEPbY0jX8Kpej8PLpd%2FwNnaDfF%2FzPSGWBcanxQHCqt3KcqRSoehPNYWYW%2BbxXJ9CzsGCrjq3PpgiDKFBFKM%2BMbu8JmCmjig8IP1glu3nYHZX%2Bl5Ojln0lNQYcuq1ePmVcFstLXBPS%2FUHjS5U5OSHcHyTqo%2Bi93ueLMqerr8xTtmB0X0lQboi7meYnbkLlu%2FBm4G%2Fb12LLO2kqZ9%2FJLpE3qI2xZhmE9Qzb9IPsgZcxqhi78oPWaLkQ7agcOLPOn18UuPOEvD2vcIPQcm2D3gi97pEn8WCvJPIhU%2BQErZucSqhASfCEDg0Y15Igd3KETKtK2H2h7wA%3D%3D"}],description:"The Watch method is used when we need to run code when when reactive objects change. Let's use it inside the setup method.",duration:Ge,author:P,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:Gf},contentType:E,file:Gg,folderId:jR,id:Gh,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Gi}],facebookImage:[{__meta__:{createdBy:c,createdDate:Gf},contentType:E,file:Gg,folderId:jR,id:Gh,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Gi}],socialSharingDescription:"I learned about the Vue 3 watchEffect method at @vuemastery",belongsToCourse:cv},{slug:"sharing-state",status:H,date:"2019-12-02T00:00:00-08:00",title:"Sharing State",lessonNumber:an,free:F,image:[{__meta__:{createdBy:c,createdDate:"2019-12-02T22:49:01.114Z"},contentType:E,file:"1575326913650_state.opt.jpg",folderId:jS,id:1575326913650,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1575326913650_state.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=Rpu23ukZ4uay0HDEtFLZBM6vIJAMsQMoOHiyxpgW%2BSoEkUU%2BpHH1VXKr8CSLEh5O5hcZteSO6NQ5Ylvq4lEGEPcnOju1r7fh6SsKOIlDIXqQr9bXoiorjNpELka%2FwxquM7iq3KXbX9xCb04LXgeLAlR4YWCSxMidF%2FgFqQ1LfPp6g6zbqLnB8SJXIcJtKYtThNEaW8dRnkxXGmnAlOTMFDDrGVzbEZ777Hx3RMikt4z9Cl6qeHjf0KszyXZzdxdFr5G74lP0FeW%2FN0%2BfLb8yRdN88nvaWE6FNyQPhlU44AEcf4Cak8nAUUW6dXsS2Wzde29ZC1yM4Itf1EdoKHhMIg%3D%3D"}],description:"Let's use the composition API to extract some state and functionality into a piece of reusable code.",duration:Gj,author:P,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:Gk},contentType:E,file:Gl,folderId:jS,id:Gm,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Gn}],facebookImage:[{__meta__:{createdBy:c,createdDate:Gk},contentType:E,file:Gl,folderId:jS,id:Gm,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Gn}],socialSharingDescription:"I learned about sharing state at @VueMastery",belongsToCourse:cv},{slug:"suspense",status:H,date:"2020-06-02T00:00:00-04:00",title:"Suspense",lessonNumber:aS,free:F,image:[{__meta__:{createdBy:c,createdDate:"2020-06-01T22:16:33.726Z"},contentType:E,file:"suspense-main.opt.jpg",folderId:jT,id:1591049760646,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fsuspense-main.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=tM0IdLMQfKhzJnsTmwUB6kbp1NRN%2FaQHeTbvbxmIfqc0nFRNz8z5UWBE6lgFIlsbTja9Fne3AonkV0mnJ3v5M98IoW6RdLrOJR2%2FDadhuV91fY%2FjZkVfX9DzMI12bi%2Fi3wTEzqUt3cvp46Em4sgvLd7U1C0R6dMbhMonpzjsqBmmxhrNElIGvlXgmuxyvvue7vm0z6P%2FXS0AY37OhAaynTI7F5ubputmh5QNOkgAv6RRu6rYPsY4XSmP6ov%2Bj3n8%2FI5zPoCXdICOQQPcQJk7ZZ7%2Fi2cYHI452GTvBEqSwd0Q%2F5frAfx0lM9rcv9WVdSjcZyeuBPZTIGD5JkjvRh%2F8Q%3D%3D"}],description:"The new Suspense component provides an elegant solution for API loading screens.",duration:"00:04:28",author:P,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:Go},contentType:E,file:Gp,folderId:jT,id:Gq,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Gr}],facebookImage:[{__meta__:{createdBy:c,createdDate:Go},contentType:E,file:Gp,folderId:jT,id:Gq,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Gr}],socialSharingDescription:"I learned how Vue 3's Suspense component provides a more elegant solution for API loading screens on @VueMastery",belongsToCourse:cv},{slug:"teleport",status:H,date:"2020-06-01T00:00:00-04:00",title:"Teleport",lessonNumber:bN,free:G,image:[{__meta__:{createdBy:c,createdDate:"2020-06-01T22:55:30.078Z"},contentType:E,file:"teleport-main.opt.jpg",folderId:jU,id:1591052037976,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fteleport-main.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=ZRv6byvbRSQjnP2%2B8ltEoWZalaiKO5RGUg%2BNFM61Jpqpz5%2BSWq%2BukFjXobozTmTuoQOmjPxBsujD4Nz9qJT%2FiL15qEQmt%2FEj1%2FcxFT%2BROGd5hilLgho5mLsPtCeYGG%2B54lgfEc2A%2Beh%2F8PHMVsl8IZS0bCJraCZOUfLR%2FSvk95xKlEBnTnK0hfAu4AvVjL6RbnMUZOvQYlZ2s72T5AYcQ%2BWj8HjGNUoXei%2FIf%2BOkxCQd4b0UClKLT5M7gpbXmtj%2B95DXufKfq%2FyszglGDvZJiFvVia74FmlskkDan7qvvR2u1Tdgph6f1ccdIKFBLoNXVnPBRJnADjepTFRjob9Gug%3D%3D"}],description:"Learn how Teleport allows you to move template code into alternate locations on webpage.",duration:"00:05:40",author:P,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:Gs},contentType:E,file:Gt,folderId:jU,id:Gu,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Gv}],facebookImage:[{__meta__:{createdBy:c,createdDate:Gs},contentType:E,file:Gt,folderId:jU,id:Gu,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Gv}],socialSharingDescription:"I learned how Vue 3's Teleport feature allows you to move template code around a webpage.",belongsToCourse:cv}],lessonsCount:bN,order:a,parentId:M,slug:"vue-3-essentials",teachers:[{firstName:dw,lastName:dx,about:dy,image:[{__meta__:{createdBy:c,createdDate:dz},contentType:E,file:dA,folderId:X,id:dB,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:dC}]}],title:"Vue 3 Composition API"},"1572364356774":{__meta__:{createdBy:c,createdDate:"2020-01-28T03:11:41.751Z",lastModifiedBy:c,lastModifiedDate:"2022-09-01T16:41:28.350Z",locale:T},completable:G,count:U,courseDependencies:J,courseLabelsBar:J,description:fk,difficulty:bM,duration:"00:44:27",free:F,id:dW,image:[{__meta__:{createdBy:c,createdDate:"2021-01-13T03:32:31.194Z"},contentType:K,file:"unit testing.png",folderId:fl,id:1610508735970,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Funit%20testing.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=wrWmOeFyaclJ7FWFKtdtqX3xLDIi3E%2Fg3IGFtZH5z17sHzMmFD7ki%2B980RNuiOPNsHl5Lt3mtmdvO1eEN71VJ%2BYfRF8r%2BEjN%2BmCp3N5ztJU6q7rIbfOcb7tG3%2BAk151CG4w7anTa3VwiL7BCXWLaqorN6gz0XdbnPiVvCgpGiMKUjNabHPJEnSQhS7F0ILGBZLl0kIpXjtzZDQI2kJ5a5KH%2BlRmgmRcMQsgtgP1PjdMNprICgKxy2rE1C%2FoFTcF2QBKzgyeDeZ%2FHUIRXkZAN5h4xUUG1qCfbLhEiq5zj426nlzCMV97Rkg4RMC5F4%2F70DkL5ozkS%2FBRhbj8GvKerlA%3D%3D"},{__meta__:{createdBy:c,createdDate:"2022-05-15T19:45:48.182Z"},contentType:K,file:"unit-testing.png",folderId:aR,id:1652643778944,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Funit-testing.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=NTaYjegGgV4ItCikRaVD74bZUpIBw001MUPcPLGRlPVjwXQcjmQe9S0qUtpm2rnFnSOF%2FNTyhvm5JlRM8T4mZP%2BjLVOBcxi5257z62cwAD53L6Cd2fZpZSRr6wXwAVDpCUOkXf%2FEwTgrVXj4Hv8KTp2r31mXlP5ErDIn6IB6RhRpmTQCmLW5wcVBY7VjjAwX24lvEPMfYwvH0xlBHWVjSg2ChcHYnphCplV6LDaj1rD%2BTdJZhGVbE4pf2tkTmfjD13jSeHGUinqeF%2B7s2GWSm1ydjpzMzGneR8WtWDWBrZ7J1Z0I%2Fug5Kg%2FMvWmFHPvVRaw%2Bim%2BAarIQdtE6LiN7mQ%3D%3D"}],isComingSoon:F,isDraft:F,isPromoted:F,label:eY,lessons:[{slug:"what-to-test",status:H,date:"2020-01-21T00:00:00-05:00",title:Gw,lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:jV},contentType:E,file:jW,folderId:fl,id:jX,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:jY}],description:fk,duration:jZ,author:O,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:jV},contentType:E,file:jW,folderId:fl,id:jX,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:jY}],facebookImage:[{__meta__:{createdBy:c,createdDate:jV},contentType:E,file:jW,folderId:fl,id:jX,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:jY}],socialSharingDescription:Gx,belongsToCourse:dW},{slug:"writing-a-unit-test-with-jest",status:H,date:"2020-01-27T00:00:00-08:00",title:Gy,lessonNumber:U,free:G,image:[{__meta__:{createdBy:c,createdDate:j_},contentType:E,file:j$,folderId:ka,id:kb,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:kc}],description:Gz,duration:Cd,author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:j_},contentType:E,file:j$,folderId:ka,id:kb,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:kc}],facebookImage:[{__meta__:{createdBy:c,createdDate:j_},contentType:E,file:j$,folderId:ka,id:kb,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:kc}],socialSharingDescription:GA,belongsToCourse:dW},{slug:"Testing-Props-and-User-Interaction",status:H,date:"2020-02-18T00:00:00-05:00",title:GB,lessonNumber:ab,free:F,image:[{__meta__:{createdBy:c,createdDate:"2020-02-17T21:35:13.448Z"},contentType:E,file:"1581975296014_Props & User Interaction.001.opt.jpg",folderId:kd,id:1581975296014,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1581975296014_Props%20%26%20User%20Interaction.001.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=hTnHXO7xlQmEpLTepve%2FDurGf0PEs8eR%2F35Kz7rTblmTv8pa%2BUFtNogi8Tn9BuDT%2FZ7aVjgSlokgr8W8QMZqIeX52Kb00zI8sD7M0Ef5Bm6KjB1TUzWQ9riaxoBFn%2FvPyuKAneMlP25IKlFRDYAtBGtjClf9mf3NgUXV7tctfBlj1ytaA1MH1impwzNZF5nKH5jB%2BfgedpJ5XctNRLR6g2nzqTYgY8oafOcd3ggvpVPa6YuKa%2BUA7SocYCippsn%2FrSDo4mmzQwBl1rzTJk3hd7HezYrJ0vBBSoBKqdDxu0HuYQB%2BRDOXze8yUkdL9unhn4oEyGnyLSOz2hdT%2Bfhw4Q%3D%3D"}],description:GC,duration:"00:07:15",author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:GD},contentType:E,file:GE,folderId:kd,id:GF,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:GG}],facebookImage:[{__meta__:{createdBy:c,createdDate:GD},contentType:E,file:GE,folderId:kd,id:GF,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:GG}],socialSharingDescription:GH,belongsToCourse:dW},{slug:"testing-emitted-events",status:H,date:"2020-03-17T00:00:00-04:00",title:GI,lessonNumber:ac,free:F,image:[{__meta__:{createdBy:c,createdDate:ke},contentType:E,file:kf,folderId:kg,id:kh,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ki}],description:GJ,duration:GK,author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:ke},contentType:E,file:kf,folderId:kg,id:kh,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ki}],facebookImage:[{__meta__:{createdBy:c,createdDate:ke},contentType:E,file:kf,folderId:kg,id:kh,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ki}],socialSharingDescription:GL,belongsToCourse:dW},{slug:"testing-api-calls",status:H,date:"2020-04-07T00:00:00-04:00",title:GM,lessonNumber:W,free:F,image:[{__meta__:{createdBy:c,createdDate:kj},contentType:E,file:kk,folderId:kl,id:km,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:kn}],description:GN,duration:"00:09:52",author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:kj},contentType:E,file:kk,folderId:kl,id:km,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:kn}],facebookImage:[{__meta__:{createdBy:c,createdDate:kj},contentType:E,file:kk,folderId:kl,id:km,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:kn}],socialSharingDescription:GO,belongsToCourse:dW},{slug:"stubbing-child-components",status:H,date:"2020-05-05T00:00:00-04:00",title:GP,lessonNumber:S,free:F,image:[{__meta__:{createdBy:c,createdDate:ko},contentType:E,file:kp,folderId:kq,id:kr,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ks}],description:GQ,duration:"00:06:01",author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:ko},contentType:E,file:kp,folderId:kq,id:kr,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ks}],facebookImage:[{__meta__:{createdBy:c,createdDate:ko},contentType:E,file:kp,folderId:kq,id:kr,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ks}],socialSharingDescription:GR,belongsToCourse:dW}],lessonsCount:S,order:M,parentId:M,slug:"unit-testing",teachers:[{firstName:cs,lastName:cx,about:cy,image:[{__meta__:{createdBy:c,createdDate:cz},contentType:E,file:cA,folderId:X,id:cB,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cC}]}],title:"Unit Testing Vue 2"},"1580505553365":{__meta__:{createdBy:c,createdDate:"2020-01-31T21:19:13.365Z",lastModifiedBy:c,lastModifiedDate:"2022-09-01T16:48:34.849Z",locale:T},category:[{name:af,color:ag}],completable:G,courseDependencies:J,courseLabelsBar:J,description:"The way Vue 3 does reactivity is entirely different from Vue 2. Learn how it works under the hood throughout this advanced course.",difficulty:cK,duration:"01:01:49",free:F,id:dJ,image:[{__meta__:{createdBy:c,createdDate:"2021-01-13T03:29:14.175Z"},contentType:K,file:"vue_3_reactivity.png",folderId:1580505582476,id:1610508537010,type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fvue_3_reactivity.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=huG5s64YX5yz9sgCbR%2FtXW00T2rD0WR1PQEaBH4pyvFFmATXV8iSvYxfNxXeU0ZfqjEYpPtnledvtRXSP2YstuapYEsrsDTzfSxGg2GiOA5%2FpmgAFaFPbi0RvUg5P2U%2Btu0uSRL%2BG38B5%2Bhs8QSwAzGmRMnrNfFNRjASNikPaSIdBOwnSaW%2F6MTcsa0wUau5Y6pgquFPjSdnyiJ8ew17itEF2J3oJvoAeN5LDqelSmnUjFYwoo6ZA7UlkT7WnVhl%2BcXsfjTJypInK53v57IyXVWoTGm%2BL2YdvCg0Xe%2BRNuL0vk53qCf%2FFQjmPwz8BGa6E76tMP%2BASb9T5uPfEalXVQ%3D%3D"},{__meta__:{createdBy:c,createdDate:"2022-05-15T19:45:48.450Z"},contentType:K,file:"vue-3-reactivity.png",folderId:aR,id:1652643825478,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fvue-3-reactivity.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=bD583L2offLLQpS%2B9VtYqWpmjOLUQYc3xrz3mIfWz4LsKhdF%2BvVefe52FU49N1fMf%2Fl8icTZk71zYHMIEo4U78w03sgcXXBop1pEUHRFMkV5Y4F1nmaENs2xc9BX3p4fdgnzywH30mzs36gi2G6ndQ1g07nzv9%2FUHCDrd%2FrTte9Lakns3qEu1jhcR9yNQcENZdMv8vwqwvZnu0lxLRUWqLJfPucAespJ7kPTc1glNZL6%2B4NHcqS%2BXdocA3xZ8mvaf9atYlnl14%2FgtFzlPNv9zOiZ6EBsBKYYR%2FpEZvT5KvCZYfgmQiPbWLx7GpSuaY2akP0RXwtJ1daEKungH6LN9Q%3D%3D"}],isComingSoon:F,isDraft:F,isPromoted:F,label:ad,lessons:[{slug:"vue3-reactivity",status:H,date:"2020-02-04T00:00:00-08:00",title:GS,lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:"2020-02-03T20:50:51.005Z"},contentType:E,file:"1580763033578_1-main.opt.jpg",folderId:kt,id:1580763033578,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1580763033578_1-main.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=sbU%2Fg72TSgDA63oo%2Fo9OBX8ytgJ0mhv5jXjIPUdHAX3BvqbhLN0XDBOOARmhObiPWpESndnMBZvx9y6fmDHKkR8cCbj3CJUWVnBree8WHMmVjJ1bI%2BMf5uEImyHp1gX2Af4cg%2FWzPd5HTd2OMF9UewhfcPALUPthNjVyMcyHSNCZ%2BrCIME%2Fdn69ccHhI8ZD6AebyuQJri5%2BZzi54mnypvn5N1q1siBLsi9ZngDiAEWhryDnfYYtr1uJ1Acc8cQF8sIoSrcjOkqc8oUtXG%2B9ID4bd0Tu6wUnmOvuxzO2d1uFHkHa0LjIwKxdJLR8Km7QtX%2FAohWCPjZvtz4mQkOlu8w%3D%3D"}],description:"Vue 3's Reactivity system has been rewritten from the ground up. In this lesson we will start building our own Reactivity system step by step using the same design principles, to begin to understand how Vue 3 reactivity works.",duration:Cr,author:P,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:GT},contentType:E,file:GU,folderId:kt,id:GV,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:GW}],facebookImage:[{__meta__:{createdBy:c,createdDate:GT},contentType:E,file:GU,folderId:kt,id:GV,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:GW}],socialSharingDescription:"I'm learning how Vue 3 Reactivity works from the ground up with @greggpollack by taking the course on @VueMastery",belongsToCourse:dJ},{slug:"proxy-and-reflect",status:H,date:"2020-02-10T00:00:00-08:00",title:"Proxy and Reflect",lessonNumber:U,free:G,image:[{__meta__:{createdBy:c,createdDate:"2020-02-05T21:34:39.044Z"},contentType:E,file:"1580938447902_ProxyandReflectmain.opt.jpg",folderId:ku,id:1580938447902,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1580938447902_ProxyandReflectmain.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=FaV7%2B3gR4J6GsRqPj3%2FyzyUoGMPMtJG%2F7wCM4kCKdYqYgExz89TdCs%2F9tF4L9wIZbhuYVTJ6PRP31Vukd%2FMTV2%2FZYi0GPFilvULMniQuVTJFdKnzoWq9dwMlt0LWaj3DEz5wZP5AkDcM23Huf%2FxPSbFyL5H%2BO4%2BvNUDLQ7sBKcdaNZRrmxxmzfmB0C9bDZhqJXpeVrn%2F3w2rqru8gSVa0xnHN7r2lqF34xm0WbfG0xEZH1x6I5czwbts7Kz%2F3QSpmhwXN4BACCxf3eLwsbV3qFpHL5Ico0%2BgvTrKhddD5UF8OJHNCM5oXpJD0%2BdcsV3YMGbx6wimUf41S1%2BbxblWtQ%3D%3D"}],description:"Vue 3 uses ES6 Reflect and Proxy to create reactivity. Let's write up this code, and then combine it with what we learned about storing effects from the last lesson.",duration:"00:08:57",author:P,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:GX},contentType:E,file:GY,folderId:ku,id:GZ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:G_}],facebookImage:[{__meta__:{createdBy:c,createdDate:GX},contentType:E,file:GY,folderId:ku,id:GZ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:G_}],socialSharingDescription:"I learned how Vue 3 uses ES6 Reflect and ES6 Proxy to create Reactivity in the @VueMastery Vue 3 Reactivity course.",belongsToCourse:dJ},{slug:"activeEffect-and-ref",status:H,date:"2020-02-25T00:00:00-05:00",title:"activeEffect & ref",lessonNumber:ab,free:F,image:[{__meta__:{createdBy:c,createdDate:"2020-02-24T22:00:55.186Z"},contentType:E,file:"1582581637925_ref.opt.jpg",folderId:kv,id:1582581637925,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1582581637925_ref.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=NRGp2ZVvAycGa8B%2BHlnF6ts7XUK1WxEX0SY4zZAaLLNeQi4ck6O901g9%2F5zWYRdUUTVcu9dGF0TkUtFEBSeAQ61Ai%2Bf7fBHTVVzMdh%2BbiExNzxJ0pP0hdkrpQ9Li5%2Bn6RvvXxq5zL8OSrPsLmW3YVbXXPACp3S6d%2BW60lGPZK7UYIMwcUHUm52z%2BILMmILMNq6d7Ty2iOgZ5ctbNTNYSdzGwUEuy2W00YqXC29%2B0bRgboy2Z5SD%2FIEPrqPt8ZVqEG15V7xAW3XS7gEJQ0dU2U8ozIdlujxpumTpCn4gKm1rhRpTshH37O7zI6mO9Zg9zg3RpSG%2FHbNMgoEt%2FoCOqEA%3D%3D"}],description:"Getting closer to how Vue 3 codes up reactivity, we'll learn how to use activeEffect and how to create our own reactive reference.",duration:"00:07:13",author:P,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:G$},contentType:E,file:Ha,folderId:kv,id:Hb,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Hc}],facebookImage:[{__meta__:{createdBy:c,createdDate:G$},contentType:E,file:Ha,folderId:kv,id:Hb,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Hc}],socialSharingDescription:"I'm learning how Vue 3 does reactivity and how it defines reactive references in the @vuemastery Vue 3 Reactivity course.",belongsToCourse:dJ},{slug:"computed-values-and-vue3-source",status:H,date:"2020-03-31T00:00:00-07:00",title:"Computed Values & Vue 3 Source",lessonNumber:ac,free:F,image:[{__meta__:{createdBy:c,createdDate:"2020-03-25T22:52:16.151Z"},contentType:E,file:"front-3.opt.jpg",folderId:kw,id:1585176721278,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Ffront-3.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=KJTrroS3%2FoXfMnUGGWiWR46uVcuSQfS8Lp1QthluC2cHUXW1LGSMRrVqU7%2FhXgmtLb8hQw4dNs%2BDjyFjuwGi3zF1ErQXWWdbY2KjfzV6QTgLb0H1rfFMTL0PvOp9RtrYyYN4Aqg7Df4tSV6ZhO5bODdh3rY12qN4u%2BrY2YSOSMHUNU4WxE7GaVPEi03zCsuew%2Baabauv48C1WeqwPp5s7DxBxULgHGctf8tr7KMm00COqmPE6DZkA8HAnD6hmtXg8iRRxsIymx0btURWPXwEZlKqSKDqSIbxMhJzVqzKA2%2Fum%2BdMFl63ob9%2Fe1v4qVg2%2FmGI9ZJDlHO7xR9hHjX%2Bcw%3D%3D"}],description:"Our reactive effects might make more sense as computed properties. In this lesson we’ll create a computed method, and look at the architecture of the Vue 3 Reactivity library.",duration:"00:06:55",author:P,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:Hd},contentType:E,file:He,folderId:kw,id:Hf,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Hg}],facebookImage:[{__meta__:{createdBy:c,createdDate:Hd},contentType:E,file:He,folderId:kw,id:Hf,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Hg}],socialSharingDescription:"I learned how to create computed reactive objects from scratch on the @VueMastery Vue 3 Reactivity course.",belongsToCourse:dJ},{slug:"q-a-with-evan-you",status:H,date:"2020-04-14T00:00:00-07:00",title:"Q & A with Evan You",lessonNumber:W,free:F,image:[{__meta__:{createdBy:c,createdDate:"2020-04-13T17:21:16.635Z"},contentType:E,file:"evan&gregg.opt.jpg",folderId:kx,id:1586798459663,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fevan%26gregg.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=GAkdxPkZGjUSAkccRAxWctuuDkrra7ve8LHT%2FlL%2F9UuYjEMw%2BisYfSsBdxbr4jclSxzKrzOGSpBwvVIXCRiw%2F8ea8kmEhGW2Q0wdJa9xlXrlcO7TW71NTa%2FjwVVVgCtcwyM%2BZYlxNhixCSKwHvGiidITKyy44HJ886mm%2F6RCzg%2F4ATWXY%2Fp7x2WAEx4oxNmiGAPx%2FVUIvvLBnFzQv3fqy%2B53JI0p%2B1NuHfQgLDtrF2dnuqnh%2BzvUB4WWt%2BrWtHl7%2FfkPfI4LnCPY7WkG5JmnnhbHzV%2BZ7EDkmpCV240MR85xqHG6NlpjRRMTJdbK1l6R3i8QY7g%2BPaSQ49z1dMXlGw%3D%3D"}],description:"Gregg sits down with Evan You, the creator of Vue, to ask him questions about the implementation of Reactivity in Vue 3.",duration:"00:08:38",author:P,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:Hh},contentType:E,file:Hi,folderId:kx,id:Hj,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Hk}],facebookImage:[{__meta__:{createdBy:c,createdDate:Hh},contentType:E,file:Hi,folderId:kx,id:Hj,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Hk}],socialSharingDescription:"I watched a Q&A with Evan You and Gregg Pollack, discussing the implementation of reactivity in Vue 3 on @VueMastery",belongsToCourse:dJ},{slug:"reading-source-code-with-evan-you",status:H,date:"2020-04-28T00:00:00-07:00",title:"Reading Source Code with Evan You",lessonNumber:S,free:F,image:[{__meta__:{createdBy:c,createdDate:"2020-04-21T19:00:48.817Z"},contentType:E,file:"Evan&Gregg Source Code.opt.jpg",folderId:ky,id:1587495637680,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FEvan%26Gregg%20Source%20Code.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=YEskxhB2AxwJRDYgmKJbt3%2FenseMpG1%2FJjkP2e3DfUMIHQJS7aURSGDd1pRUMV8pzKujtSgeE2n%2F948glDr9t96StLPr39DEXov71qtDG651qDid4D%2B9FhqGQVKD3E4b5pbp6qcgtIqb3p6zFfLrhbj%2BZXILEFS3a4%2BJhHkS56qiJqw%2BSeXfrkAhbK1gtMj4FH8a%2F8FHYXGin5slvmC%2B6aaXtueD%2Forn8RDEordkWjudHD0wnjwCBpuGs2HI3CvJUtzoxaQPyJGzorI9kVDYjJaX7LE8yRmFkH%2BpLRB297Ub%2FTjcyzQ5RHhRvQHQOXHXDHZ5PzeOXN1qs3J2ywb2XA%3D%3D"}],description:"Evan You helps us dive into the Vue 3 Reactivity source code, explaining many of the complex features along the way.",duration:"00:20:12",author:P,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:Hl},contentType:E,file:Hm,folderId:ky,id:Hn,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Ho}],facebookImage:[{__meta__:{createdBy:c,createdDate:Hl},contentType:E,file:Hm,folderId:ky,id:Hn,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Ho}],socialSharingDescription:"I read through the Vue 3 Reactivity source with Evan You on @VueMastery",belongsToCourse:dJ}],lessonsCount:S,order:M,parentId:M,slug:"vue-3-reactivity",teachers:[{firstName:dw,lastName:dx,about:dy,image:[{__meta__:{createdBy:c,createdDate:dz},contentType:E,file:dA,folderId:X,id:dB,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:dC}]}],title:GS},"1580506143374":{__meta__:{createdBy:c,createdDate:"2020-01-31T21:29:03.374Z",lastModifiedBy:c,lastModifiedDate:"2022-11-11T10:29:19.700Z",locale:T},completable:G,courseDependencies:J,courseLabelsBar:J,description:"Build your best components by understanding the best practices and pros and cons of various design patterns.",difficulty:cK,duration:"00:40:05",free:F,id:cO,image:[{__meta__:{createdBy:c,createdDate:"2021-01-13T03:34:49.272Z"},contentType:K,file:"component_design_patterns.png",folderId:1580505911579,id:1610508874538,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fcomponent_design_patterns.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=dQKa88kidNUTUV%2FbKaw%2Fa0Pa9sKfOWeaVJwyD6JK2jUDYdZ17VlIKDvRZ464FIbn4YiBhCPLtcaxiYMheEgb4dZ1doXQDzv%2BnYNCevJ8Otflt9dcCcAyGJ%2B2ftYGbkE30oyxUVpg6LLWztmOvtfxEWJcahCg8dHlDeCReeTLQ8oDrCVMV2K9%2BN32MSvZt%2F%2F3mOtgSYw1sdZTVtKhoO%2BQfn9hGF3bsGn5BbCtmJ59t%2BLOCMqip0FDCc61Bu2tV9biLMSuiyVj4kqTxZzzgIiesFIxBqyjjgOo%2FBOICAMHG26Mw1anrv%2F5POOb60JbjdDuc0fEZoMK%2FepStSq0G2mzcA%3D%3D"},{__meta__:{createdBy:c,createdDate:"2022-05-15T19:45:46.769Z"},contentType:K,file:"component-design-patterns.png",folderId:aR,id:1652643569462,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fcomponent-design-patterns.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=JAGCdRRnqdlnxzwGI%2FJjZxcVaL5N00pq4EPl%2FDMuRB4U9q2VpdNy8eH3Gtu2a3OliiIReMX3pbVyyvGAkkzGNl0tpc3sLPCSb1C7uW5e8v72L4XjcpbQfcROAWL%2FGlH5vC3SKvfvBlDBWPu8aDNGQ%2Bx4f%2FhdZr5zXyoK0LG4hHah3u9YisylAx5D6qxUiASge48YuRws2jszopyEiCA%2BMMup9cMlTS4HGUXC4vzBA99GwlZBw%2B87V%2BBrlZVAYXTHEGhDddLhNfOiID5kPwnKG5YzDYdmn6c5jFnHbE%2BwSYb58tiwy2mh7R4xTL6aVl05%2BCQdwhrAW051Bbemf08pBQ%3D%3D"}],isComingSoon:F,isDraft:F,isPromoted:F,label:ad,lessons:[{slug:"introduction",status:H,date:"2020-03-02T00:00:00-08:00",title:cg,lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:"2020-03-03T21:19:20.732Z"},contentType:E,file:"featured.opt.jpg",folderId:kz,id:1583270341140,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Ffeatured.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=UD5j3m4LHncAFjitDcljXMTLNVGqnsQe5VAFpN2gLxGDx%2FGOH3SuNxCP56wQwWELhimTyRWpYtAHuqWBUp2U79qmpohcD3YHRbFRzjWOGi4oSjKzOax5OlquFWG2xzpZIQMLEm1WsCZFYyOdJnev8fCPgDUaWHk96Jz%2BdWvX1QWGtwW7AAWaTsQvi5k8j418xR24sMnf03hUbpyI047qWUmHus9UMhGNWUWxLOG1B6hqZhKH2uWvZXmnOPhWrTsIVUqp%2BCeCGuJF8zS81%2B7bs7AFEW7gBYP7gt2Zb5klOKQSpgN9ZUWoCccm4ZuW7i3ZlJ22jwamapTlAS9lJkMiWA%3D%3D"}],description:"Learn the core concepts that you will be learning that will make you successful at composing reusable components.",duration:kA,author:N,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:Hp},contentType:E,file:Hq,folderId:kz,id:Hr,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Hs}],facebookImage:[{__meta__:{createdBy:c,createdDate:Hp},contentType:E,file:Hq,folderId:kz,id:Hr,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Hs}],socialSharingDescription:"I'm learning about creating reusable Vue.js components on @vuemastery!",belongsToCourse:cO},{slug:"props-fundamentals",status:H,date:"2020-03-10T00:00:00-07:00",title:"Props: Fundamentals",lessonNumber:U,free:G,image:[{__meta__:{createdBy:c,createdDate:"2020-03-03T21:34:40.592Z"},contentType:E,file:"featured.opt.1583271263966.jpg",folderId:kB,id:1583271263966,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Ffeatured.opt.1583271263966.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=NrP%2FrqE3%2FC9boUuWiuWFfu4Kl1JFI%2FoCSEhB3P8%2B99YyEhiYMHgnTM9IPQUWlgEldp9tJhNrV8gEVwZx7u7kZx6pbhsooRqFT6oBdgju%2FXQEnA7X2gXi16Q%2BDd%2FBNohCmAn04TOS3iTcZoeYciRokzx%2FYb5knJh16MoD%2FVFC5ZtD17azb%2FHQOicHgIaLefCYxdQaaFMDDJC%2FwOV%2BkYkyWFbXIG113q3xRlgq60G4RxlJjTLYACl5nWO%2BQB7%2B3I5EumeBf1Ac3RcCC3B31VmOpvYKYQ5DJAAB5%2BM3FBzog6Kl8ucM0gD5toZhQgB7FiwwcDSQPJTfGTX%2Bfrd%2BbDyCmA%3D%3D"}],description:"Learn the fundamental best practices and techniques you should use when defining props in your components!",duration:Ht,author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:Hu},contentType:E,file:Hv,folderId:kB,id:Hw,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Hx}],facebookImage:[{__meta__:{createdBy:c,createdDate:Hu},contentType:E,file:Hv,folderId:kB,id:Hw,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Hx}],socialSharingDescription:"I'm learning about best practices for using props in components on @vuemastery!",belongsToCourse:cO},{slug:"props-custom-validation",status:H,date:"2020-03-24T00:00:00-07:00",title:"Props: Custom Validation",lessonNumber:ab,free:F,image:[{__meta__:{createdBy:c,createdDate:"2020-03-23T20:08:36.085Z"},contentType:E,file:"featured.opt.1584994086835.jpg",folderId:kC,id:1584994086835,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Ffeatured.opt.1584994086835.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=vr9WmFl%2Fr1OzKvgO7mQfXGxljLTi36gJz0hfJJopX%2B%2B78dMaZQ3PifOyCqYSIhGrEzJ1OMnsu0gXnOg6CgBvLDE23KSjWqp0hJPw80yaZ6Scgn%2FocBywgKmTKMLsAzCK9nt9KvHWKWZL%2Buccp97dj%2Bz9k5NCzxN7crmYFkR6uZD4xVtICdAHFAPoI2tho0TfU8W3q%2FiAIHNfoM%2BoUoHcbsNjTGz2ga%2Fui0Jil4%2FMJMJP1AO88hit5N5bBcVHO4%2B%2Bcxmlo5kbhPJfsCM9d8y4EEBYd2H7G8rFPoUcPd3QM22NixQcItoq7aiFPTu3%2FFRIHNy7sSZhi%2Fw5ull%2BFgITNg%3D%3D"}],description:"Learn the how to create custom validators for props in a component!",duration:kD,author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:Hy},contentType:E,file:Hz,folderId:kC,id:HA,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:HB}],facebookImage:[{__meta__:{createdBy:c,createdDate:Hy},contentType:E,file:Hz,folderId:kC,id:HA,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:HB}],socialSharingDescription:"I'm learning how to create custom validators for props in components on @VueMastery!",belongsToCourse:cO},{slug:"the-problem-with-props",status:H,date:"2020-04-21T00:00:00-07:00",title:"The Problem with Props",lessonNumber:ac,free:F,image:[{__meta__:{createdBy:c,createdDate:"2020-04-21T17:59:11.488Z"},contentType:E,file:"problemwithprops_opt.jpg",folderId:kE,id:1587491924134,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fproblemwithprops_opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=ZlnsBCuG%2Fkeq77SPiLj3EQwOzlyWcVhR8LC%2B6GWMReGl53YdHtqIWRhyOTzL7Zrx%2Bg4BOVOOH254NyLz9OXU9tuDn7Z0K1eHSv%2BmqBJ5oRYu1HRM4dfrQ5akR77ehhWPojGkpD02%2FlOP1ivKKxdIyN5QS9p8zULT6fn0E9fTRMuwqrxEHKqJnMd89Rd3kEiiLvYe%2FqSn2XHgPMbiEAbE04ao1rvWh9SLOGHKhrlona28Tg0hHFCahdRJSP1rrBLLMHK9KFlHjnmsCSfNcgz7%2F1PqztaIBK4nkCpJKtEJO1PVwTWoL%2FfJg9V1ZG%2FC1fCde4BYDNeH3Q2lrz2OzjgtUA%3D%3D"}],description:"Learn about the pitfalls of props heavy components!",duration:"00:06:32",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:HC},contentType:E,file:HD,folderId:kE,id:HE,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:HF}],facebookImage:[{__meta__:{createdBy:c,createdDate:HC},contentType:E,file:HD,folderId:kE,id:HE,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:HF}],socialSharingDescription:"I'm leaning what the tradeoffs are with creating props heavy components on @VueMastery!",belongsToCourse:cO},{slug:"slots-fundamentals",status:H,date:HG,title:"Slots: Fundamentals",lessonNumber:W,free:F,image:[{__meta__:{createdBy:c,createdDate:kF},contentType:E,file:kG,folderId:kH,id:kI,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:kJ}],description:"Slots are a powerful technique that every Vue.js developer should know. In this lesson, we take a look at the key knowledge you need to use slots in your app.",duration:kK,author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:kF},contentType:E,file:kG,folderId:kH,id:kI,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:kJ}],facebookImage:[{__meta__:{createdBy:c,createdDate:kF},contentType:E,file:kG,folderId:kH,id:kI,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:kJ}],socialSharingDescription:"I just learned how to create more flexible components with slots on @vuemastery!",belongsToCourse:cO},{slug:"slots-techniques",status:H,date:HG,title:"Slots: Techniques",lessonNumber:S,free:F,image:[{__meta__:{createdBy:c,createdDate:kL},contentType:E,file:kM,folderId:kN,id:kO,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:kP}],description:"While single slots provide a lot of flexibility, it's common developers to need multiple slots when working on components like layouts. In this lesson, we take a look at the key slot techniques you need to know when working with multiple slots.",duration:HH,author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:kL},contentType:E,file:kM,folderId:kN,id:kO,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:kP}],facebookImage:[{__meta__:{createdBy:c,createdDate:kL},contentType:E,file:kM,folderId:kN,id:kO,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:kP}],socialSharingDescription:"I just learned how to work with components that need multiple slots on @vuemastery!",belongsToCourse:cO},{slug:"scoped-slots-part-1",status:H,date:"2020-07-14T00:00:00-04:00",title:"Scoped Slots: Part 1",lessonNumber:ae,free:F,image:[{__meta__:{createdBy:c,createdDate:kQ},contentType:E,file:kR,folderId:kS,id:kT,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:kU}],description:"Slots are great for populating content from the parent, but what happens when you need to populate it with data from the child component? Scoped slots are the answer and we'll take a look at the fundamental knowledge to get you up and running!",duration:HI,author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:kQ},contentType:E,file:kR,folderId:kS,id:kT,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:kU}],facebookImage:[{__meta__:{createdBy:c,createdDate:kQ},contentType:E,file:kR,folderId:kS,id:kT,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:kU}],socialSharingDescription:"I just learned how to use scoped slots on @vuemastery!",belongsToCourse:cO},{slug:"scoped-slots-part-2",status:H,date:"2020-07-28T00:00:00-04:00",title:"Scoped Slots: Part 2",lessonNumber:ah,free:F,image:[{__meta__:{createdBy:c,createdDate:kV},contentType:E,file:kW,folderId:kX,id:kY,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:kZ}],description:"Scoped slots are great for helping to access a child component's data, but it has some constraints that you should be aware of when designing components. In addition, there are also some alternative syntax that are used with scoped slots that you will want to know about!",duration:"00:04:01",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:kV},contentType:E,file:kW,folderId:kX,id:kY,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:kZ}],facebookImage:[{__meta__:{createdBy:c,createdDate:kV},contentType:E,file:kW,folderId:kX,id:kY,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:kZ}],socialSharingDescription:"I just completed a deeper dive on scoped slots on @vuemastery!",belongsToCourse:cO},{slug:"one-object-to-rule-them-all",status:H,date:"2020-08-18T00:00:00-07:00",title:"One Object to Rule Them All",lessonNumber:an,free:F,image:[{__meta__:{createdBy:c,createdDate:k_},contentType:E,file:k$,folderId:la,id:lb,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:lc}],description:"In libraries and more complex components, it's common to see syntax such as v-bind=\"$attrs\" and v-on=\"$listeners,\" but what exactly is going on here? In this lesson, we will be taking a closer look at how this syntax works!",duration:"00:06:34",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:k_},contentType:E,file:k$,folderId:la,id:lb,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:lc}],facebookImage:[{__meta__:{createdBy:c,createdDate:k_},contentType:E,file:k$,folderId:la,id:lb,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:lc}],socialSharingDescription:"I just learned how to spread multiple properties with v-bind and v-on on @vuemastery!",belongsToCourse:cO}],lessonsCount:an,order:M,parentId:M,slug:"component-design-patterns",teachers:[{firstName:da,lastName:db,about:dc,image:[{__meta__:{createdBy:c,createdDate:dd},contentType:E,file:de,folderId:X,id:df,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:dg}]}],title:"Component Design Patterns"},"1586804506353":{__meta__:{createdBy:c,createdDate:"2020-04-13T19:01:46.353Z",lastModifiedBy:c,lastModifiedDate:"2022-09-01T16:48:46.615Z",locale:T},category:[{name:af,color:ag}],completable:G,courseDependencies:J,courseLabelsBar:J,description:"Put theory into practice by building a feature-rich email app that makes use of the core new features of Vue 3.",difficulty:cK,duration:"02:01:30",free:F,id:bX,image:[{__meta__:{createdBy:c,createdDate:"2020-04-13T18:59:17.943Z"},contentType:K,file:"Build a Gmail Clone with Vue 3.png",folderId:1586804303519,id:1586804347688,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FBuild%20a%20Gmail%20Clone%20with%20Vue%203.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=oNtJzsoBuxUO92BNrCcjj7U7%2BNcGeEV%2B9PB9vc9pfKEZOonhaKd26Nb2XfCvaOqMxG6Np6M7vxxb6nG8ixGO8Z5IFq9Rw0nyuj8D3WeoSSXTF46ETO0CrNNniN0BNaI9iG5KXh%2B3Fd9JYGT%2Fvye2%2BbvYSK%2Fv02M6jGWRTUlfgF1Y8jqpvhzJZW3XQ8LT3DxIRJYrEPDhZ4bvZ4TqkRf1YnBlLGKXZlYOeEw9SekTmtmzuqVm31url82lDYBz8G375juRBI0eCm5H2%2Bo9zjQzbVC8csYfOZSmWVxJSnE7wrxe4rezpPBxlc3Yy4Eoci8azpostjMJH5FEFfC9yZRJgg%3D%3D"},{__meta__:{createdBy:c,createdDate:"2022-05-15T19:45:41.932Z"},contentType:K,file:"build-a-gmail-clone-with-vue3.png",folderId:aR,id:1652643563430,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fbuild-a-gmail-clone-with-vue3.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=HCk3RzSuz%2BVEF6PuASx0LGmeIVDCgcb6%2F76kRRAPD1RaG9XK3BlYF6%2FOqr5pevfcNjU6gqgj405tBFp29vmftRBHjr%2BnE3pRyfHqVnLs6mxNWOfjRnnv5rjbtS8Zi7fdtNMaPE%2FWLTX6Iq%2F%2BBBlGbSt4WJH%2Fm1dRXF1X6Xc19hQUaHTEAfOOkpVgTKkbGcJH%2Fe1vNENPi8s5z0GiRxwJDuCHiiGdbXjeUR0DuLf65ZUteaLcVvwybXxt7oHugw7dU2ctgakMwVqC3oz5LECeDkJel1wsri9DfqJBJ1koXXxb%2B%2BaDSAFxEkVNfNGPzl6es65vcpHOaI%2F0j9DyqrkqAA%3D%3D"}],isComingSoon:F,isDraft:F,isPromoted:F,label:ad,lessons:[{slug:"tour-the-project",status:H,date:ld,title:"Tour the Project",lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:le},contentType:E,file:lf,folderId:lg,id:lh,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:li}],description:"Let’s take a look at the email app we’ll be building with Vue 3",duration:Aw,author:ch,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:le},contentType:E,file:lf,folderId:lg,id:lh,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:li}],facebookImage:[{__meta__:{createdBy:c,createdDate:le},contentType:E,file:lf,folderId:lg,id:lh,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:li}],socialSharingDescription:"I'm building an email app with Vue 3 at @vuemastery",belongsToCourse:bX},{slug:"building-the-inbox",status:H,date:ld,title:"Building the Inbox",lessonNumber:U,free:G,image:[{__meta__:{createdBy:c,createdDate:lj},contentType:E,file:lk,folderId:ll,id:lm,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ln}],description:"We’ll build the basic interface of our email inbox, using mostly familiar techniques from the Options API",duration:"00:09:28",author:ch,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:lj},contentType:E,file:lk,folderId:ll,id:lm,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ln}],facebookImage:[{__meta__:{createdBy:c,createdDate:lj},contentType:E,file:lk,folderId:ll,id:lm,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ln}],socialSharingDescription:"I just built the interface of an email inbox on @vuemastery",belongsToCourse:bX},{slug:"async-setup-and-suspense",status:H,date:ld,title:"Async Setup & Suspense",lessonNumber:ab,free:F,image:[{__meta__:{createdBy:c,createdDate:lo},contentType:E,file:lp,folderId:lq,id:lr,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ls}],description:"Discover how Vue 3’s setup function and suspense component enable easy asynchronous communication",duration:"00:07:49",author:ch,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:lo},contentType:E,file:lp,folderId:lq,id:lr,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ls}],facebookImage:[{__meta__:{createdBy:c,createdDate:lo},contentType:E,file:lp,folderId:lq,id:lr,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ls}],socialSharingDescription:"I learned about Vue's setup function and suspense component on @vuemastery",belongsToCourse:bX},{slug:"axios-and-json-server",status:H,date:lt,title:"Axios & JSON Server",lessonNumber:ac,free:F,image:[{__meta__:{createdBy:c,createdDate:lu},contentType:E,file:lv,folderId:lw,id:lx,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ly}],description:"Get data asynchronously from a server using axios, async\u002Fawait, json-server, and the setup function.",duration:FE,author:ch,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:lu},contentType:E,file:lv,folderId:lw,id:lx,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ly}],facebookImage:[{__meta__:{createdBy:c,createdDate:lu},contentType:E,file:lv,folderId:lw,id:lx,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ly}],socialSharingDescription:"I learned how to get data asynchronously from a server on @vuemastery",belongsToCourse:bX},{slug:"opening-an-email",status:H,date:lt,title:"Opening an Email",lessonNumber:W,free:F,image:[{__meta__:{createdBy:c,createdDate:lz},contentType:E,file:lA,folderId:lB,id:lC,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:lD}],description:"Open emails and display them using marked.js and date-fns.",duration:HJ,author:ch,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:lz},contentType:E,file:lA,folderId:lB,id:lC,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:lD}],facebookImage:[{__meta__:{createdBy:c,createdDate:lz},contentType:E,file:lA,folderId:lB,id:lC,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:lD}],socialSharingDescription:"I learned about marked.js and date-fns on @vuemastery",belongsToCourse:bX},{slug:"email-modal",status:H,date:lt,title:"Email Modal",lessonNumber:S,free:F,image:[{__meta__:{createdBy:c,createdDate:lE},contentType:E,file:lF,folderId:lG,id:lH,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:lI}],description:"Create a reusable modal component and use it for displaying emails.",duration:"00:03:06",author:ch,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:lE},contentType:E,file:lF,folderId:lG,id:lH,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:lI}],facebookImage:[{__meta__:{createdBy:c,createdDate:lE},contentType:E,file:lF,folderId:lG,id:lH,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:lI}],socialSharingDescription:"I learned about reusable modal components on @vuemastery",belongsToCourse:bX},{slug:"keyboard-shortcuts",status:H,date:HK,title:"Keyboard Shortcuts",lessonNumber:ae,free:F,image:[{__meta__:{createdBy:c,createdDate:lJ},contentType:E,file:lK,folderId:lL,id:lM,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:lN}],description:"Learn keyboard shortcuts and composition API hooks! In this video, we learn how to exit the modal using the Escape key.",duration:HL,author:ch,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:lJ},contentType:E,file:lK,folderId:lL,id:lM,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:lN}],facebookImage:[{__meta__:{createdBy:c,createdDate:lJ},contentType:E,file:lK,folderId:lL,id:lM,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:lN}],socialSharingDescription:"I learned about keyboard shortcuts in Vue on @vuemastery",belongsToCourse:bX},{slug:"usekeydown-composable",status:H,date:HK,title:"useKeydown Composable",lessonNumber:ah,free:F,image:[{__meta__:{createdBy:c,createdDate:lO},contentType:E,file:lP,folderId:lQ,id:lR,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:lS}],description:"Build a composable! We take advantage of the composition API to abstract our keyboard shortcuts and make them easy to define.",duration:"00:09:03",author:ch,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:lO},contentType:E,file:lP,folderId:lQ,id:lR,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:lS}],facebookImage:[{__meta__:{createdBy:c,createdDate:lO},contentType:E,file:lP,folderId:lQ,id:lR,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:lS}],socialSharingDescription:"I learned how to build a composable on @vuemastery",belongsToCourse:bX},{slug:"email-action-bar",status:H,date:HM,title:"Email Action Bar",lessonNumber:an,free:F,image:[{__meta__:{createdBy:c,createdDate:lT},contentType:E,file:lU,folderId:lV,id:lW,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:lX}],description:"Line up our modal’s action buttons and connect them with keyboard shortcuts",duration:GK,author:ch,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:lT},contentType:E,file:lU,folderId:lV,id:lW,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:lX}],facebookImage:[{__meta__:{createdBy:c,createdDate:lT},contentType:E,file:lU,folderId:lV,id:lW,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:lX}],socialSharingDescription:"I learned about email action bars with @vuemastery",belongsToCourse:bX},{slug:"flexible-events",status:H,date:HM,title:"Flexible Events",lessonNumber:aS,free:F,image:[{__meta__:{createdBy:c,createdDate:lY},contentType:E,file:lZ,folderId:l_,id:l$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ma}],description:"Send complex requests to a parent component using an event",duration:"00:09:37",author:ch,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:lY},contentType:E,file:lZ,folderId:l_,id:l$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ma}],facebookImage:[{__meta__:{createdBy:c,createdDate:lY},contentType:E,file:lZ,folderId:l_,id:l$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ma}],socialSharingDescription:"I learned how to send complex requests to a parent component using an event on @vuemastery",belongsToCourse:bX},{slug:"multi-select-with-reactive-sets",status:H,date:mb,title:"Multi-select with Reactive Sets",lessonNumber:bN,free:F,image:[{__meta__:{createdBy:c,createdDate:mc},contentType:E,file:md,folderId:me,id:mf,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:mg}],description:"Track your selected emails using Composition API’s Reactive Objects and Javascript’s Set",duration:HN,author:ch,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:mc},contentType:E,file:md,folderId:me,id:mf,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:mg}],facebookImage:[{__meta__:{createdBy:c,createdDate:mc},contentType:E,file:md,folderId:me,id:mf,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:mg}],socialSharingDescription:"Need an unordered list? Javascript Sets make common operations really easy. I learned how on @vuemastery",belongsToCourse:bX},{slug:"app-wide-non-persisted-state",status:H,date:mb,title:"App-wide Non-persisted State",lessonNumber:dN,free:F,image:[{__meta__:{createdBy:c,createdDate:mh},contentType:E,file:mi,folderId:mj,id:mk,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ml}],description:"Composition API lets you access your composable data app-wide. Track and change your email selections from anywhere!",duration:mm,author:ch,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:mh},contentType:E,file:mi,folderId:mj,id:mk,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ml}],facebookImage:[{__meta__:{createdBy:c,createdDate:mh},contentType:E,file:mi,folderId:mj,id:mk,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ml}],socialSharingDescription:"Will Composition API replace Vuex? For this one use case, yes. I learned about it at @vuemastery",belongsToCourse:bX},{slug:"select-all-checkbox",status:H,date:"2020-08-24T00:00:00-07:00",title:"‘Select All’ Checkbox",lessonNumber:eF,free:F,image:[{__meta__:{createdBy:c,createdDate:mn},contentType:E,file:mo,folderId:mp,id:mq,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:mr}],description:"“Select All” checkboxes are a staple of data-heavy applications. Learn how to create one and connect it to all the other checkboxes with a composable.",duration:"00:11:13",author:ch,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:mn},contentType:E,file:mo,folderId:mp,id:mq,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:mr}],facebookImage:[{__meta__:{createdBy:c,createdDate:mn},contentType:E,file:mo,folderId:mp,id:mq,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:mr}],socialSharingDescription:"I learned how to create a \"Select All\" checkbox on @vuemastery",belongsToCourse:bX},{slug:"bulk-actions",status:H,date:"2020-09-01T00:00:00-07:00",title:"Bulk Actions",lessonNumber:eG,free:F,image:[{__meta__:{createdBy:c,createdDate:ms},contentType:E,file:mt,folderId:mu,id:mv,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:mw}],description:"Want to take action on multiple selected items at once? You need a Bulk Action Bar. Learn how in this lesson.",duration:"00:11:50",author:ch,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:ms},contentType:E,file:mt,folderId:mu,id:mv,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:mw}],facebookImage:[{__meta__:{createdBy:c,createdDate:ms},contentType:E,file:mt,folderId:mu,id:mv,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:mw}],socialSharingDescription:"I learned how to create a Bulk Action Bar on @vuemastery",belongsToCourse:bX},{slug:"archived-view",status:H,date:HO,title:"Archived View",lessonNumber:fm,free:F,image:[{__meta__:{createdBy:c,createdDate:mx},contentType:E,file:my,folderId:mz,id:mA,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:mB}],description:"Learn how to dynamically filter the items in your app - and along the way, learn some nuances of Vue 3’s reactivity system.",duration:"00:06:46",author:ch,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:mx},contentType:E,file:my,folderId:mz,id:mA,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:mB}],facebookImage:[{__meta__:{createdBy:c,createdDate:mx},contentType:E,file:my,folderId:mz,id:mA,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:mB}],socialSharingDescription:"I learned how to dynamically filter the items in my app on @vuemastery",belongsToCourse:bX},{slug:"conclusion",status:H,date:HO,title:"Conclusion",lessonNumber:HP,free:F,image:[{__meta__:{createdBy:c,createdDate:mC},contentType:E,file:mD,folderId:mE,id:mF,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:mG}],description:"A quick overview of what we’ve learned in this course, plus a preview of a hands-on training course that Jeffrey is running.",duration:"00:11:12",author:ch,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:mC},contentType:E,file:mD,folderId:mE,id:mF,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:mG}],facebookImage:[{__meta__:{createdBy:c,createdDate:mC},contentType:E,file:mD,folderId:mE,id:mF,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:mG}],socialSharingDescription:"I learned how to build a gmail clone with #Vue 3 on @vuemastery",belongsToCourse:bX}],lessonsCount:HP,order:M,parentId:M,slug:"build-a-gmail-clone-with-vue3",title:"Build a Gmail Clone with Vue 3"},"1586809150749":{__meta__:{createdBy:c,createdDate:"2020-04-13T20:19:10.749Z",lastModifiedBy:c,lastModifiedDate:"2023-12-18T11:15:24.232Z",locale:T},category:[{name:af,color:ag}],completable:G,courseDependencies:"Required: Node v.16",courseLabelsBar:J,description:"Create simpler and more powerful reusable forms with Vue 3.",difficulty:aQ,duration:"01:25:20",free:F,id:cR,image:[{__meta__:{createdBy:c,createdDate:"2020-04-13T20:18:10.629Z"},contentType:K,file:"Vue 3 Forms.png",folderId:HQ,id:1586809078410,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FVue%203%20Forms.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=tP%2FkXyg9pU2rJpmB7VJamXETBViPq5sP8g8C5s2ZxBrphtz%2FI2wUaG41Z92oL%2Bl%2BSJq1ktHhBWqmrArQU53LAibaCyiw4J3JIM3zwhkcG0vxl%2Fed13f3StQL6WxdlfT1x%2F%2FNSvSLJ6z4V4Q%2B5sIuw1UsoGUvbB7ZAlNMexEFoQ2%2Bksihv6TuWy0tqa8jhoSyleMju4Ydpl6zVTsEaPyI9B42GWFB6qi3iWFGx83FSEguxfJG9im5Ete%2Fgnbmwu1fjaxo4BVi0Ea3DHQKv75X3WDtz4i7puhdSpETkii94X2UlV8h7%2F0Uj41BSHYZVdbjAMHnHl1cD5QkZEgBqmRseg%3D%3D"},{__meta__:{createdBy:c,createdDate:"2023-05-20T15:06:32.277Z"},contentType:I,file:"vue3-forms_WH_800x424px.webp",folderId:HQ,id:1684595183546,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fvue3-forms_WH_800x424px.webp?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=jZ1atf7KJRZQUZw8QpMGD5smKbMnR2mMF6ETB%2BvKVJCaa5sF6Bi%2Bz49v9IssHe10OF5rtBk5VGZ6ztiWw%2BgOIogtfDpCEj7zkzXpy2xOlngcgf9DsgC3Jify0SoCcVZqnk8hZ%2BBtXtrNTaXRVWkyYe%2Fbekwlfv6sCX1Idi248Jjw99lp9yREQWsZzOXy%2BVZLVGjuKKQwv%2FoUAA5eGimmkfLrldVvJ6GaJt1BcRwU%2BkILYuE90K6fPFzDw4URfHlcpzEGI1rbxqsdbwkTfdCI56c4sZIRYS34%2BayJD%2BkCIWe%2FQf7xs3KnIDjI%2BPtbH%2FJ2IXeZqmzKDbyJJnIkwuq6XQ%3D%3D"}],isComingSoon:F,isDraft:F,isPromoted:F,label:ad,lessons:[{slug:"forms-introduction",status:H,date:"2020-09-21T00:00:00-07:00",title:cg,lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:mH},contentType:E,file:mI,folderId:mJ,id:mK,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:mL}],description:"Find out what we’ll cover in this form fundamentals course and what knowledge you’ll need to get the most out of it.",duration:"00:02:37",author:bu,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:mH},contentType:E,file:mI,folderId:mJ,id:mK,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:mL}],facebookImage:[{__meta__:{createdBy:c,createdDate:mH},contentType:E,file:mI,folderId:mJ,id:mK,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:mL}],socialSharingDescription:"I'm learning about forms in #vuejs 3 with @MarinaMosti on @VueMastery",belongsToCourse:cR},{slug:"base-input",status:H,date:"2020-09-22T00:00:00-07:00",title:"Base Input",lessonNumber:U,free:G,image:[{__meta__:{createdBy:c,createdDate:mM},contentType:E,file:mN,folderId:mO,id:mP,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:mQ}],description:"Learn how to create highly reusable input components for all your Vue 3 forms.",duration:"00:11:38",author:bu,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:mM},contentType:E,file:mN,folderId:mO,id:mP,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:mQ}],facebookImage:[{__meta__:{createdBy:c,createdDate:mM},contentType:E,file:mN,folderId:mO,id:mP,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:mQ}],socialSharingDescription:"I just learned how to create reusable form input components in #vuejs 3 with @MarinaMosti on @VueMastery.",belongsToCourse:cR},{slug:"base-select",status:H,date:"2020-10-06T00:00:00-07:00",title:"Base Select",lessonNumber:ab,free:F,image:[{__meta__:{createdBy:c,createdDate:mR},contentType:E,file:mS,folderId:mT,id:mU,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:mV}],description:"Learn how to create highly reusable select components for all your Vue 3 forms.",duration:"00:08:58",author:bu,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:mR},contentType:E,file:mS,folderId:mT,id:mU,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:mV}],facebookImage:[{__meta__:{createdBy:c,createdDate:mR},contentType:E,file:mS,folderId:mT,id:mU,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:mV}],socialSharingDescription:"I just learned how to create reusable form select components in #vuejs 3 with @MarinaMosti on @VueMastery",belongsToCourse:cR},{slug:"auto-importing-components",status:H,date:"2020-10-20T00:00:00-07:00",title:"Auto-importing components",lessonNumber:ac,free:F,image:[{__meta__:{createdBy:c,createdDate:mW},contentType:E,file:mX,folderId:mY,id:mZ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:m_}],description:"Learn a quick and easy way to automatically import components that share a common prefix into your Vue applications.",duration:"00:05:19",author:bu,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:mW},contentType:E,file:mX,folderId:mY,id:mZ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:m_}],facebookImage:[{__meta__:{createdBy:c,createdDate:mW},contentType:E,file:mX,folderId:mY,id:mZ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:m_}],socialSharingDescription:"I just learned how to automagically import base components into my #vuejs applications with @MarinaMosti on @VueMastery 🧙‍♂️🧙‍♀️",belongsToCourse:cR},{slug:"base-checkbox",status:H,date:"2020-11-17T00:00:00-08:00",title:"Base Checkbox",lessonNumber:W,free:F,image:[{__meta__:{createdBy:c,createdDate:m$},contentType:E,file:na,folderId:nb,id:nc,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:nd}],description:"Learn how to create a reusable Checkbox component.",duration:"00:05:22",author:bu,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:m$},contentType:E,file:na,folderId:nb,id:nc,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:nd}],facebookImage:[{__meta__:{createdBy:c,createdDate:m$},contentType:E,file:na,folderId:nb,id:nc,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:nd}],socialSharingDescription:"I just learned how to create a reusable Checkbox component with @MarinaMosti on @VueMastery!",belongsToCourse:cR},{slug:"baseradio",status:H,date:"2020-11-24T00:00:00-08:00",title:"BaseRadio",lessonNumber:S,free:F,image:[{__meta__:{createdBy:c,createdDate:ne},contentType:E,file:nf,folderId:ng,id:nh,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ni}],description:"Learn how to create a reusable radio button component, and the quirks of v-model into radio inputs.",duration:Cm,author:bu,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:ne},contentType:E,file:nf,folderId:ng,id:nh,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ni}],facebookImage:[{__meta__:{createdBy:c,createdDate:ne},contentType:E,file:nf,folderId:ng,id:nh,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ni}],socialSharingDescription:"I just learned how to build a reusable radio button form component for #vuejs 3.0 with @MarinaMosti on @VueMastery",belongsToCourse:cR},{slug:"baseradiogroup",status:H,date:"2021-01-05T00:00:00-08:00",title:"BaseRadioGroup",lessonNumber:ae,free:F,image:[{__meta__:{createdBy:c,createdDate:nj},contentType:E,file:nk,folderId:nl,id:nm,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:nn}],description:"Learn how to create a BaseRadioGroup component to simplify the use of our BaseRadio components in a group.",duration:"00:11:17",author:bu,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:nj},contentType:E,file:nk,folderId:nl,id:nm,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:nn}],facebookImage:[{__meta__:{createdBy:c,createdDate:nj},contentType:E,file:nk,folderId:nl,id:nm,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:nn}],socialSharingDescription:"I just learned how to build a BaseRadioGroup component for #vuejs 3.0 with @MarinaMosti on @VueMastery",belongsToCourse:cR},{slug:"submitting-forms",status:H,date:"2021-02-02T00:00:00-08:00",title:"Submitting Forms",lessonNumber:ah,free:F,image:[{__meta__:{createdBy:c,createdDate:no},contentType:E,file:np,folderId:nq,id:nr,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ns}],description:"Learn how to correctly listen to form submit events and post your Vue form's data using Axios.",duration:"00:12:17",author:bu,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:no},contentType:E,file:np,folderId:nq,id:nr,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ns}],facebookImage:[{__meta__:{createdBy:c,createdDate:no},contentType:E,file:np,folderId:nq,id:nr,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ns}],socialSharingDescription:"I just learned how to handle form submission with Axios in #VueJS 3 with @MarinaMosti on @VueMastery!",belongsToCourse:cR},{slug:"basic-a11y-for-our-components",status:H,date:"2021-03-09T00:00:00-08:00",title:"Basic a11y for our components",lessonNumber:an,free:F,image:[{__meta__:{createdBy:c,createdDate:nt},contentType:E,file:nu,folderId:nv,id:nw,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:nx}],description:"n this lesson will go over what I consider some of the very basic accessibility concepts that you need to keep fresh in mind when developing forms. These concepts are not technically Vue specific, but we will learn how to apply them in the context of our Vue form components.",duration:"00:20:17",author:bu,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:nt},contentType:E,file:nu,folderId:nv,id:nw,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:nx}],facebookImage:[{__meta__:{createdBy:c,createdDate:nt},contentType:E,file:nu,folderId:nv,id:nw,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:nx}],socialSharingDescription:"I just finished reviewing the accessibility basics for Vue 3 form components with @MarinaMosti on @VueMastery",belongsToCourse:cR}],lessonsCount:an,order:M,parentId:M,slug:"vue3-forms",teachers:[{firstName:fn,lastName:fo,about:fp,image:[{__meta__:{createdBy:c,createdDate:fq},contentType:E,file:fr,folderId:X,id:fs,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ft}]}],title:"Vue 3 Forms"},"1586809309649":{__meta__:{createdBy:c,createdDate:"2020-04-13T20:21:49.649Z",lastModifiedBy:c,lastModifiedDate:"2023-05-20T15:11:42.832Z",locale:T},category:[{name:af,color:ag}],completable:G,courseDependencies:J,courseLabelsBar:J,description:"Understand Vue 3 from the inside out through the perspective of the creator himself, Evan You.",difficulty:cK,duration:"03:07:01",free:F,id:bW,image:[{__meta__:{createdBy:c,createdDate:"2020-04-13T20:21:04.208Z"},contentType:K,file:"Vue 3 Deep Dive with Evan You.png",folderId:HR,id:1586809253253,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FVue%203%20Deep%20Dive%20with%20Evan%20You.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=GKp1RDgt4n3J8mKmhQgTyIyHTn3sFO%2Bp5RgEwbhWjKm2yD3hgqvaXaDrZ4bltaIA4IzSykQ4MLgKJCgch%2FshIfKnPZimPBtZ4fPYM3sWxEPkzFk7MZ7N7AYdm8Z8oNdhxBGWGhGoRrUxK7c28VvPC7OySZ%2F0tL1R8QLx%2B2Cmo0cioS4uXS26tCmDSRFjy2zppNTqCySPa%2BDBNwSFwjjBW2RRTrKXVhdmE8PovU86ozDE95cIMyBOMHAEB84E610RFcFdhTOaUP%2BUPalY4YKA8q5SaHgJoHwXhRMKmGj5Jn6S8gwX8pNc7GEMoq3PFIDXB%2BHtiv3DMNhKCHgk%2BvZknw%3D%3D"},{__meta__:{createdBy:c,createdDate:"2023-05-20T15:11:33.169Z"},contentType:I,file:"vue3-deep-dive-with-evan-you_WH_800x424px.webp",folderId:HR,id:1684595484075,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fvue3-deep-dive-with-evan-you_WH_800x424px.webp?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=QCCO%2BjgsJ%2FxEm8X0%2FURBzDBKiuJZc2qZSVAj0a1%2F8hd5bF8INsOUfLvyO3bceqskX81nMXxrFJoFyrocovmRBybVeoexKAjuSHwhw1pLful%2FWjp1CiIhuin6BQhfAxyBOdRKIrlwonPYvptxGmlamOpxTbU1E%2Bk3mJuEQYCdDM5%2B90WS5VM9DOuxt1ttzGzLwpOKtb%2Fjurfqq7bGuPRjHfVToDqcUelSXFLlO%2FTbUQfsdGJYK2OvYGq7B3HYkJuS%2BLZ4lzoTmh8kdowTKxb2RVfXNz8gGIhBt7rYU%2FISS7GTqded1WRjfbf2xButK9MOSTg3aHUVqGlAZqUOtoHUQw%3D%3D"}],isComingSoon:F,isDraft:F,isPromoted:F,label:ad,lessons:[{slug:"vue3-overview",status:H,date:"2020-05-12T00:00:00-04:00",title:"Vue 3 Overview",lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:"2020-05-05T00:02:01.277Z"},contentType:E,file:"DD1-main.jpg",folderId:ny,id:1588636894793,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FDD1-main.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=dhUzqcK33aIiOEj3FZJRbFFCndhjhh1PtNNQ557oy1rM%2FYFa%2Bo%2BW%2FZrG6OCkOcsHMvgoXJo4JB3a2OkHT5YzdGEU4eUqBXjI7qfsEY3xZHfNxCp%2BacSzRktcxErRGTmMkyQEnT1HXBK0bGKJuEcVzUzyhLxEmP%2FJI0ow%2BG%2BmLVpgkRW0L7GGxh%2BWdrgqxY%2BF%2FDd2N2zLs3O7fWw41mFw171bH9M96Kmycdv%2F9D5jluphRF2prgEHsuW1Hs3sysOpb7IsCyQwNzoK0y1aBFWtIsaX%2FzQhSKtUaXMq0s7sANcCv1LlHXpKYt3rPR%2FNjxpFzLfd9MTFwjQs2ZeubIH%2F6Q%3D%3D"}],description:"Gregg Pollack introduces how Vue 3's core modules work together, to prep you to dive deep into Vue 3 concepts with Evan You.",duration:Ht,author:bi,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:HS},contentType:E,file:HT,folderId:ny,id:HU,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:HV}],facebookImage:[{__meta__:{createdBy:c,createdDate:HS},contentType:E,file:HT,folderId:ny,id:HU,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:HV}],socialSharingDescription:"I learned how Vue 3's core modules work together in the Vue 3 Deep Dive with Evan You on @VueMastery",belongsToCourse:bW},{slug:"virtual-dom-and-render-functions",status:H,date:"2020-05-12T00:00:00-07:00",title:"Virtual DOM & Render Functions",lessonNumber:U,free:G,image:[{__meta__:{createdBy:c,createdDate:"2020-05-05T01:58:49.029Z"},contentType:E,file:"DD2-main.jpg",folderId:nz,id:1588643838339,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FDD2-main.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=Z8coTMM6aBtzZb94oMkG7u3kLjxFevX2MAzwyaagouxFz%2BlC8wRl%2Ba3jurYd1BNbpvfg%2Fh5Ic5k%2BnZtc6FNukWKfbTZYVYumsq%2FjQiszlVIH45lBOwg6xathDLMvWys1jcTAWu9S%2Bq4bLJEchSEhI0RmEcUR5pmLgx3VrRcFKMz%2FXUWJoqctIfolKHdAEma1trXvluIQfpEt96x%2B1nz7lq4DfD4ZoyAvEdAJECZ4waWoyq1WhulNOoREoeGK7t%2BszPTOYmaF2qwbQkET%2BVwZse7BDq7wZ9%2BsZ3SyOFQw2EFIDHuX6ZUyA4TW8gLbQZlY0426NSCdYhSmISumoV938w%3D%3D"}],description:"Learn about Vue 3 improvements to the Virtual DOM and Render functions with Evan You, the creator of Vue. ",duration:HW,author:P,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:HX},contentType:E,file:HY,folderId:nz,id:HZ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:H_}],facebookImage:[{__meta__:{createdBy:c,createdDate:HX},contentType:E,file:HY,folderId:nz,id:HZ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:H_}],socialSharingDescription:"I learned about Vue 3 improvements to the Virtual DOM and Render functions with Evan You, the creator of Vue.",belongsToCourse:bW},{slug:"how-to-use-render-functions",status:H,date:fu,title:"How to use Render Functions",lessonNumber:ab,free:F,image:[{__meta__:{createdBy:c,createdDate:"2020-05-05T15:03:19.295Z"},contentType:E,file:"DD3-main.1588690977979.jpg",folderId:nA,id:1588690977979,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FDD3-main.1588690977979.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=N0JAoXxOZV85BIryygj5%2B9omKCpdtOzXnoWLa%2BR0IGw0VIjnjPy%2B66KZ02FwUdK6fe0eB2BsQZqqBlRB3PJ6YLbx00bj5GX5UmaQDNrmNfzpy5puWRaiRINHdiOaE9F%2BM7n9j6KroaZd9Z0edxkPj2Pdr%2BeBxg3mJS0fB8aL2nlgrQP%2BjrGvH2CEjbDXYYg%2FuRfMUoOP7a9ESwbp9UAZ%2BIY89GX0yrvJofRyOVEzBZwVoMOhyWO%2FTweJAI%2FJmGT4ew1X81H%2BimynAuj3XVpkRMnecmtinoT3rC4dHFu28nv902YvkiEE1yDp2WMBqmmUUPo8aAyLhP4gf7Niu7ktBA%3D%3D"}],description:"Watch Evan live code some render functions. He shows how powerful they can be when you need them.",duration:"00:15:54",author:P,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:H$},contentType:E,file:Ia,folderId:nA,id:Ib,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Ic}],facebookImage:[{__meta__:{createdBy:c,createdDate:H$},contentType:E,file:Ia,folderId:nA,id:Ib,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Ic}],socialSharingDescription:"Evan You, the founder of Vue, showed me the power of render functions on his Deep Dive on @VueMastery",belongsToCourse:bW},{slug:"compiler-and-renderer-api",status:H,date:fu,title:"Compiler & Renderer API",lessonNumber:ac,free:F,image:[{__meta__:{createdBy:c,createdDate:"2020-05-05T15:10:18.876Z"},contentType:E,file:"DD4-main.jpg",folderId:nB,id:1588691402695,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FDD4-main.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=Kzg1y4XkGEBbhuR8ZnEKgnnktklW354QdzM%2BlCA3LfpL4%2Fy8SgxxPbDXdlfR7xUckYAvQ8m6XsGeAtEuBM%2FohqnVjMRbX8dq8RlymxsK9y2gVQg1KfBlKVUfc1g4X2Jf2FETXWYrE5hKzXiyfZFBEhNcK6NkrNW8cS7PizDQKCdjLIUnQycYxJGz1hxBO3BFOrP4y%2FoefEG8G7ak%2BylFc9Q4rLCMIEvrGwrEKZPTwBToXp0f1v0KtT2egYMq8aS8MEG7anB2pZ4H4obn6N6Mcx3NWy6VRx0PzoTVqBUXduQJAAL0i5Ji%2B76REGBuFaEBQtmLA8I2Ws09IsjujJOLag%3D%3D"}],description:"Some of Vue 3's biggest optimizations are inside it's template compiler. In this lesson Evan gives us a tour of the optimizations he's made and challenges us to create our own rendering API.",duration:"00:19:39",author:P,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:Id},contentType:E,file:Ie,folderId:nB,id:If,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Ig}],facebookImage:[{__meta__:{createdBy:c,createdDate:Id},contentType:E,file:Ie,folderId:nB,id:If,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Ig}],socialSharingDescription:"Evan You helped me discover Vue 3's compiler optimizations in his Deep Dive on @VueMastery",belongsToCourse:bW},{slug:"creating-a-mount-function",status:H,date:fu,title:"Creating a Mount function",lessonNumber:W,free:F,image:[{__meta__:{createdBy:c,createdDate:"2020-05-05T15:20:44.986Z"},contentType:E,file:"DD5-main.jpg",folderId:nC,id:1588692027726,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FDD5-main.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=R8ZF00U79vUOBdnPEfYfWY89rfdt3kxOXcsmAMoQlEsJ7NzLcY2m%2B4rxG1qiwOUM1oYR26sFme7fQo03l9XcoeLkZDjYTd0oC8%2FqfKqAkAHFL9cG1Yhr%2BAjvLqkHuG52%2FHIuYzNxiSfRSToJF6aFlxh8lkypeKX2G%2BKrvPs2NxFCAOQrQ%2B4PVusZgryNQ7kTaTEKFL5nd3I0lSkIkVInnPgSG9LppIalDM1U%2BzW%2FQ%2BEXYdyiy1rChxbcm1m9D8qroRtdQTjh%2BG7LbSVaZjsyRLQY8S0LY2d0u%2BF25bYNfqsf0k7WkrUvf1X4uaU%2F5fDbBIeM59c67ivdZqxwKN1RPQ%3D%3D"}],description:"We watch Evan You create a simple mount function, which takes a virtual node and makes DOM JavaScript calls to render it onto the page.",duration:"00:09:51",author:P,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:Ih},contentType:E,file:Ii,folderId:nC,id:Ij,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Ik}],facebookImage:[{__meta__:{createdBy:c,createdDate:Ih},contentType:E,file:Ii,folderId:nC,id:Ij,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Ik}],socialSharingDescription:"I just watched Evan You create a simple Vue mount function in his Vue 3 Deep Dive on @VueMastery",belongsToCourse:bW},{slug:"creating-a-patch-function",status:H,date:fu,title:"Creating a Patch function",lessonNumber:S,free:F,image:[{__meta__:{createdBy:c,createdDate:"2020-05-05T15:31:27.949Z"},contentType:E,file:"DD6-main.jpg",folderId:nD,id:1588692670694,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FDD6-main.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=MaAMcDsPvViYbGHi1ZQ21eYFGeGq9kQhPnLulxMd48hdmM264dh8IrijvOkjVesMsKSg3JTlhkhhHCQUvo6FWOV%2B2cNmQBPTLOwI9txoBIYLqvYt7%2FEES0NSQR3f7oEStp2cBENEsmbvRcHs%2FR0xbNI1b7zsGFvQJPiFGB5ByXkD%2By1cjS%2BxVdhJe1nMoOAZK8mSD84IQSDeNigNI6IfdRKJJRMUq6vZRsvhaTb8MDNmWYJcs%2BTd0XzKvu7YeJsTSBzjzZK6xKhaoKtLo6f%2BmA3hXtYbLcxwpXVTGFwE3wADSrEsX64vyhs4fhdrVSoduX8Feb%2FBUinK%2BJJ2amBa4g%3D%3D"}],description:"Watch Evan You build a renderer patch function which compares two virtual nodes and makes the appropriate DOM JavaScript calls.",duration:"00:19:11",author:P,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:Il},contentType:E,file:Im,folderId:nD,id:In,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Io}],facebookImage:[{__meta__:{createdBy:c,createdDate:Il},contentType:E,file:Im,folderId:nD,id:In,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Io}],socialSharingDescription:"I just watched Evan You build a basic Vue patch function from scratch and it blew my mind.",belongsToCourse:bW},{slug:"intro-to-reactivity",status:H,date:fv,title:"Intro to Reactivity",lessonNumber:ae,free:F,image:[{__meta__:{createdBy:c,createdDate:"2020-05-05T15:52:43.701Z"},contentType:E,file:"DD7-main.jpg",folderId:nE,id:1588693946152,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FDD7-main.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=bqBGVwMtQkiGDApSQnI0ivunJkmZzqfpwVqmR2lf7tTMxYAjNkpg8udg3ldPfQyPxyk9Bv4mWbkSOSovPJWlJcOy9bquF4Hs2rTcdS%2FSsmqkQiPAsZK62ynhney2Ah9WzXliBXvwRSSsgC%2BgOoCNrbBu2tKnTHLRvTBJNtNaEZsCzbKG6bOQYu5yxSGwkU5sF5E9qOOGjTFuGEIeC2Z4ErFFD8X8kuwhk0Z5x8WJ%2Bazlsan8yHzuKQ%2F79tymQOeQwBQuOvMUxq5dtKxQzhrHXDYLVEGtJmd%2F3Zf85F8kznvzp7VgJv20AbLBVAMXWrQRwI0tXxFZuxCaWSkHeqUPrA%3D%3D"}],description:"Learn about reactivity and how it's implemented in Vue 3 compared to other reactive systems.",duration:"00:09:57",author:P,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:Ip},contentType:E,file:Iq,folderId:nE,id:Ir,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Is}],facebookImage:[{__meta__:{createdBy:c,createdDate:Ip},contentType:E,file:Iq,folderId:nE,id:Ir,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Is}],socialSharingDescription:"I learned how Vue 3 is reactive by watching the Deep Dive with Evan You on @VueMastery",belongsToCourse:bW},{slug:"building-reactivity-from-scratch",status:H,date:fv,title:"Building Reactivity from Scratch",lessonNumber:ah,free:F,image:[{__meta__:{createdBy:c,createdDate:"2020-05-05T15:58:46.395Z"},contentType:E,file:"DD8-main.jpg",folderId:nF,id:1588694309130,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FDD8-main.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=BiM1dZG77FmQha27znOROZ4AV3tDVfZhcNrfG1hxPQET%2BeyDXYEnk7UYwASBxu11Rqk%2F6Yt7hmz0mKpexA49Nu1oz7o98SBdxAHJatcxqAlv6eaY3zhD%2BrLrdlTMLl3VkNM5YrF3yzlJruT9pt%2Fs%2FUvjIzHVDGy4sVhJZovo24sJ5W%2BZZEESdwaDjwlYPz7MqzQT74Ot6tOJA%2B9DiMQjDcigZ4Da12AMFmMSMWCct3CMBBs6AGVP3nlFyLn9nOgwSx7EY706%2BuF%2BmVPJp89yYo2zvdF%2FR755KNSZtXDcI%2BI5OZPQT4PNXJkor9gzinGfiIh%2FMPlCbMLmFw1dQAhfJg%3D%3D"}],description:"Evan You builds a small reactivity engine, showing how you can track dependencies and create a small version of reactive references.",duration:"00:12:06",author:P,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:It},contentType:E,file:Iu,folderId:nF,id:Iv,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Iw}],facebookImage:[{__meta__:{createdBy:c,createdDate:It},contentType:E,file:Iu,folderId:nF,id:Iv,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Iw}],socialSharingDescription:"I watched Evan You build a small reactivity engine in the Vue 3 deep dive on @vuemastery",belongsToCourse:bW},{slug:"building-the-reactive-api",status:H,date:fv,title:"Building the Reactive API",lessonNumber:an,free:F,image:[{__meta__:{createdBy:c,createdDate:"2020-05-05T16:06:33.453Z"},contentType:E,file:"DD9-main.jpg",folderId:nG,id:1588694777233,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FDD9-main.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=EmA4ui0J409tZmCHmPqsqLdC7VIaaUBLKQ6pFzBjuoyMODpWSLZzhcClusKq4%2F7Kn7f3wSePG39%2FP4UxOPrE7IGCgFmD0XfgabEkV%2BZlK282yMdOF%2FkyrRn63KelqKuoaS49%2F6bbGPEIeSq17zWZH5TWHp9ViyaQqyqRqE4pM0%2FxdUQOWP5912SuxyuKTU08vSdbO6kyoeFEEQYXg9zXINx1sd7mqoAZWLUX7Fj7NZvOkVlfi3hFK2XIpsZ40JTChnaOp%2BPOBaP2UGccHQ%2FG8ITEJSl%2Bs2LjQ7vnmOtZ3tSOw2ZrKhCAfk3BJy9GN2zIyifJRZe75ju7tKuC%2F9zxhg%3D%3D"}],description:"Watch Evan You code out the reactive API syntax that we have in Vue 3, first using defineProperty and then using Proxy and Reflect.",duration:"00:15:21",author:P,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:Ix},contentType:E,file:Iy,folderId:nG,id:Iz,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:IA}],facebookImage:[{__meta__:{createdBy:c,createdDate:Ix},contentType:E,file:Iy,folderId:nG,id:Iz,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:IA}],socialSharingDescription:"I watched Evan You build out the Vue 3 Reactive API piece by piece in his Deep Dive on @VueMastery",belongsToCourse:bW},{slug:"creating-a-mini-vue",status:H,date:fv,title:"Creating a Mini Vue",lessonNumber:aS,free:F,image:[{__meta__:{createdBy:c,createdDate:"2020-05-05T16:14:36.083Z"},contentType:E,file:"DD10-main.jpg",folderId:nH,id:1588695257924,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FDD10-main.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=eIC%2Bmz%2B%2FTdkbGBpDMusdJ7iTVVJc1EqjjcFMWcJuR1cSHIjMKAOHqig8BN8LWi5Az66IQw2stL7TyZxjlQ%2BxQF3lVyn02e%2Fx%2F3lKDL3G3JKP1Ou1%2BveIpNy%2BJIb5Il60tgfgaA%2BKQIOY0kkHG7ALNhxY473rQVke91rlxVHxx2V6h%2BSNQpt%2FSEUUdrST01V%2Bp%2Butjr2fPf8jF8GLKloJ0lgQH63W4uqemG8L7IsoTvCXk3qVgAPgWKtiIV635YC1CIZvk98t31eKjXNWqt0gspLUjAjavSGSPVU53eQf7O4m0hQQfHvKKahler9K5IkyZlqM4%2BS65QfswhxH8TwSZQ%3D%3D"}],description:"Building on our Virtual DOM and Reactivity System, we'll put them together to create a Mini Vue.",duration:IB,author:P,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:IC},contentType:E,file:ID,folderId:nH,id:IE,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:IF}],facebookImage:[{__meta__:{createdBy:c,createdDate:IC},contentType:E,file:ID,folderId:nH,id:IE,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:IF}],socialSharingDescription:"I watched Evan You create a Mini-Vue from scratch in his Vue 3 Deep Dive on @VueMastery",belongsToCourse:bW},{slug:"the-composition-api",status:H,date:nI,title:"The Composition API",lessonNumber:bN,free:F,image:[{__meta__:{createdBy:c,createdDate:"2020-05-05T16:19:59.157Z"},contentType:E,file:"DD11-main.jpg",folderId:nJ,id:1588695579574,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FDD11-main.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=Up64HnlrvHAA4vRZaGMBr8pAAUteGnpfW%2BUZVtWPuS4a3Lq7UTVN3H%2BF2r6OJdLpWpfHTTpGQ76gpSaMN9nWGdU3Rnh9NNI1MXtmWC2BiyQh3txwtVH4F6trivKKHxk13YAejqD7hGroftdzZyCd%2FkpNy8HvLcVLL0bG7yqPg8BSqLtjjwTDEtmHIdPYmnNrUCDAPz2%2FDLDZGq7%2BDCW%2BMX5ugT3yUGStuRXRf5Yto6007a9xachsSf4tk8eulePfhFJlUw5CYbOaH1CEr3Fz3nklIwOgt0rNwCsEEongohKr8PaJiu4PS8e3sJ4P63UYQXT9oVWLlEC5IjPP%2BU5mZw%3D%3D"}],description:"Learn how to use the new Vue 3 Composition API to scale your Vue applications and how the new watchEffect methods works.",duration:"00:15:07",author:P,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:IG},contentType:E,file:IH,folderId:nJ,id:II,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:IJ}],facebookImage:[{__meta__:{createdBy:c,createdDate:IG},contentType:E,file:IH,folderId:nJ,id:II,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:IJ}],socialSharingDescription:"I'm learning about the Vue 3 Composition API from Evan You on the Deep Dive by @VueMastery",belongsToCourse:bW},{slug:"code-organization",status:H,date:nI,title:"Code Organization",lessonNumber:dN,free:F,image:[{__meta__:{createdBy:c,createdDate:"2020-05-05T16:24:09.354Z"},contentType:E,file:"DD12-main.jpg",folderId:nK,id:1588695831967,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FDD12-main.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=RnvAf08YSrQGO%2FRTNBb3igDsomuoSTfZbbm2ZST994ATMtVkIMWLqqkNzR814JewMRpbMHoMg4ISpTNGX9M01ufvqz3yhl9J474hffZ7NMTesPtbBh1egVRsa4a32I0kMvxg3wGCdCgMDBRpxmjD8u9arrdog6F6Y6sjrZ6SIw35U9WrNzn0MxYY5wYUPEcJeDF3IDFC1oDVQBLI%2BGEMdQpMVbUyE5vbM6QxkE%2Bo8C9q0MV9Velvai66rvCfOFr1jWMWQM5l%2Bi879Zj9HjDMjWzoa6p8u7oTP%2Fne%2BMcApOsotm5L6Kzr2b2wjHXS7SZPu%2FsSEP2EuXs8eZ0n2B6%2Fmw%3D%3D"}],description:"Learn how the Vue 3 Composition API provides a better mechanism for code organization and reuse.",duration:"00:10:53",author:P,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:IK},contentType:E,file:IL,folderId:nK,id:IM,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:IN}],facebookImage:[{__meta__:{createdBy:c,createdDate:IK},contentType:E,file:IL,folderId:nK,id:IM,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:IN}],socialSharingDescription:"I watched Evan You teach how the Composition API provides a better mechanism for code organization and reuse on the Deep Dive on @VueMastery",belongsToCourse:bW},{slug:"logic-reuse",status:H,date:nI,title:"Logic Reuse",lessonNumber:eF,free:F,image:[{__meta__:{createdBy:c,createdDate:"2020-05-05T16:28:09.858Z"},contentType:E,file:"DD13-main.jpg",folderId:nL,id:1588696072068,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FDD13-main.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=ZDzTNnZzZ9hPP%2BXcjL8IqyCK4QaMlWphQ9Iqe3J1VYRRzGZm5jbNmksL5msopF46TAe%2FFCZYn4KwjmERUiyIRpYulK6KA7DLURJhBIxHPEaJ%2Biz3%2FsJ2HeSWn7hrs34idowN1PQCwX%2F26KklEhwyxUSQQfhzEyJhVljJasALI2%2FuJRrsJ%2ByMKKTY%2BBMN02PXHwe28jwSx%2FxILBNEsRR4i5eH3xTnO9%2BG9h6RXDA8elRSJIioz1tIlruYIxHY63Sw5U82O7UKhvMebIgwwhOQWvmN8PFoGpB%2FFl%2FkkL5TjwNUggX3cI7%2BQKMGvfjNHGaq08sxF1QHY%2BXG4drxhrKliA%3D%3D"}],description:"Learn how the Vue 2 way of sharing code has drawbacks which the Composition API now solves for us.",duration:"00:18:45",author:P,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:IO},contentType:E,file:IP,folderId:nL,id:IQ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:IR}],facebookImage:[{__meta__:{createdBy:c,createdDate:IO},contentType:E,file:IP,folderId:nL,id:IQ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:IR}],socialSharingDescription:"I learned the disadvantages of code reuse options in Vue 2 and how the Vue 3 composition API solves them in Evan You's @VueMastery Deep Dive",belongsToCourse:bW},{slug:"Composition-api-example",status:H,date:"2020-05-25T00:00:00-04:00",title:"Composition API Example",lessonNumber:eG,free:F,image:[{__meta__:{createdBy:c,createdDate:"2020-05-05T16:33:19.439Z"},contentType:E,file:"DD14-main.jpg",folderId:nM,id:1588696379152,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FDD14-main.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=JzgUo6GaG2VPCfzzBtOHCJficO1YdGuQDziwADL2pncepnLjlTSfDoAIKJNd0hDlHgQNNrD7sEO8nD2%2F4fRMny6y150mOuj7NnVkHUeYPSpmGZdS1FO92QIVuySiQK0prdoxfYP%2BKelRAAGzw2ZZH2GW6FGRWsAlrov4sSxNtJxC4czBobVZNPojgK0vXSA8iVgcetWQNMIaZ4Cfg4Cql6Pn8dBHOFMzH2%2FWqTfGuvJbvKtSXVS8I08DRor77mTzY2xHEd4TBCAG0JCxEu58oTbEqZXLw4Kx8cG3er6shaI7pzKXFL%2B62XZcyvlPpqwC0I5EdQQlPO%2BYCltIoSrb9A%3D%3D"}],description:"An example is worth a thousand words. In this lesson we walk through a full example of using a Composition Function to reuse logic.",duration:"00:12:21",author:P,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:IS},contentType:E,file:IT,folderId:nM,id:IU,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:IV}],facebookImage:[{__meta__:{createdBy:c,createdDate:IS},contentType:E,file:IT,folderId:nM,id:IU,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:IV}],socialSharingDescription:"I learned how to use the Composition API from Evan You in his Deep Dive on @VueMastery",belongsToCourse:bW},{slug:"parting-words",status:H,date:"2020-05-25T00:00:00-07:00",title:"Parting Words",lessonNumber:fm,free:F,image:[{__meta__:{createdBy:c,createdDate:"2020-05-05T16:37:50.732Z"},contentType:E,file:"DD15-main.jpg",folderId:nN,id:1588696653712,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FDD15-main.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=h7tpVb06GtKTl2kiJsz%2B0xaLPmfubJbw7xKHGpirToLwmht4TOGFH9A%2F61KkrWCo8E4LB9Vhmw1qbVOvpX0J1lmTvB2q4ZzM%2B2nyUuCPRwZazha7rEfNey1KPeqZoxn4HLcZXz9po8TeLZSMQpTT9N9H2jz7yy26r%2FxZhN6xIVTh2mxDGXiLymK%2FfBHa4RkSWw5sNGov36BJLHU5941IS5Envhy%2BFzh0IVKeS%2BvAkmpuSZpvMR1414ov3taXnXlKK5rfXNEulc2%2FX%2Fj1yW7BWYhoSG5UFu%2FUZLrwm%2FsYHnTa85dQ9jeKuK26cGqjM0%2B4g23Qiw0i33laNDmXZDDQGw%3D%3D"}],description:"In this final lesson I ask Evan a few questions about what developers should do to continue learning about Vue 3, the composition API, and render functions.",duration:Ge,author:P,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:IW},contentType:E,file:IX,folderId:nN,id:IY,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:IZ}],facebookImage:[{__meta__:{createdBy:c,createdDate:IW},contentType:E,file:IX,folderId:nN,id:IY,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:IZ}],socialSharingDescription:"I finished the Deep Dive with Evan You course on @VueMastery",belongsToCourse:bW}],lessonsCount:fm,order:M,parentId:M,slug:"vue3-deep-dive-with-evan-you",teachers:[{firstName:fw,lastName:fx,about:fy,image:[{__meta__:{createdBy:c,createdDate:fz},contentType:E,file:fA,folderId:X,id:fB,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:fC}]}],title:"Vue 3 Deep Dive with Evan You"},"1590162495205":{__meta__:{createdBy:c,createdDate:"2020-05-22T15:48:15.205Z",lastModifiedBy:c,lastModifiedDate:"2025-04-07T16:32:41.620Z",locale:T},category:[{name:af,color:ag},{name:nO,color:nP}],completable:G,courseDependencies:J,courseLabelsBar:J,description:I_,difficulty:bM,duration:"00:57:00",free:F,id:ct,image:[{__meta__:{createdBy:c,createdDate:"2021-01-13T03:33:43.241Z"},contentType:K,file:"intro_vue_3.png",folderId:1596475196457,id:1610508808401,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fintro_vue_3.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=KXK8a4cXfqaWWUCUiZHSoUXL0fjK0KmHJFU0pusDDWQgZBpxZFViAbIipKYncBqU%2BvChueK8eeXw%2B83ktgwwNDRrTsB5NoZpIPF5MaxcpRNYDutwlf%2BzT6LRNhmYLWTkSajBk4H%2BzUX9e08E%2BdxQuXZv22Fafz4bXCMmCVY4KpBfTs829twBnhZFNXzYtCEyDEjrc5e8qXVX60eqj%2BUcCbKjdNTOanQB5jno0t0Ig9DzSjQ9RXhenhx3S2eQ58VrXEU42IJYLBpe5HaVCxwWuLrUJVZTgVJePrFUEqf08f68roWZ1fQmm8MpNjtiP6alUTLvKdUM9cuNqpReTD55hQ%3D%3D"},{__meta__:{createdBy:c,createdDate:"2022-05-15T19:45:42.900Z"},contentType:K,file:"intro-to-vue-3.png",folderId:aR,id:1652643629978,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fintro-to-vue-3.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=p%2FTT%2FuJDgYm6g9wBOgqQTibnLpnYb%2BtwbH%2FWqS6O8J%2B1yJDOIrwtXSekqVxWUYC05ddQPOekr9%2FEaQa5b9mrkIDCPNaucpBu9x5x15xmbKL4AzhpeRn3Oce5LoWzjGYQvqwQHd4j4CC6P3xWBAog5ZjvcZKXurNgcTN3RSJ2itNHTTm6BksOXZnX0lCbGfID4Xux69lwLEQcx%2BEhk3KjgoQUpJwqOhckq5gjwgAwj9LO3t7LvBXBu93O%2Ft3NEOdDTpwldAlLgL%2BvYTQEmotEGFSK7rdUevvxch8I5AGDXRhYDmkHAJQzVhWPw6EOZBwInUuNze3P4I4UCraNE1Yahg%3D%3D"}],isComingSoon:F,isDraft:F,isPromoted:F,label:ad,latestAt:J,lessons:[{slug:"intro-to-vue3",status:H,date:"2020-08-02T00:00:00-07:00",title:"Intro to Vue 3",lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:"2022-11-08T23:02:33.716Z"},contentType:E,file:"Intro to Vue 3 704.jpg",folderId:nQ,id:1667948547269,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FIntro%20to%20Vue%203%20704.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=hCCUcy3JtZduEM0eYTiaUjZO%2Fb78AuEcxEDMcymEELqxbvAtVj4D9tzOXgYDy0LDgSQbDdRu6bnCzbdCekaAC0Nid8pQFNEf3inRqRCOYlwDznVlIVX9hrr2%2B%2BMWGLAcWDS%2FWZ9GiM2jWMzfljMiFsNuw%2FnfAmLpUJRrLOwO1lxakX9cBem%2FX4%2BO%2B5X2cQ%2Fs6fAdsNH6zOCjwh1TaU3a78EGRiNWD8O4Bh0K8TLcCnuZWLMZxRZ39Oe6EIJsA2cDesNsApnOd2ehAcbcRUC82TaKQh4Ihgoyp5%2B1Nj2UqZh0VJQ61VLxY%2B57rQ3KYsQubtf1gZfYCl9npP2uQvCKWA%3D%3D"}],description:"Brand new to Vue? Start learning the basics in this lesson that explores the essential syntax.",duration:"00:01:46",author:O,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:I$},contentType:E,file:Ja,folderId:nQ,id:Jb,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Jc}],facebookImage:[{__meta__:{createdBy:c,createdDate:I$},contentType:E,file:Ja,folderId:nQ,id:Jb,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Jc}],socialSharingDescription:"I'm learning about Vue 3 in a free course on @vuemastery",belongsToCourse:ct},{slug:"creating-the-vue-app-vue3",status:H,date:dO,title:"Creating the Vue App",lessonNumber:U,free:G,image:[{__meta__:{createdBy:c,createdDate:nR},contentType:E,file:nS,folderId:nT,id:nU,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:nV}],description:"Learn about creating a Vue app",duration:BH,author:O,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:nR},contentType:E,file:nS,folderId:nT,id:nU,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:nV}],facebookImage:[{__meta__:{createdBy:c,createdDate:nR},contentType:E,file:nS,folderId:nT,id:nU,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:nV}],socialSharingDescription:"I'm learning about creating a Vue app in a free course on @vuemastery",belongsToCourse:ct},{slug:"attribute-binding-vue3",status:H,date:dO,title:gA,lessonNumber:ab,free:G,image:[{__meta__:{createdBy:c,createdDate:nW},contentType:E,file:nX,folderId:nY,id:nZ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:n_}],description:"Learn about attribute binding",duration:kD,author:O,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:nW},contentType:E,file:nX,folderId:nY,id:nZ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:n_}],facebookImage:[{__meta__:{createdBy:c,createdDate:nW},contentType:E,file:nX,folderId:nY,id:nZ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:n_}],socialSharingDescription:"I'm learning about attribute binding in a free course on @vuemastery",belongsToCourse:ct},{slug:"conditional-rendering-vue3",status:H,date:dO,title:gF,lessonNumber:ac,free:G,image:[{__meta__:{createdBy:c,createdDate:n$},contentType:E,file:oa,folderId:ob,id:oc,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:od}],description:"Learn about conditional rendering",duration:"00:05:07",author:O,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:n$},contentType:E,file:oa,folderId:ob,id:oc,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:od}],facebookImage:[{__meta__:{createdBy:c,createdDate:n$},contentType:E,file:oa,folderId:ob,id:oc,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:od}],socialSharingDescription:"I'm learning about conditional rendering in a free course on @vuemastery",belongsToCourse:ct},{slug:"list-rendering-vue3",status:H,date:dO,title:gK,lessonNumber:W,free:G,image:[{__meta__:{createdBy:c,createdDate:oe},contentType:E,file:of,folderId:og,id:oh,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:oi}],description:"Learn about list rendering",duration:"00:03:27",author:O,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:oe},contentType:E,file:of,folderId:og,id:oh,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:oi}],facebookImage:[{__meta__:{createdBy:c,createdDate:oe},contentType:E,file:of,folderId:og,id:oh,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:oi}],socialSharingDescription:"I'm learning about list rendering in a free course on @vuemastery",belongsToCourse:ct},{slug:"event-handling-vue3",status:H,date:dO,title:fh,lessonNumber:S,free:G,image:[{__meta__:{createdBy:c,createdDate:oj},contentType:E,file:ok,folderId:ol,id:om,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:on}],description:"Learn about event handling",duration:"00:04:27",author:O,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:oj},contentType:E,file:ok,folderId:ol,id:om,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:on}],facebookImage:[{__meta__:{createdBy:c,createdDate:oj},contentType:E,file:ok,folderId:ol,id:om,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:on}],socialSharingDescription:"I'm learning about event handling in a free course on @vuemastery",belongsToCourse:ct},{slug:"class-and-style-binding-vue3",status:H,date:mb,title:gU,lessonNumber:ae,free:G,image:[{__meta__:{createdBy:c,createdDate:oo},contentType:E,file:op,folderId:oq,id:or,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:os}],description:"Learn about class and style binding",duration:"00:06:33",author:O,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:oo},contentType:E,file:op,folderId:oq,id:or,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:os}],facebookImage:[{__meta__:{createdBy:c,createdDate:oo},contentType:E,file:op,folderId:oq,id:or,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:os}],socialSharingDescription:"I'm learning about class and style binding in a free course on @vuemastery",belongsToCourse:ct},{slug:"computed-properties-vue3",status:H,date:dO,title:eZ,lessonNumber:ah,free:G,image:[{__meta__:{createdBy:c,createdDate:ot},contentType:E,file:ou,folderId:ov,id:ow,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ox}],description:"Learn about computed properties",duration:"00:06:17",author:O,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:ot},contentType:E,file:ou,folderId:ov,id:ow,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ox}],facebookImage:[{__meta__:{createdBy:c,createdDate:ot},contentType:E,file:ou,folderId:ov,id:ow,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ox}],socialSharingDescription:"I'm learning about computed properties in a free course on @vuemastery",belongsToCourse:ct},{slug:"components-and-props-vue3",status:H,date:dO,title:Jd,lessonNumber:an,free:G,image:[{__meta__:{createdBy:c,createdDate:oy},contentType:E,file:oz,folderId:oA,id:oB,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:oC}],description:"Learn about components and props",duration:Je,author:O,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:oy},contentType:E,file:oz,folderId:oA,id:oB,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:oC}],facebookImage:[{__meta__:{createdBy:c,createdDate:oy},contentType:E,file:oz,folderId:oA,id:oB,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:oC}],socialSharingDescription:"I'm learning about components and props in a free course on @vuemastery",belongsToCourse:ct},{slug:"communicating-events-vue3",status:H,date:dO,title:hg,lessonNumber:aS,free:G,image:[{__meta__:{createdBy:c,createdDate:oD},contentType:E,file:oE,folderId:oF,id:oG,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:oH}],description:"Learn about communicating events",duration:"00:03:53",author:O,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:oD},contentType:E,file:oE,folderId:oF,id:oG,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:oH}],facebookImage:[{__meta__:{createdBy:c,createdDate:oD},contentType:E,file:oE,folderId:oF,id:oG,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:oH}],socialSharingDescription:"I'm learning about communicating events in a free course on @vuemastery",belongsToCourse:ct},{slug:"forms-and-v-model-vue3",status:H,date:dO,title:hl,lessonNumber:bN,free:G,image:[{__meta__:{createdBy:c,createdDate:oI},contentType:E,file:oJ,folderId:oK,id:oL,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:oM}],description:"Learn about forms and v-model",duration:EJ,author:O,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:oI},contentType:E,file:oJ,folderId:oK,id:oL,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:oM}],facebookImage:[{__meta__:{createdBy:c,createdDate:oI},contentType:E,file:oJ,folderId:oK,id:oL,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:oM}],socialSharingDescription:"I'm learning about forms and v-model in a free course on @vuemastery",belongsToCourse:ct}],lessonsCount:bN,order:M,parentId:M,slug:"intro-to-vue-3",teachers:[{firstName:cs,lastName:cx,about:cy,image:[{__meta__:{createdBy:c,createdDate:cz},contentType:E,file:cA,folderId:X,id:cB,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cC}]}],title:"Intro to Vue 3 (Options API)"},"1591114915649":{__meta__:{createdBy:c,createdDate:"2020-06-02T16:21:55.649Z",lastModifiedBy:c,lastModifiedDate:"2024-09-23T17:46:30.435Z",locale:T},category:[{name:af,color:ag}],completable:G,courseDependencies:J,courseLabelsBar:J,description:"Bring yourself up to speed on new features and breaking changes when migrating from Vue 2 to Vue 3",difficulty:aQ,duration:"00:51:02",free:F,id:d_,image:[{__meta__:{createdBy:c,createdDate:"2020-06-01T23:40:44.922Z"},contentType:K,file:"From Vue2 to Vue3.png",folderId:1591054586862,id:1591054834926,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FFrom%20Vue2%20to%20Vue3.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=r0eSaSw2rrX8nwlZNS%2BNizH2wHaZiDHDfrblUd03RtlH4HuajkNgRBDuLwgFBiadu%2BWdEdTV3ybgje9GU25%2FyvLPxQEguYhD75%2FaOH25MgM9TiQ%2FIEsPSG2Xypj0dZPDXSUB47%2FEIXdxLjaD8094JnMrSZPAxbPGrnLeTacz1NdmAb4YacWlvUliZfBG%2By5%2BNiCc596vEygmf7Cm0bl5GFCnk3ghk48pTdAvBKU0P5ABmTqslhvCrJnuxcOgvJdOj%2FkMaf%2BfWe6YG4OQQZXWhTEM5fphtpfBoFSdvHsNEhR%2F%2BZ0HJEvkuzJ4mgJBbyCC%2BEdxJiDKEkEd2RDwEX5q5g%3D%3D"},{__meta__:{createdBy:c,createdDate:"2022-05-15T19:45:41.701Z"},contentType:K,file:"from-vue2-to-vue3.png",folderId:aR,id:1652643585010,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Ffrom-vue2-to-vue3.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=P%2BMmqfcvLgxCU1v16PCo%2BDq4T1NaCVTOIeNLNjiSBYBYCThLXJdC2oTdW4MuFO8cxsJsIyvB7CkJtlTeGw9Z2rG2n06FDZ%2FZ7BU4DvY7qhUFOzkfKs7oPAIZ6pICc4STyIrbPMCnU5bHQYZRI3k%2B02z93oSsFkjJAsSLkiRdg%2FJ6xuW6RMbm9BYhyuSXDKdSHLx32nTkYD0WW0eaCotFNlkwvAoBltLO7X%2FoS7U87%2BWGH8GE30L3zDDmHwf6bF%2BLVrllMv%2B58NdI%2BIFF9QQ6538NsV%2FnnZXf2aD0ZwztLK2XHcRC1KdkEfmR2M7SKFXsIUdjSWQf9Fvi0QqKuho%2BWQ%3D%3D"}],isComingSoon:F,isDraft:F,isPromoted:F,label:ad,latestAt:J,lessons:[{slug:"from-vue-2-to-vue-3",status:H,date:"2020-06-16T00:00:00-04:00",title:Jf,lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:oN},contentType:E,file:oO,folderId:oP,id:oQ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:oR}],description:"Explore the topics this course covers and how it will help you make the best use of Vue 3's new capabilities and changes.",duration:"00:02:19",author:bu,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:oN},contentType:E,file:oO,folderId:oP,id:oQ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:oR}],facebookImage:[{__meta__:{createdBy:c,createdDate:oN},contentType:E,file:oO,folderId:oP,id:oQ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:oR}],socialSharingDescription:"I'm getting ready to start From Vue 2 to Vue 3 with @MarinaMosti in @VueMastery",belongsToCourse:d_},{slug:"the-new-vmodel",status:H,date:"2020-06-16T00:00:00+07:00",title:"The new v-model",lessonNumber:U,free:G,image:[{__meta__:{createdBy:c,createdDate:oS},contentType:E,file:oT,folderId:oU,id:oV,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:oW}],description:"Learn how to use Vue 3's v-model, and the new defaults",duration:HW,author:bu,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:oS},contentType:E,file:oT,folderId:oU,id:oV,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:oW}],facebookImage:[{__meta__:{createdBy:c,createdDate:oS},contentType:E,file:oT,folderId:oU,id:oV,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:oW}],socialSharingDescription:"I learned how to use #vue 3's v-model bindings and the new defaults from @MarinaMosti on @VueMastery",belongsToCourse:d_},{slug:"multi-v-model-bindings",status:H,date:"2020-06-15T00:00:00-07:00",title:"Multi v-model bindings",lessonNumber:ab,free:F,image:[{__meta__:{createdBy:c,createdDate:oX},contentType:E,file:oY,folderId:oZ,id:o_,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:o$}],description:"In this lesson you will learn how to create multiple v-model bindings into a single component using Vue 3",duration:"00:09:47",author:bu,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:oX},contentType:E,file:oY,folderId:oZ,id:o_,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:o$}],facebookImage:[{__meta__:{createdBy:c,createdDate:oX},contentType:E,file:oY,folderId:oZ,id:o_,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:o$}],socialSharingDescription:"I just learned how to create #vue 3 powered multi v-model bindings into a single component instance with @MarinaMosti on @VueMastery",belongsToCourse:d_},{slug:"v-model-modifiers",status:H,date:"2020-07-07T00:00:00+07:00",title:"v-model modifiers",lessonNumber:ac,free:F,image:[{__meta__:{createdBy:c,createdDate:pa},contentType:E,file:pb,folderId:pc,id:pd,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:pe}],description:"In this lesson you will learn how to create your own custom Vue 3 v-model modifiers",duration:"00:10:40",author:bu,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:pa},contentType:E,file:pb,folderId:pc,id:pd,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:pe}],facebookImage:[{__meta__:{createdBy:c,createdDate:pa},contentType:E,file:pb,folderId:pc,id:pd,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:pe}],socialSharingDescription:"I just learned how to create custom #vue 3 v-model modifiers with @MarinaMosti on @VueMastery",belongsToCourse:d_},{slug:"the-new-attrs",status:H,date:"2020-07-21T00:00:00+07:00",title:"The New $attrs",lessonNumber:W,free:F,image:[{__meta__:{createdBy:c,createdDate:pf},contentType:E,file:pg,folderId:ph,id:pi,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:pj}],description:"Learn the differences between $attrs in Vue 2 and Vue 3",duration:"00:11:49",author:bu,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:pf},contentType:E,file:pg,folderId:ph,id:pi,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:pj}],facebookImage:[{__meta__:{createdBy:c,createdDate:pf},contentType:E,file:pg,folderId:ph,id:pi,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:pj}],socialSharingDescription:"I just finished learning about the differences between $attrs in #vue 2.x and 3.x with @MarinaMosti on @VueMastery",belongsToCourse:d_},{slug:"multi-root-components",status:H,date:"2020-08-11T00:00:00+07:00",title:"Multi root components",lessonNumber:S,free:F,image:[{__meta__:{createdBy:c,createdDate:pk},contentType:E,file:pl,folderId:pm,id:pn,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:po}],description:"Learn how to transform single root components into multi-root components, and the new emits property in Vue 3.",duration:"00:09:08",author:bu,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:pk},contentType:E,file:pl,folderId:pm,id:pn,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:po}],facebookImage:[{__meta__:{createdBy:c,createdDate:pk},contentType:E,file:pl,folderId:pm,id:pn,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:po}],socialSharingDescription:"I just finished learning about multi-root components in #VueJS 3 with @MarinaMosti on @VueMastery",belongsToCourse:d_}],lessonsCount:S,order:M,parentId:M,slug:"from-vue2-to-vue3",teachers:[{firstName:fn,lastName:fo,about:fp,image:[{__meta__:{createdBy:c,createdDate:fq},contentType:E,file:fr,folderId:X,id:fs,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ft}]}],title:Jf},"1601408947893":{__meta__:{createdBy:c,createdDate:"2020-09-29T19:49:07.893Z",lastModifiedBy:c,lastModifiedDate:"2023-06-14T19:17:04.989Z",locale:T},category:[{name:af,color:ag},{name:nO,color:nP}],completable:G,courseDependencies:J,courseLabelsBar:J,description:Jg,difficulty:bM,duration:"01:08:19",free:F,id:dv,image:[{__meta__:{createdBy:c,createdDate:Jh},contentType:K,file:Ji,folderId:fD,id:Jj,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Jk},{__meta__:{createdBy:c,createdDate:"2023-06-14T19:16:53.153Z"},contentType:I,file:"Real World Vue 3 - Options API.webp",folderId:fD,id:1686770205661,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FReal%20World%20Vue%203%20-%20Options%20API.webp?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=dq%2Fsbu6y0mRMEy9wHzBxUC7lImyQENhTx%2BhuQ93DH7xjVNIyque%2Bd9s0sVfgGMuPX%2FZ%2Br2o8N1EsOnIdEngJKtBAFC%2ByJlX8jWuochrUIbBau3eR5Qdz1NXtW5RiI%2BPJGU028Uww4fNeC4IxmftqdSDzontuapMlfEyybI5bT7HZPMCNFO74riMLtoEudtNgVr2xg6CVEgRiDcb9R%2FWJs%2FazQncxhqAn%2FFCugPjps88REs8GSbJ6C0I4a9pSMdotq7ixyVdkggzCv5SnOiSdOl27%2B4BaCg8rNGUDxi6nep1qx8ZDQ3iS4XbBCPsAiaLnO5h1YvxIzy1N5Dq0SnZ1SA%3D%3D"}],isComingSoon:F,isDraft:F,isPromoted:F,label:ad,lessons:[{slug:"rwv3-orientation",status:H,date:"2020-09-28T00:00:00-07:00",title:Jl,lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:Jm},contentType:E,file:Jn,folderId:eI,id:Jo,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Jp}],description:"Starting building a production-level app using Vue 3.",duration:"00:00:46",author:O,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:fE},contentType:E,file:fF,folderId:eI,id:fG,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:fH}],facebookImage:[{__meta__:{createdBy:c,createdDate:fE},contentType:E,file:fF,folderId:eI,id:fG,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:fH}],socialSharingDescription:"I’m learning how to build a production-level app using #Vue 3 on @vuemastery",belongsToCourse:dv},{slug:"vue-cli-creating-the-project",status:H,date:"2020-09-29T00:00:00-07:00",title:"Vue CLI - Creating the Project",lessonNumber:U,free:G,image:[{__meta__:{createdBy:c,createdDate:pp},contentType:E,file:pq,folderId:pr,id:ps,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:pt}],description:"In this tutorial, we’ll create our project using the Vue CLI.",duration:Jq,author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:pp},contentType:E,file:pq,folderId:pr,id:ps,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:pt}],facebookImage:[{__meta__:{createdBy:c,createdDate:pp},contentType:E,file:pq,folderId:pr,id:ps,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:pt}],socialSharingDescription:"I’m creating a Real World Vue 3 app with the help of @vuemastery",belongsToCourse:dv},{slug:"single-file-components",status:H,date:"2020-10-19T00:00:00+07:00",title:Jr,lessonNumber:ab,free:F,image:[{__meta__:{createdBy:c,createdDate:pu},contentType:E,file:pv,folderId:pw,id:px,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:py}],description:"What are .vue files and how do we use them to build out a Vue app?",duration:"00:12:18",author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:pu},contentType:E,file:pv,folderId:pw,id:px,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:py}],facebookImage:[{__meta__:{createdBy:c,createdDate:pu},contentType:E,file:pv,folderId:pw,id:px,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:py}],socialSharingDescription:Js,belongsToCourse:dv},{slug:"vue-router-essentials",status:H,date:"2020-10-25T00:00:00+07:00",title:Jt,lessonNumber:ac,free:F,image:[{__meta__:{createdBy:c,createdDate:pz},contentType:E,file:pA,folderId:pB,id:pC,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:pD}],description:Ju,duration:"00:08:46",author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:pz},contentType:E,file:pA,folderId:pB,id:pC,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:pD}],facebookImage:[{__meta__:{createdBy:c,createdDate:pz},contentType:E,file:pA,folderId:pB,id:pC,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:pD}],socialSharingDescription:"I'm learning how to use Vue Router for app navigation on @vuemastery",belongsToCourse:dv},{slug:"api-calls-with-axios",status:H,date:"2020-11-09T00:00:00-08:00",title:hX,lessonNumber:W,free:F,image:[{__meta__:{createdBy:c,createdDate:fI},contentType:E,file:fJ,folderId:fK,id:fL,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:fM}],description:Jv,duration:"00:09:26",author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:fI},contentType:E,file:fJ,folderId:fK,id:fL,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:fM}],facebookImage:[{__meta__:{createdBy:c,createdDate:fI},contentType:E,file:fJ,folderId:fK,id:fL,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:fM}],socialSharingDescription:"I'm learning about API calls with Axios on @vuemastery",belongsToCourse:dv},{slug:"dynamic-routing",status:H,date:"2020-12-07T00:00:00-08:00",title:Jw,lessonNumber:S,free:F,image:[{__meta__:{createdBy:c,createdDate:fN},contentType:E,file:fO,folderId:fP,id:fQ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:fR}],description:Jx,duration:"00:12:03",author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:fN},contentType:E,file:fO,folderId:fP,id:fQ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:fR}],facebookImage:[{__meta__:{createdBy:c,createdDate:fN},contentType:E,file:fO,folderId:fP,id:fQ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:fR}],socialSharingDescription:Jy,belongsToCourse:dv},{slug:"deploying-with-render",status:H,date:"2020-12-13T00:00:00-08:00",title:Jz,lessonNumber:ae,free:F,image:[{__meta__:{createdBy:c,createdDate:fS},contentType:E,file:fT,folderId:fU,id:fV,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:fW}],description:JA,duration:"00:10:59",author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:fS},contentType:E,file:fT,folderId:fU,id:fV,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:fW}],facebookImage:[{__meta__:{createdBy:c,createdDate:fS},contentType:E,file:fT,folderId:fU,id:fV,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:fW}],socialSharingDescription:JB,belongsToCourse:dv},{slug:"scaling-the-app",status:H,date:"2020-12-29T00:00:00+07:00",title:JC,lessonNumber:ah,free:F,image:[{__meta__:{createdBy:c,createdDate:fX},contentType:E,file:fY,folderId:fZ,id:f_,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:f$}],description:JD,duration:"00:04:23",author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:fX},contentType:E,file:fY,folderId:fZ,id:f_,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:f$}],facebookImage:[{__meta__:{createdBy:c,createdDate:fX},contentType:E,file:fY,folderId:fZ,id:f_,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:f$}],socialSharingDescription:JE,belongsToCourse:dv}],lessonsCount:ah,order:M,parentId:M,slug:"real-world-vue3",teachers:[{firstName:cs,lastName:cx,about:cy,image:[{__meta__:{createdBy:c,createdDate:cz},contentType:E,file:cA,folderId:X,id:cB,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cC}]}],title:"Real World Vue 3 (Options API)"},"1602188119249":{__meta__:{createdBy:c,createdDate:"2020-10-08T20:15:19.249Z",lastModifiedBy:c,lastModifiedDate:"2022-09-01T16:50:07.112Z",locale:T},category:[{name:af,color:ag}],completable:G,courseDependencies:J,courseLabelsBar:J,description:"With Vue 3's enhanced TypeScript support, using it just got easier. Learn how to strengthen your Vue apps with this popular technology.",difficulty:cK,duration:"00:56:10",free:F,id:cQ,image:[{__meta__:{createdBy:c,createdDate:"2020-10-08T19:12:41.354Z"},contentType:K,file:"Vue3 Typescript.png",folderId:1602184333045,id:1602184348305,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FVue3%20Typescript.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=dALi446BLFcFe9fKX09wTlqyqkHndHN4wFuWYIaVa1k0Vmggq9h%2FqaQpSbt9qhBeVohH7NTrA7AHuCjE1mlj1P7CFruptqgk4e56dCveockg9C4Jv4Zzw0hBaEsdbnlQDCxAbeIzPdf1V7zJcS%2BzFFQlrWF7sdG5u6sMK%2FZt%2F8jeLn3zSofvayaq1bLjOOlXV5V49KWUncCIsHMLpffT%2BC0eZCm2xairM4Xqd2KI4Ur%2B%2FB42lA%2FT3V8GC54kFbOCfUtShFT9cG4GjA2W2SDvfPlS4TB0CwvOxncMLuEgWArhleClK%2B3I2bjVMo1n7M8%2BFif4tRXr2RpL4bSWsKp3BQ%3D%3D"},{__meta__:{createdBy:c,createdDate:"2022-05-15T19:45:48.311Z"},contentType:K,file:"vue3-typescript.png",folderId:aR,id:1652643863693,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fvue3-typescript.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=PvYGGPm7o3TT6Q0HBJixmqdRk5laCjTNwBWqEHWFYEOUPNavjIzReqStVRwfi8T7DrMMLZ0DaLnX4%2F4pE0tU46%2FaI7wW9K3n3TVqB9ovC4aeZ4A0URuiYCC7Led5mXbqY%2B80Jtqewc4e1%2BQIRe%2Fs3zck7N86fxKXcrXDw50mmL78WSCkAcim5NAPpb%2BGmeNTdn9D8Z40MxqkDiXDRP%2BpOpZE36clEEi87nF%2BRq6C4lhew%2Ffjv2NAeh%2BLE4fBLSRtDC6FoLuc1l2CZWnjuFtpvda%2FNZIL9x49IpmQcusBtw3DVBmOpDp0u283ZPpm5xVlKRA1XpeFwgwlS5e%2BRFjGUA%3D%3D"}],isComingSoon:F,isDraft:F,isPromoted:G,label:ad,lessons:[{slug:"why-vue-and-typescript",status:H,date:"2020-10-12T00:00:00+01:00",title:"Why Vue & TypeScript",lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:"2022-11-08T23:04:13.088Z"},contentType:E,file:"Why Vue & Typescript 704.jpg",folderId:pE,id:1667948646350,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FWhy%20Vue%20%26%20Typescript%20704.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=THhX6VLBOqyN1sqwrFVJCdsjBwaLcw7uQQFQkaE%2BFNvIeZ%2FFn8yg1GVB3CQjTsUchPXZBb%2F5COqHTRWeGS8vDv%2FFc0rtKTXWLhLfIUk%2FhXgexq%2FcRDenTXE4xUgwkkAw64Qo%2BMLSWcyVtJCIQwYcVPGeIidlSJ2LRRPnWha6XCPUgno%2F8gfHsE7chcTowGyxweClxXNB8H8rKS%2B3DJAAhKTuW1u3py2pnZ92T%2Fw0mCBMkw3A1zudQ74H5KFAfgTqJrEgd6Cl%2FD1bbZdisiD3hZJtTqFW9KOUX7gyP6j%2F%2BkpfkIBldILVByrwx6XzsHeJ6V8bz7GKdWxgx2Hvk20dCA%3D%3D"}],description:"Considering adding TypeScript to your Vue project? Explore the considerations to take in this lesson.",duration:"00:09:29",author:N,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:JF},contentType:E,file:JG,folderId:pE,id:JH,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:JI}],facebookImage:[{__meta__:{createdBy:c,createdDate:JF},contentType:E,file:JG,folderId:pE,id:JH,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:JI}],socialSharingDescription:"I just learned about when TypeScript is a valuable addition to #vuejs projects with @bencodezen on @VueMastery",belongsToCourse:cQ},{slug:"setting-up-vue3-and-typescript",status:H,date:"2020-11-03T00:00:00+01:00",title:"Setting Up Vue 3 & TypeScript",lessonNumber:U,free:G,image:[{__meta__:{createdBy:c,createdDate:pF},contentType:E,file:pG,folderId:pH,id:pI,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:pJ}],description:"Learn how to setup TypeScript on new and existing Vue CLI applications.",duration:"00:06:07",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:pF},contentType:E,file:pG,folderId:pH,id:pI,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:pJ}],facebookImage:[{__meta__:{createdBy:c,createdDate:pF},contentType:E,file:pG,folderId:pH,id:pI,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:pJ}],socialSharingDescription:"I just learned how to setup Vue 3 and TypeScript with Vue CLI on @VueMastery",belongsToCourse:cQ},{slug:"creating-components-with-typescript",status:H,date:"2020-11-01T00:00:00-07:00",title:"Creating Components with TypeScript",lessonNumber:ab,free:F,image:[{__meta__:{createdBy:c,createdDate:pK},contentType:E,file:pL,folderId:pM,id:pN,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:pO}],description:"Learn how to add TypeScript to Single File Components.",duration:pP,author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:pK},contentType:E,file:pL,folderId:pM,id:pN,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:pO}],facebookImage:[{__meta__:{createdBy:c,createdDate:pK},contentType:E,file:pL,folderId:pM,id:pN,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:pO}],socialSharingDescription:"I just learned about how to add TypeScript to Single File Components on @VueMastery!",belongsToCourse:cQ},{slug:"type-fundamentals",status:H,date:"2020-12-06T00:00:00-08:00",title:"Type Fundamentals",lessonNumber:ac,free:F,image:[{__meta__:{createdBy:c,createdDate:pQ},contentType:E,file:pR,folderId:pS,id:pT,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:pU}],description:"The key first step with using TypeScript with Vue is learning the fundamentals of what types are as well as how to assign types to variables.",duration:"00:07:52",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:pQ},contentType:E,file:pR,folderId:pS,id:pT,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:pU}],facebookImage:[{__meta__:{createdBy:c,createdDate:pQ},contentType:E,file:pR,folderId:pS,id:pT,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:pU}],socialSharingDescription:"I learned the fundamentals of types with @vuemastery!",belongsToCourse:cQ},{slug:"defining-custom-types",status:H,date:"2020-12-20T00:00:00-05:00",title:"Defining Custom Types",lessonNumber:W,free:F,image:[{__meta__:{createdBy:c,createdDate:pV},contentType:E,file:pW,folderId:pX,id:pY,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:pZ}],description:"When you need to define specific data shapes to your app's needs, custom types are the answer.",duration:JJ,author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:pV},contentType:E,file:pW,folderId:pX,id:pY,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:pZ}],facebookImage:[{__meta__:{createdBy:c,createdDate:pV},contentType:E,file:pW,folderId:pX,id:pY,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:pZ}],socialSharingDescription:"I learned how to define custom types in TypeScript with @VueMastery!",belongsToCourse:cQ},{slug:"data-with-custom-types",status:H,date:"2021-01-18T00:00:00-08:00",title:"Data with Custom Types",lessonNumber:S,free:F,image:[{__meta__:{createdBy:c,createdDate:p_},contentType:E,file:p$,folderId:qa,id:qb,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:qc}],description:"Learn how to define custom types on the data option in Vue 3!",duration:"00:06:31",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:p_},contentType:E,file:p$,folderId:qa,id:qb,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:qc}],facebookImage:[{__meta__:{createdBy:c,createdDate:p_},contentType:E,file:p$,folderId:qa,id:qb,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:qc}],socialSharingDescription:"I learned how to define custom types on the data option in Vue 3 with @VueMastery!",belongsToCourse:cQ},{slug:"props-with-types",status:H,date:"2021-02-07T00:00:00-05:00",title:"Props with Types",lessonNumber:ae,free:F,image:[{__meta__:{createdBy:c,createdDate:qd},contentType:E,file:qe,folderId:qf,id:qg,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:qh}],description:"Learn how to assign custom types to props to account for scenarios outside of standard prop types.",duration:JK,author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:qd},contentType:E,file:qe,folderId:qf,id:qg,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:qh}],facebookImage:[{__meta__:{createdBy:c,createdDate:qd},contentType:E,file:qe,folderId:qf,id:qg,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:qh}],socialSharingDescription:"I learned how to apply custom types to props in Vue 3 and TypeScript with @VueMastery!",belongsToCourse:cQ},{slug:"computed-and-methods-with-custom-types",status:H,date:"2021-02-13T00:00:00+01:00",title:"Computed & Methods with Custom Types",lessonNumber:ah,free:F,image:[{__meta__:{createdBy:c,createdDate:qi},contentType:E,file:qj,folderId:qk,id:ql,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:qm}],description:"In this lesson, you'll learn how to add custom types to computed properties and methods with TypeScript.",duration:"00:03:46",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:qi},contentType:E,file:qj,folderId:qk,id:ql,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:qm}],facebookImage:[{__meta__:{createdBy:c,createdDate:qi},contentType:E,file:qj,folderId:qk,id:ql,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:qm}],socialSharingDescription:"I learned how to add custom types to computed properties and methods with @VueMastery!",belongsToCourse:cQ},{slug:"next-steps",status:H,date:"2021-02-28T00:00:00+01:00",title:ep,lessonNumber:an,free:F,image:[{__meta__:{createdBy:c,createdDate:qn},contentType:E,file:qo,folderId:qp,id:qq,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:qr}],description:"Now that we've learned the fundamentals of using TypeScript with Vue 3, we will talk about what developers can look forward to in the next steps of their journey.",duration:"00:01:44",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:qn},contentType:E,file:qo,folderId:qp,id:qq,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:qr}],facebookImage:[{__meta__:{createdBy:c,createdDate:qn},contentType:E,file:qo,folderId:qp,id:qq,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:qr}],socialSharingDescription:"I'm ready for the next steps of my journey with Vue 3 and TypeScript after taking the course with @VueMastery!",belongsToCourse:cQ},{slug:"bonus-composition-api-with-typescript",status:H,date:"2021-03-15T00:00:00-07:00",title:"Bonus: Composition API with TypeScript",lessonNumber:aS,free:F,image:[{__meta__:{createdBy:c,createdDate:qs},contentType:E,file:qt,folderId:qu,id:qv,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:qw}],description:"In this course, we've taken a look at how TypeScript works in Options API; but in this bonus lesson, we'll see how everything we learned transfers to the Composition API as well!",duration:JL,author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:qs},contentType:E,file:qt,folderId:qu,id:qv,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:qw}],facebookImage:[{__meta__:{createdBy:c,createdDate:qs},contentType:E,file:qt,folderId:qu,id:qv,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:qw}],socialSharingDescription:"I learned how the fundamentals of TypeScript apply across Options API and Composition API with @VueMastery",belongsToCourse:cQ}],lessonsCount:aS,order:M,parentId:M,slug:"vue3-typescript",teachers:[{firstName:da,lastName:db,about:dc,image:[{__meta__:{createdBy:c,createdDate:dd},contentType:E,file:de,folderId:X,id:df,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:dg}]}],title:"Intro to Vue 3 + TypeScript"},"1603733909103":{__meta__:{createdBy:c,createdDate:"2020-10-26T17:38:29.104Z",lastModifiedBy:c,lastModifiedDate:"2023-08-01T19:18:55.513Z",locale:T},category:[{name:af,color:ag},{name:nO,color:nP}],completable:G,courseDependencies:"Node v16 required",courseLabelsBar:J,description:JM,difficulty:bM,duration:"01:21:29",free:F,id:cT,image:[{__meta__:{createdBy:c,createdDate:JN},contentType:K,file:JO,folderId:JP,id:JQ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:JR},{__meta__:{createdBy:c,createdDate:JS},contentType:K,file:JT,folderId:aR,id:JU,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:JV}],isComingSoon:F,isDraft:F,isPromoted:F,label:ad,lessons:[{slug:"vue-router-introduction",status:H,date:JW,title:cg,lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:qx},contentType:E,file:qy,folderId:qz,id:qA,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:qB}],description:"Learn what we'll be learning and building together in the course",duration:"00:01:21",author:P,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:qx},contentType:E,file:qy,folderId:qz,id:qA,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:qB}],facebookImage:[{__meta__:{createdBy:c,createdDate:qx},contentType:E,file:qy,folderId:qz,id:qA,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:qB}],socialSharingDescription:"I'm about to take a tour of Vue Router using Vue 3 thanks to @VueMastery",belongsToCourse:cT},{slug:"receiving-url-parameters",status:H,date:JW,title:JX,lessonNumber:U,free:G,image:[{__meta__:{createdBy:c,createdDate:qC},contentType:E,file:qD,folderId:qE,id:qF,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:qG}],description:JY,duration:"00:04:30",author:P,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:qC},contentType:E,file:qD,folderId:qE,id:qF,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:qG}],facebookImage:[{__meta__:{createdBy:c,createdDate:qC},contentType:E,file:qD,folderId:qE,id:qF,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:qG}],socialSharingDescription:JZ,belongsToCourse:cT},{slug:"building-pagination",status:H,date:"2020-11-10T00:00:00-06:00",title:J_,lessonNumber:ab,free:F,image:[{__meta__:{createdBy:c,createdDate:qH},contentType:E,file:qI,folderId:qJ,id:qK,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:qL}],description:J$,duration:"00:09:53",author:P,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:qH},contentType:E,file:qI,folderId:qJ,id:qK,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:qL}],facebookImage:[{__meta__:{createdBy:c,createdDate:qH},contentType:E,file:qI,folderId:qJ,id:qK,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:qL}],socialSharingDescription:Ka,belongsToCourse:cT},{slug:"nested-routes",status:H,date:"2020-12-01T00:00:00-08:00",title:Kb,lessonNumber:ac,free:F,image:[{__meta__:{createdBy:c,createdDate:qM},contentType:E,file:qN,folderId:qO,id:qP,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:qQ}],description:Kc,duration:"00:10:07",author:P,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:qM},contentType:E,file:qN,folderId:qO,id:qP,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:qQ}],facebookImage:[{__meta__:{createdBy:c,createdDate:qM},contentType:E,file:qN,folderId:qO,id:qP,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:qQ}],socialSharingDescription:Kd,belongsToCourse:cT},{slug:"redirect-and-alias",status:H,date:"2020-12-15T00:00:00+01:00",title:Ke,lessonNumber:W,free:F,image:[{__meta__:{createdBy:c,createdDate:qR},contentType:E,file:qS,folderId:qT,id:qU,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:qV}],description:"URLs can change in production. Learn how to redirect or alias new routes.",duration:"00:05:53",author:P,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:qR},contentType:E,file:qS,folderId:qT,id:qU,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:qV}],facebookImage:[{__meta__:{createdBy:c,createdDate:qR},contentType:E,file:qS,folderId:qT,id:qU,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:qV}],socialSharingDescription:"I learned how to redirect and alias with Vue Router at @VueMastery",belongsToCourse:cT},{slug:"programmatic-navigation",status:H,date:"2021-01-12T00:00:00-08:00",title:Kf,lessonNumber:S,free:F,image:[{__meta__:{createdBy:c,createdDate:qW},contentType:E,file:qX,folderId:qY,id:qZ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:q_}],description:Kg,duration:"00:05:24",author:P,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:qW},contentType:E,file:qX,folderId:qY,id:qZ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:q_}],facebookImage:[{__meta__:{createdBy:c,createdDate:qW},contentType:E,file:qX,folderId:qY,id:qZ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:q_}],socialSharingDescription:Kh,belongsToCourse:cT},{slug:"error-handling-and-404s",status:H,date:"2021-01-26T00:00:00-05:00",title:Ki,lessonNumber:ae,free:F,image:[{__meta__:{createdBy:c,createdDate:q$},contentType:E,file:ra,folderId:rb,id:rc,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:rd}],description:Kj,duration:BV,author:P,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:q$},contentType:E,file:ra,folderId:rb,id:rc,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:rd}],facebookImage:[{__meta__:{createdBy:c,createdDate:q$},contentType:E,file:ra,folderId:rb,id:rc,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:rd}],socialSharingDescription:"I'm learning about error handling and 404s at @VueMastery",belongsToCourse:cT},{slug:"flash-messages",status:H,date:"2021-02-23T00:00:00-08:00",title:Kk,lessonNumber:ah,free:F,image:[{__meta__:{createdBy:c,createdDate:re},contentType:E,file:rf,folderId:rg,id:rh,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ri}],description:Kl,duration:Km,author:P,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:re},contentType:E,file:rf,folderId:rg,id:rh,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ri}],facebookImage:[{__meta__:{createdBy:c,createdDate:re},contentType:E,file:rf,folderId:rg,id:rh,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ri}],socialSharingDescription:Kn,belongsToCourse:cT},{slug:"in-component-route-guards",status:H,date:"2021-03-23T00:00:00-07:00",title:CX,lessonNumber:an,free:F,image:[{__meta__:{createdBy:c,createdDate:rj},contentType:E,file:rk,folderId:rl,id:rm,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:rn}],description:"Use In-Component Route Guards to implement a progress bar in order to create a better user experience.",duration:"00:11:02",author:P,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:rj},contentType:E,file:rk,folderId:rl,id:rm,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:rn}],facebookImage:[{__meta__:{createdBy:c,createdDate:rj},contentType:E,file:rk,folderId:rl,id:rm,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:rn}],socialSharingDescription:"I learned how to add a progress bar to my application with Vue Router In-Component Route Guards thanks to the @VueMastery Touring Vue Router course",belongsToCourse:cT},{slug:"global-and-per-route-guards",status:H,date:"2021-04-26T00:00:00-07:00",title:Da,lessonNumber:aS,free:F,image:[{__meta__:{createdBy:c,createdDate:ro},contentType:E,file:rp,folderId:rq,id:rr,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:rs}],description:"Learn how to use Global and Per-Route Guards to run code during Vue Router navigation.",duration:rt,author:P,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:ro},contentType:E,file:rp,folderId:rq,id:rr,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:rs}],facebookImage:[{__meta__:{createdBy:c,createdDate:ro},contentType:E,file:rp,folderId:rq,id:rr,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:rs}],socialSharingDescription:"I learned how to use Global and Per-Route Guards to run code during Vue Router navigation at @VueMastery",belongsToCourse:cT},{slug:"wrapping-up",status:H,date:"2021-06-08T00:00:00-07:00",title:Ko,lessonNumber:bN,free:F,image:[{__meta__:{createdBy:c,createdDate:ru},contentType:E,file:rv,folderId:rw,id:rx,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ry}],description:"Learn 3 key features of Vue Router in this final lesson of the course.",duration:Kp,author:P,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:ru},contentType:E,file:rv,folderId:rw,id:rx,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ry}],facebookImage:[{__meta__:{createdBy:c,createdDate:ru},contentType:E,file:rv,folderId:rw,id:rx,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ry}],socialSharingDescription:"Learn 3 crucial features of Vue Router and when to use them in this final lesson from our Touring Vue Router course.",belongsToCourse:cT}],lessonsCount:bN,order:M,parentId:M,slug:"touring-vue-router",teachers:[{firstName:dw,lastName:dx,about:dy,image:[{__meta__:{createdBy:c,createdDate:dz},contentType:E,file:dA,folderId:X,id:dB,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:dC}]}],title:"Touring Vue Router (Options API)"},"1613431598005":{__meta__:{createdBy:c,createdDate:"2021-02-15T23:26:38.005Z",lastModifiedBy:c,lastModifiedDate:"2023-02-02T17:25:02.337Z",locale:T},category:[{name:af,color:ag}],completable:J,courseDependencies:J,courseLabelsBar:J,description:"Explore how to thoroughly test a production-level Vue app",difficulty:aQ,duration:"00:52:16",free:F,id:dZ,image:[{__meta__:{createdBy:c,createdDate:"2021-02-15T23:23:23.270Z"},contentType:K,file:"Vuemastery_Real World Vue Testing Badgex2.png",folderId:1613429983529,id:1613431393384,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FVuemastery_Real%20World%20Vue%20Testing%20Badgex2.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=UcIVNqu1zwZXAX64P9H48s74yR4wbTMMpdCBvKO%2BM1eVKtTIj9eHrHd8EULUXjWKn%2FkW6IiiBuJhM0q7F30NCj5Y7xWpif%2FhFFtcmYpYCFBQRLm0Weg1suEiD%2BsCPbOt9p2BkJuLFKcuV8mYZJtMbWB7pZyPeywc9jHwOIuo8Gf%2B4inHV1bI5WPz6256RB1aY7f9Xy6uq556AOHejplcnCT1OapHbjsHBOWrrvylVJHRDtllmocaHfZxLaiB0qGKpqQ%2B%2Bp6ZkQmPnPI%2FxNKwdfCdblGeIzZIN6nHXifF5657D%2BuSCxEE30miGT64DuHWWf8AQhyRGJLZPUeK0G21Tg%3D%3D"},{__meta__:{createdBy:c,createdDate:"2022-05-15T19:45:47.585Z"},contentType:K,file:"real-world-testing.png",folderId:aR,id:1652643702842,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Freal-world-testing.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=rUoNmhJWvaYu4DYaDetSJ8crBRJwzNWeFRTi9N33FtK2CzPa0u0%2BSC4qXFMFkvsTPZRBuNONIcck751s8tbq%2F3v0UMERR3U6d0DlDwYrX82am2dMwg2VNaCo0u7tHuRLW0Kepd%2FMcCAUah7uqZx087vylr6UDV2K%2F7vO1wrDfsKnGt8iC5EvOD9NU7%2BKzR2Mom1YzyiPJf3Qg6Pvh0kiz4UL9xnsNUKQKmMaj%2F%2Bf2Vpdhmg%2F1TLMbvoMUTK3ji0trx%2F9n82689%2BPj2AdGTWZ0%2BD5ZORfEseDgyS0sEPq3PqzFUZyvz%2Fd7kLwCV5%2FijHMNn8coLV0O3Kh%2FW9bTycMGg%3D%3D"}],isComingSoon:F,isDraft:F,isPromoted:F,label:ad,lessons:[{slug:"getting-started",status:H,date:"2021-04-20T00:00:00-07:00",title:"Getting Started",lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:rz},contentType:E,file:rA,folderId:rB,id:rC,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:rD}],description:"Gain confidence testing your Vue apps in this Real World Testing course",duration:"00:01:29",author:eJ,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:rz},contentType:E,file:rA,folderId:rB,id:rC,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:rD}],facebookImage:[{__meta__:{createdBy:c,createdDate:rz},contentType:E,file:rA,folderId:rB,id:rC,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:rD}],socialSharingDescription:"Gain confidence testing your Vue apps in this Real World Testing course on @VueMastery",belongsToCourse:dZ},{slug:"setup-and-testing-like-a-user",status:H,date:"2021-05-04T00:00:00+01:00",title:"Setup & Testing like a User",lessonNumber:U,free:G,image:[{__meta__:{createdBy:c,createdDate:rE},contentType:E,file:rF,folderId:rG,id:rH,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:rI}],description:"Learn how to test any application like a user",duration:"00:15:09",author:eJ,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:rE},contentType:E,file:rF,folderId:rG,id:rH,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:rI}],facebookImage:[{__meta__:{createdBy:c,createdDate:rE},contentType:E,file:rF,folderId:rG,id:rH,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:rI}],socialSharingDescription:"I'm learning how to test any application like a user on @VueMastery",belongsToCourse:dZ},{slug:"mocking-vuex-stores",status:H,date:"2021-06-22T00:00:00-07:00",title:"Mocking Vuex Stores: Part 1",lessonNumber:ab,free:F,image:[{__meta__:{createdBy:c,createdDate:rJ},contentType:E,file:rK,folderId:rL,id:rM,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:rN}],description:"Learn how to mock dependencies like Vuex and Vue Router within our tests",duration:"00:09:20",author:eJ,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:rJ},contentType:E,file:rK,folderId:rL,id:rM,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:rN}],facebookImage:[{__meta__:{createdBy:c,createdDate:rJ},contentType:E,file:rK,folderId:rL,id:rM,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:rN}],socialSharingDescription:"I learned how to mock dependencies like Vuex and Vue Router on @VueMastery",belongsToCourse:dZ},{slug:"mocking-vuex-stores-part-2",status:H,date:"2021-11-01T00:00:00-07:00",title:"Mocking Vuex Stores: Part 2",lessonNumber:ac,free:F,image:[{__meta__:{createdBy:c,createdDate:rO},contentType:E,file:rP,folderId:rQ,id:rR,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:rS}],description:"We’ll continue on testing the EventList component that depends on Vuex. This includes refactoring our Vuex stores to be testable and mocking our Vuex store’s initial state.",duration:"00:14:07",author:eJ,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:rO},contentType:E,file:rP,folderId:rQ,id:rR,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:rS}],facebookImage:[{__meta__:{createdBy:c,createdDate:rO},contentType:E,file:rP,folderId:rQ,id:rR,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:rS}],socialSharingDescription:"I'm learning how to test the EventList component that depends on Vuex on @VueMastery",belongsToCourse:dZ},{slug:"mocking-the-network-with-mock-service-worker-part-1",status:H,date:"2022-05-24T00:00:00+01:00",title:"Mocking the Network with Mock Service Worker: Part 1",lessonNumber:W,free:F,image:[{__meta__:{createdBy:c,createdDate:rT},contentType:E,file:rU,folderId:rV,id:rW,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:rX}],description:Kq,duration:Kr,author:eJ,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:rT},contentType:E,file:rU,folderId:rV,id:rW,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:rX}],facebookImage:[{__meta__:{createdBy:c,createdDate:rT},contentType:E,file:rU,folderId:rV,id:rW,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:rX}],socialSharingDescription:Ks,belongsToCourse:dZ},{slug:"mocking-the-network-with-mock-service-worker-part-2",status:H,date:"2022-05-30T00:00:00-07:00",title:"Mocking the Network with Mock Service Worker: Part 2",lessonNumber:S,free:F,image:[{__meta__:{createdBy:c,createdDate:rY},contentType:E,file:rZ,folderId:r_,id:r$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:sa}],description:Kq,duration:fi,author:eJ,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:rY},contentType:E,file:rZ,folderId:r_,id:r$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:sa}],facebookImage:[{__meta__:{createdBy:c,createdDate:rY},contentType:E,file:rZ,folderId:r_,id:r$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:sa}],socialSharingDescription:Ks,belongsToCourse:dZ}],lessonsCount:S,order:M,parentId:M,slug:"real-world-testing",teachers:[{firstName:"Jessica",lastName:"Sachs",about:"Tech Lead at Cypress.io and Architect of the Component Test Framework. Admin in the Official Vue Land Discord, maintainer of Vue’s Test Utils, and conference presenter.",image:[{__meta__:{createdBy:c,createdDate:"2022-05-24T22:34:36.531Z"},contentType:E,file:"jessica-sachs-old.jpg",folderId:X,id:1653431665271,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fjessica-sachs-old.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=jZr7fVu1TeOK9gIO707Y5%2F%2BlednEf326%2Flt3SO%2F3NFUOtYiWF9Y8c%2FEKysfWacnVLd6s1H8H15e8tEtHNDWYmtHgo6nQpj8WLu8PoykyqE7zJk1Da9BPjh8Q%2B9zGVDeUgw14MyeiRqOquQRCKXbTO9oeQlE6LpC39qOwcVoujBtigGRi91PJa19vY1O%2BCmeOWnBEAcdRQgBtpLojtjuKUUjor26k2T4rtpEBlKqBRPYeKZHd3T5nSVI%2Ffvf%2Bb1wtGrDDCcyfqTb8fI9nz9fuX1mjWMI2b56yBSheeUw7ENMMwb%2B%2F%2FZHyEWy0e1usIqUmxggZzA6%2BwF69e%2BLdqD9PTQ%3D%3D"}]}],title:"Real World Testing"},"1613432834650":{__meta__:{createdBy:c,createdDate:"2021-02-15T23:47:14.650Z",lastModifiedBy:c,lastModifiedDate:"2022-05-28T02:07:11.818Z",locale:T},category:[{name:"Vuex 4",color:"#eb6868"}],completable:G,courseDependencies:J,courseLabelsBar:J,description:"Learn how state management with Vuex can handle your app's data needs.",difficulty:bM,duration:"00:44:09",free:F,id:eq,image:[{__meta__:{createdBy:c,createdDate:"2021-02-15T23:45:34.531Z"},contentType:K,file:"Vuemastery_StateManagement Badge.png",folderId:1613432675322,id:1613432727454,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FVuemastery_StateManagement%20Badge.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=F3z6e3kAewyo3%2Fpl5972LA%2BnLw0wVqhccz%2FmM2QHSMLyQYfBvDycBO1jYNPzwSL7FbF7ErJa7UsBJ9hZZZ3xuIo9BP%2FFbINCbQXB%2BAEYwuXqBxxSddVNDV4wc5VrACfQLZjM4GE67np1KyV7gI4bgoZC5qze7%2FrJLtgCOaZstzewh2QqXxmI7X0E7ByEiMA2tpYZxUkHWes%2F%2FD%2FYyDFPGhVVxypaRLbA2Xnbb9GgAwAHx2D%2BDQAQ7urnsq2X02NdlA93bEmKetisCX7mvGxcUvnOhmEByvUGkwz9NA0zOXT7rBWTUEFRmrGWYIwgXFfM1N5H%2Bw9IyE4hNxyJ8C13XA%3D%3D"},{__meta__:{createdBy:c,createdDate:"2022-05-15T19:45:47.943Z"},contentType:K,file:"vuex-fundamentals.png",folderId:aR,id:1652643878849,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fvuex-fundamentals.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=J%2FLS4Jqy%2FsEudYX1VbOhgmFKqo1COC0kjl1Bu0dO1o73ioIUR2eu1Zko2ySxZjWT48381raG%2FKg6WQnJ326w7RsObSIXlsNSl3yIqYyFcgRrJgn4PtR%2BkDvnbdcZ8vT36u07sGa3bndtJeDWqo2yiQyMqRFJonpYadM3wOzBd5GPi3yupvAVMOGk0jhqTJQOcxVZMMLrtdUZ1EYCQ7Hi5AHRWBjm9e6mvGMI5BlQiOZZnDLXbJsRk7rQRT1R0xqcpk2PJK1aZbjYO%2FZvbbf2ynaH8dOtvBVbOT3vX0owBY%2B50Zr4eZGWBhKx6KkWC4QAFY0A%2FS3wIGlBn8540Uf%2BHg%3D%3D"}],isComingSoon:F,isDraft:F,isPromoted:F,label:dP,lessons:[{slug:"vuex4-intro-to-vuex",status:H,date:Kt,title:CD,lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:sb},contentType:E,file:sc,folderId:sd,id:se,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:sf}],description:"In this course, we'll be exploring the fundamentals of Vuex: Vue's state management library.",duration:Ku,author:O,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:sb},contentType:E,file:sc,folderId:sd,id:se,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:sf}],facebookImage:[{__meta__:{createdBy:c,createdDate:sb},contentType:E,file:sc,folderId:sd,id:se,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:sf}],socialSharingDescription:"I'm learning the fundamentals of Vuex on @VueMastery",belongsToCourse:eq},{slug:"global-state",status:H,date:Kt,title:"Global State",lessonNumber:U,free:G,image:[{__meta__:{createdBy:c,createdDate:sg},contentType:E,file:sh,folderId:si,id:sj,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:sk}],description:"In this lesson, we're going to implement some global state within our example application.",duration:"00:07:36",author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:sg},contentType:E,file:sh,folderId:si,id:sj,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:sk}],facebookImage:[{__meta__:{createdBy:c,createdDate:sg},contentType:E,file:sh,folderId:si,id:sj,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:sk}],socialSharingDescription:"I implemented some global state within an application on @VueMastery",belongsToCourse:eq},{slug:"updating-state",status:H,date:"2021-05-11T00:00:00-07:00",title:"Updating State",lessonNumber:ab,free:F,image:[{__meta__:{createdBy:c,createdDate:sl},contentType:E,file:sm,folderId:sn,id:so,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:sp}],description:"How do we update Vuex state? Learn how to use Mutations to add new State or update State within the Vuex Store.",duration:"00:08:04",author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:sl},contentType:E,file:sm,folderId:sn,id:so,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:sp}],facebookImage:[{__meta__:{createdBy:c,createdDate:sl},contentType:E,file:sm,folderId:sn,id:so,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:sp}],socialSharingDescription:"I learned how to update Vuex state on @VueMastery",belongsToCourse:eq},{slug:"fetching-state",status:H,date:"2021-06-15T00:00:00-07:00",title:"Fetching State",lessonNumber:ac,free:F,image:[{__meta__:{createdBy:c,createdDate:sq},contentType:E,file:sr,folderId:ss,id:st,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:su}],description:"Learn how Vuex actions can wrap your mutations to perform more complex state management behavior.",duration:"00:13:31",author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:sq},contentType:E,file:sr,folderId:ss,id:st,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:su}],facebookImage:[{__meta__:{createdBy:c,createdDate:sq},contentType:E,file:sr,folderId:ss,id:st,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:su}],socialSharingDescription:"I learned how Vuex actions can wrap my mutations on @VueMastery",belongsToCourse:eq},{slug:"error-handling",status:H,date:"2021-07-13T00:00:00-07:00",title:Dj,lessonNumber:W,free:F,image:[{__meta__:{createdBy:c,createdDate:sv},contentType:E,file:sw,folderId:sx,id:sy,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:sz}],description:"Learn how to handle errors that might happen when dispatching Vuex actions.",duration:Ds,author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:sv},contentType:E,file:sw,folderId:sx,id:sy,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:sz}],facebookImage:[{__meta__:{createdBy:c,createdDate:sv},contentType:E,file:sw,folderId:sx,id:sy,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:sz}],socialSharingDescription:"I learned how to handle errors that might happen when dispatching Vuex actions on @VueMastery",belongsToCourse:eq},{slug:"vuex-next-steps",status:H,date:"2021-07-20T00:00:00-07:00",title:ep,lessonNumber:S,free:F,image:[{__meta__:{createdBy:c,createdDate:sA},contentType:E,file:sB,folderId:sC,id:sD,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:sE}],description:"Let's explore some of the additional Vuex features we can add to our app as it scales.",duration:"00:02:30",author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:sA},contentType:E,file:sB,folderId:sC,id:sD,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:sE}],facebookImage:[{__meta__:{createdBy:c,createdDate:sA},contentType:E,file:sB,folderId:sC,id:sD,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:sE}],socialSharingDescription:"I'm exploring some Vuex features I can add to my app as it scales on @VueMastery",belongsToCourse:eq}],lessonsCount:S,order:M,parentId:M,slug:"vuex-fundamentals",teachers:[{firstName:cs,lastName:cx,about:cy,image:[{__meta__:{createdBy:c,createdDate:cz},contentType:E,file:cA,folderId:X,id:cB,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cC}]}],title:"Vuex Fundamentals"},"1613433075593":{__meta__:{createdBy:c,createdDate:"2021-02-15T23:51:15.593Z",lastModifiedBy:c,lastModifiedDate:"2022-09-01T16:50:16.528Z",locale:T},category:[{name:af,color:ag}],completable:G,courseDependencies:J,courseLabelsBar:J,description:fk,difficulty:bM,duration:"00:43:36",free:F,id:er,image:[{__meta__:{createdBy:c,createdDate:"2021-02-15T23:50:36.614Z"},contentType:K,file:"Vuemastery_Unit Testing Vue3 Badge.png",folderId:bP,id:1613433029784,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FVuemastery_Unit%20Testing%20Vue3%20Badge.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=hELtYqNTEo0sB3YIMjru39YR63DbUTttu%2BJRDJUYOiKDkNIhW7giFwyIpfxsUnv9MxA5yXfV0iAH6oXaddIXwKgYhffwd35VR3U5fZiP1PWUGB3Bvs4kTsZV4cjHJJ%2Bg6CC%2BzMlajxfqqzDy80x3UwDHfMPIUzgur2NRfSKnUeDYsXv6mftqY2DZGrZZE9Xk%2FrSrbfWoTYkxnfDpAbKcR9v5v4Ss5Al4me2d3GZh%2F0WJHzcWoPYr2Po3XokHNrMonfPa41x2PehIbcRnd%2BlqMMJrNTpBUYr%2By6SQXnqK4jzZk6rtc8L88aWFXlksq28aIszYdm7qoBJ3rVlDuMm2eA%3D%3D"},{__meta__:{createdBy:c,createdDate:"2022-05-15T19:45:43.939Z"},contentType:K,file:"unit-testing-vue-3.png",folderId:aR,id:1652643763578,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Funit-testing-vue-3.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=cUT0s3LxaDuhKqyB7hY5ls6IMUBEy3TNgzkgowFA%2F4x0ax2AQxZ7x4eDDOtYOI9JqYq8WHzL%2FT6E5JfypFe9ig4fggGYu9nUafhjztqMoJfigefm9rbpELur%2BKoXBB2FVJJ9tABrUKwVU2xZx0AU2s1TENEWd%2Bo3HDRegRnYxlXOtduOHZe%2FWIWgnw7j3R3of72MJNBgHQjDlw68oLAMllJPbGwM%2FbPmg6bTdJEndutxAx5d0OgBeO0tQfoe2L7LjsGdn3hRFUxioO5bp3PkTU8Gyj0wcGoFDm2YmJ6aHC0oZCc7%2FDfHf4PMwaTt9BY7FBKzCUr%2FzsArkDaem1L7Lg%3D%3D"}],isComingSoon:F,isDraft:F,isPromoted:F,label:ad,lessons:[{slug:"what-to-test-vue-3",status:H,date:Kv,title:Gw,lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:bY},contentType:E,file:bZ,folderId:bP,id:b_,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:b$}],description:fk,duration:Ay,author:O,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:bY},contentType:E,file:bZ,folderId:bP,id:b_,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:b$}],facebookImage:[{__meta__:{createdBy:c,createdDate:bY},contentType:E,file:bZ,folderId:bP,id:b_,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:b$}],socialSharingDescription:Gx,belongsToCourse:er},{slug:"writing-a-unit-test-with-jest-vue-3",status:H,date:Kv,title:Gy,lessonNumber:U,free:G,image:[{__meta__:{createdBy:c,createdDate:bY},contentType:E,file:bZ,folderId:bP,id:b_,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:b$}],description:Gz,duration:"00:10:05",author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:bY},contentType:E,file:bZ,folderId:bP,id:b_,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:b$}],facebookImage:[{__meta__:{createdBy:c,createdDate:bY},contentType:E,file:bZ,folderId:bP,id:b_,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:b$}],socialSharingDescription:GA,belongsToCourse:er},{slug:"testing-props-and-user-interaction-vue-3",status:H,date:"2021-04-06T00:00:00+01:00",title:GB,lessonNumber:ab,free:F,image:[{__meta__:{createdBy:c,createdDate:bY},contentType:E,file:bZ,folderId:bP,id:b_,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:b$}],description:GC,duration:"00:06:51",author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:bY},contentType:E,file:bZ,folderId:bP,id:b_,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:b$}],facebookImage:[{__meta__:{createdBy:c,createdDate:bY},contentType:E,file:bZ,folderId:bP,id:b_,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:b$}],socialSharingDescription:GH,belongsToCourse:er},{slug:"testing-emitted-events-vue-3",status:H,date:sF,title:GI,lessonNumber:ac,free:F,image:[{__meta__:{createdBy:c,createdDate:bY},contentType:E,file:bZ,folderId:bP,id:b_,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:b$}],description:GJ,duration:Je,author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:bY},contentType:E,file:bZ,folderId:bP,id:b_,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:b$}],facebookImage:[{__meta__:{createdBy:c,createdDate:bY},contentType:E,file:bZ,folderId:bP,id:b_,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:b$}],socialSharingDescription:GL,belongsToCourse:er},{slug:"testing-api-calls-vue-3",status:H,date:sF,title:GM,lessonNumber:W,free:F,image:[{__meta__:{createdBy:c,createdDate:bY},contentType:E,file:bZ,folderId:bP,id:b_,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:b$}],description:GN,duration:Jq,author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:bY},contentType:E,file:bZ,folderId:bP,id:b_,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:b$}],facebookImage:[{__meta__:{createdBy:c,createdDate:bY},contentType:E,file:bZ,folderId:bP,id:b_,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:b$}],socialSharingDescription:GO,belongsToCourse:er},{slug:"stubbing-child-components-vue-3",status:H,date:sF,title:GP,lessonNumber:S,free:F,image:[{__meta__:{createdBy:c,createdDate:bY},contentType:E,file:bZ,folderId:bP,id:b_,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:b$}],description:GQ,duration:jm,author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:bY},contentType:E,file:bZ,folderId:bP,id:b_,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:b$}],facebookImage:[{__meta__:{createdBy:c,createdDate:bY},contentType:E,file:bZ,folderId:bP,id:b_,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:b$}],socialSharingDescription:GR,belongsToCourse:er}],lessonsCount:S,order:M,parentId:M,slug:"unit-testing-vue-3",teachers:[{firstName:cs,lastName:cx,about:cy,image:[{__meta__:{createdBy:c,createdDate:cz},contentType:E,file:cA,folderId:X,id:cB,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cC}]}],title:"Unit Testing Vue 3"},"1621292371094":{__meta__:{createdBy:c,createdDate:"2021-05-17T22:59:31.094Z",lastModifiedBy:c,lastModifiedDate:"2022-05-28T02:07:03.797Z",locale:T},category:[{name:af,color:ag}],completable:G,courseDependencies:J,courseLabelsBar:J,description:"In this course, you’ll learn how to get started with building a web app that’s offline-ready with Vue 3 and Progressive Web Apps.",difficulty:aQ,duration:"00:50:41",free:F,id:dh,image:[{__meta__:{createdBy:c,createdDate:"2021-05-17T22:57:52.458Z"},contentType:K,file:"PWA_lowres.png",folderId:aT,id:1621292264737,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FPWA_lowres.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=oQ1AETNzT9FnmrXRJAODu1ac9VhFEQR3w3JCOyophVarpTP92IBz%2F%2FShAW%2BACw7HQAFE%2FzJpXnJHFKXvESfd4Pf0HS6VO7IouzjBVHRZSGboiWUfXLGFBCYZBE43eS2SQ3vBUk0mpBQuRt7DmWGHM6a5f6IfQagYj%2F%2FJ4jKEWCFN0iAFwVVET4iGPy4wbIce3L5vhsIujdsHkCTcfgVOS5Ey%2BDVC7cC8DZY%2F%2BBKlemsOtFMDCN%2B%2B%2BtN86%2FPyFWG4aeq2AEy4O8gnKGJia4aDrDE7t7uRoReOTQwRtAuDA9haQFTMEi3vbhzr5gd%2BnD9BmGfogtK2iH01CQyCXfDdmg%3D%3D"},{__meta__:{createdBy:c,createdDate:"2022-05-15T19:45:42.565Z"},contentType:K,file:"progressive-web-apps-vue-3.png",folderId:aR,id:1652643681442,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fprogressive-web-apps-vue-3.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=fu44GfKdzIKys6j6zRh6CTgk0jnbjGvMjZZ7fe2xyI%2BzYJUQiQuT1HeqPdiyxEW3JB4nh0Xr6DJd1wTBawEda8wp5aw7aPzts9vm82zj1BfnrJKosTKgIuV9WQy8kuyJnqaGgMKkxGE%2BIBkRuYvGp4ngbk55qISiaCabmV9%2BPDue9cwDLEH%2BWoS0iWXp8gvUTtZ593kOrciMw%2BNClM7tYZvdyOFcGcLYPaGdRni6p81WwcPHVuzAgsgrI5WR9HvQEAs06%2BB2ta1UyWJo3hH45WL6LJBnsMI0MrKtnw9itH2F9Z39WlXgrGZr%2FqAf2i4XOGHEk4DEwWmcvSBSzC%2Fihw%3D%3D"}],isComingSoon:F,isDraft:F,isPromoted:F,label:ad,lessons:[{slug:"what-are-progressive-web-apps",status:H,date:"2021-05-25T00:00:00-07:00",title:"What are progressive web apps?",lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:sG},contentType:E,file:sH,folderId:aT,id:sI,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:sJ}],description:"Rather than having to rewrite your entire app with a mobile language like Swift or Kotlin, what if we could leverage our existing work and allow users to install our web app like a mobile app? Well, with a technology known as progressive web apps, you can!",duration:"00:03:59",author:N,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:sG},contentType:E,file:sH,folderId:aT,id:sI,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:sJ}],facebookImage:[{__meta__:{createdBy:c,createdDate:sG},contentType:E,file:sH,folderId:aT,id:sI,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:sJ}],socialSharingDescription:"I’m learning about progressive web apps with Vue 3 on @VueMastery!",belongsToCourse:dh},{slug:"overview-and-setup",status:H,date:"2021-06-29T00:00:00-07:00",title:"Overview and Setup",lessonNumber:U,free:G,image:[{__meta__:{createdBy:c,createdDate:sK},contentType:E,file:sL,folderId:aT,id:sM,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:sN}],description:"An overview of how TodoMVC will be enhanced with PWA",duration:Kw,author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:sK},contentType:E,file:sL,folderId:aT,id:sM,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:sN}],facebookImage:[{__meta__:{createdBy:c,createdDate:sK},contentType:E,file:sL,folderId:aT,id:sM,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:sN}],socialSharingDescription:"I’m learning about how to add PWA to a TodoMVC app with @VueMastery",belongsToCourse:dh},{slug:"service-workers",status:H,date:Kx,title:"Service Workers",lessonNumber:ab,free:F,image:[{__meta__:{createdBy:c,createdDate:sO},contentType:E,file:sP,folderId:aT,id:sQ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:sR}],description:"Learn what service workers are and how to use them with your progressive web apps and Vue CLI.",duration:"00:02:45",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:sO},contentType:E,file:sP,folderId:aT,id:sQ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:sR}],facebookImage:[{__meta__:{createdBy:c,createdDate:sO},contentType:E,file:sP,folderId:aT,id:sQ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:sR}],socialSharingDescription:"I just learned about service workers and how it works with Vue CLI with @bencodezen on @VueMastery",belongsToCourse:dh},{slug:"manifest-json",status:H,date:"2021-08-31T00:00:00-07:00",title:"Manifest.json",lessonNumber:ac,free:F,image:[{__meta__:{createdBy:c,createdDate:sS},contentType:E,file:sT,folderId:aT,id:sU,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:sV}],description:"Learn what manifes.json is and key configurations that are important for your progressive web apps and Vue CLI.",duration:"00:04:21",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:sS},contentType:E,file:sT,folderId:aT,id:sU,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:sV}],facebookImage:[{__meta__:{createdBy:c,createdDate:sS},contentType:E,file:sT,folderId:aT,id:sU,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:sV}],socialSharingDescription:"I just learned about manifest.json and how it works with Vue CLI with @bencodezen on @VueMastery",belongsToCourse:dh},{slug:"offline-databases-with-indexeddb",status:H,date:"2021-09-28T00:00:00-07:00",title:"Offline Databases with IndexedDB",lessonNumber:W,free:F,image:[{__meta__:{createdBy:c,createdDate:sW},contentType:E,file:sX,folderId:aT,id:sY,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:sZ}],description:"Learn what IndexedDB is and how it powers offline databases for PWAs with Vue 3!",duration:s_,author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:sW},contentType:E,file:sX,folderId:aT,id:sY,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:sZ}],facebookImage:[{__meta__:{createdBy:c,createdDate:sW},contentType:E,file:sX,folderId:aT,id:sY,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:sZ}],socialSharingDescription:"I just learned what IndexedDB is and how it powers offline databases for PWAs with Vue 3 with @bencodezen on @VueMastery",belongsToCourse:dh},{slug:"fetching-a-database-with-indexeddb",status:H,date:"2021-10-12T00:00:00-07:00",title:"Fetching a Database with IndexedDB",lessonNumber:S,free:F,image:[{__meta__:{createdBy:c,createdDate:s$},contentType:E,file:ta,folderId:aT,id:tb,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:tc}],description:"Learn how to fetch a database from IndexedDB with Vue 3!",duration:"00:10:37",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:s$},contentType:E,file:ta,folderId:aT,id:tb,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:tc}],facebookImage:[{__meta__:{createdBy:c,createdDate:s$},contentType:E,file:ta,folderId:aT,id:tb,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:tc}],socialSharingDescription:"I just learned how to fetch a database from IndexedDB in Vue 3 with @bencodezen on @VueMastery",belongsToCourse:dh},{slug:"object-stores-with-indexeddb",status:H,date:"2021-10-26T00:00:00-07:00",title:"Object Stores with IndexedDB",lessonNumber:ae,free:F,image:[{__meta__:{createdBy:c,createdDate:td},contentType:E,file:te,folderId:tf,id:tg,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:th}],description:"Learn how to create and access an object store in an IndexedDB database with Vue 3!",duration:"00:07:29",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:td},contentType:E,file:te,folderId:tf,id:tg,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:th}],facebookImage:[{__meta__:{createdBy:c,createdDate:td},contentType:E,file:te,folderId:tf,id:tg,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:th}],socialSharingDescription:"I just learned how to get create and access an object store in IndexedDB and Vue 3 with @bencodezen on @VueMastery",belongsToCourse:dh},{slug:"saving-data-to-indexeddb",status:H,date:"2021-11-08T00:00:00-08:00",title:"Saving Data to IndexedDB",lessonNumber:ah,free:F,image:[{__meta__:{createdBy:c,createdDate:ti},contentType:E,file:tj,folderId:aT,id:tk,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:tl}],description:"Learn how to save data in an object store within IndexedDB using Vue 3!",duration:"00:08:02",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:ti},contentType:E,file:tj,folderId:aT,id:tk,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:tl}],facebookImage:[{__meta__:{createdBy:c,createdDate:ti},contentType:E,file:tj,folderId:aT,id:tk,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:tl}],socialSharingDescription:"I just learned how to save data in an object store within IndexedDB using Vue 3 with @bencodezen on @VueMastery",belongsToCourse:dh},{slug:"deleting-data-from-indexeddb",status:H,date:"2021-11-16T00:00:00-08:00",title:"Deleting Data from IndexedDB",lessonNumber:an,free:F,image:[{__meta__:{createdBy:c,createdDate:tm},contentType:E,file:tn,folderId:aT,id:to,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:tp}],description:"Learn how to delete data in an object store within IndexedDB using Vue 3!",duration:"00:03:41",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:tm},contentType:E,file:tn,folderId:aT,id:to,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:tp}],facebookImage:[{__meta__:{createdBy:c,createdDate:tm},contentType:E,file:tn,folderId:aT,id:to,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:tp}],socialSharingDescription:"I just learned how to delete data in an object store within IndexedDB using Vue 3 with @bencodezen on @VueMastery",belongsToCourse:dh},{slug:"pwa-next-steps",status:H,date:"2021-11-23T00:00:00-08:00",title:ep,lessonNumber:aS,free:F,image:[{__meta__:{createdBy:c,createdDate:tq},contentType:E,file:tr,folderId:aT,id:ts,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:tt}],description:"Learn what next steps lie ahead with your newfound skills with Vue 3, PWAs and IndexedDB!",duration:kA,author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:tq},contentType:E,file:tr,folderId:aT,id:ts,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:tt}],facebookImage:[{__meta__:{createdBy:c,createdDate:tq},contentType:E,file:tr,folderId:aT,id:ts,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:tt}],socialSharingDescription:"I just learned about next steps that I can take with my new skills with Vue 3, PWAs and IndexedDB with @bencodezen on @VueMastery",belongsToCourse:dh}],lessonsCount:aS,order:M,parentId:M,slug:"progressive-web-apps-vue-3",teachers:[{firstName:da,lastName:db,about:dc,image:[{__meta__:{createdBy:c,createdDate:dd},contentType:E,file:de,folderId:X,id:df,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:dg}]}],title:"Progressive Web Apps w\u002F Vue 3"},"1621451470893":{__meta__:{createdBy:c,createdDate:"2021-05-19T19:11:10.893Z",lastModifiedBy:c,lastModifiedDate:"2024-03-19T21:07:37.607Z",locale:T},category:[{name:af,color:ag},{name:au,color:av}],completable:G,courseDependencies:J,courseLabelsBar:J,description:"Use GraphQL to modernize how your Vue app queries, manipulates, and stores data.",difficulty:cK,duration:"01:38:22",free:F,id:cI,image:[{__meta__:{createdBy:c,createdDate:"2021-05-19T19:10:23.500Z"},contentType:K,file:"Vuemaster_GlyphQL Badge color2.opt.png",folderId:1621451386698,id:1621451416334,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FVuemaster_GlyphQL%20Badge%20color2.opt.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=XVuHiK9wFBnxHyFguocf6cU1wbxrQolNnPQyCioJV%2FEGlrWH3bLALP6pX5pQ3rirRMlhTENfpekFiLqye7nCVcaaR%2FMnCL%2Bt4lbYsWwyoHV6kqlkvZgpeiZkRj5dE8DnkfP7qEibpdVaUUMZL144ig6JCkpiPZDa8Gxkz8HcxpSjLVid7f1EEUdcsbIYXreg6HoOphO0KcDXhulkx%2FrkG2W4gs8EW5P7QmCAkQpqlermIomqU1DAsNl30ZHNY7vndFXZryzUE%2ByElRQBeVVoW3PA8vKf%2BF5D61tpQKKidhfnuWw0Xjc446M6t4czFbxrlW1v6VvLFbbpb4UpoJEp5Q%3D%3D"},{__meta__:{createdBy:c,createdDate:"2022-05-15T19:45:42.791Z"},contentType:K,file:"querying-with-graphql.png",folderId:aR,id:1652643694076,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fquerying-with-graphql.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=CUVFpdrkN%2BMNz4s7A%2FknOzpZxrqyOxFxCf0TDr%2Bk48%2FO8GJ%2BePgiN%2Bp7HGx2gafqU%2Fd3xtOKZaAJKKbcNUVPtsFIny6Ocag7TwdIyRkeDsogKcwf4sgCS3Eglj7FB0VyGcZBKjoIoeEvLyS8pSljTiPgoLPIrO28aPvF24l67NLqixl2FO7igWSPDAMb8ttwlle5nibVegIw0%2FvPBXOFbW%2FnhIKqFa8bJOvddwns%2BoIeP2bXVPSAO2mRb4%2BZO0ruebMQhaggVis27y9N6t%2FMXBnSK3JdJK3vIs2ZLLIrupBLntjzAnPtMHrqvRwP4CQ1U%2BCP5ax3Jkl21UHYNv%2FcBA%3D%3D"}],isComingSoon:F,isDraft:F,isPromoted:F,label:ad,latestAt:J,lessons:[{slug:"intro-to-graphql",status:H,date:"2021-11-22T00:00:00-08:00",title:"Intro to GraphQL",lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:"2022-11-08T23:03:26.892Z"},contentType:E,file:"Intro to GraphQL 704.jpg",folderId:tu,id:1667948600368,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FIntro%20to%20GraphQL%20704.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=eUpeiPgbnJL3EP%2BsyQ4kiky2mqtiB0jC29jENsqiSKrmHXhDB8aITC9RXwKA7WfegEq4oPmqc%2BJgw9XYS%2BIchZMEGtW%2Bqcm6JbMDzQcfAQ3HfrhKKQ3y%2BcPKtJQiDOEt%2BQdjB2lhd4u6qzHXlW1be9Xn0JuV%2FdU2TOwd%2Fk25uEsIWIaztucmSMSkP4ygyCwu1B%2BVEr6gXJZIFbXYiA9WHZcSEI9XiraLnbPd6F8Ku7MMyu%2BGwKs6bI7qLxMpmRWgVyCoNn8tkrSoTih61UBEsQUrVh0XKcdDOcAUtRmcR5Hs8eMEit94NFWMr6PikD2zOU4Bp8s6ydNXsi87IaGceA%3D%3D"}],description:"Learn the problem with traditional REST APIs and how GraphQL solves it by offering a modern, flexible solution.",duration:"00:04:42",author:bu,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:Ky},contentType:E,file:Kz,folderId:tu,id:KA,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:KB}],facebookImage:[{__meta__:{createdBy:c,createdDate:Ky},contentType:E,file:Kz,folderId:tu,id:KA,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:KB}],socialSharingDescription:"I learned about GraphQL with @N_Tepluhina and @MarinaMosti on @VueMastery",belongsToCourse:cI},{slug:"fetching-data-with-queries",status:H,date:"2021-12-14T00:00:00-08:00",title:"Fetching data with queries",lessonNumber:U,free:G,image:[{__meta__:{createdBy:c,createdDate:tv},contentType:E,file:tw,folderId:tx,id:ty,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:tz}],description:"In this lesson, we will learn how to make simple queries to fetch data from the GraphQL API, and how to work with this data in Vue components.",duration:"00:09:11",author:dF,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:tv},contentType:E,file:tw,folderId:tx,id:ty,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:tz}],facebookImage:[{__meta__:{createdBy:c,createdDate:tv},contentType:E,file:tw,folderId:tx,id:ty,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:tz}],socialSharingDescription:"I learned how to make simple queries to fetch data from the GraphQL API on @VueMastery",belongsToCourse:cI},{slug:"improving-developer-experience",status:H,date:"2022-01-04T00:00:00-08:00",title:"Improving Developer Experience",lessonNumber:ab,free:F,image:[{__meta__:{createdBy:c,createdDate:tA},contentType:E,file:tB,folderId:tC,id:tD,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:tE}],description:"Now that we've made progress getting GraphQL up and running, it's a good time to pause to make some optimizations for our developer experience before we go deeper.",duration:mm,author:dF,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:tA},contentType:E,file:tB,folderId:tC,id:tD,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:tE}],facebookImage:[{__meta__:{createdBy:c,createdDate:tA},contentType:E,file:tB,folderId:tC,id:tD,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:tE}],socialSharingDescription:"I learned how to make some optimizations for the GraphQL developer experience on @VueMastery",belongsToCourse:cI},{slug:"query-variables-handling-loading-and-errors",status:H,date:"2022-01-18T00:00:00-08:00",title:"Query variables, handling loading and errors",lessonNumber:ac,free:F,image:[{__meta__:{createdBy:c,createdDate:tF},contentType:E,file:tG,folderId:tH,id:tI,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:tJ}],description:"So far in this course, we have been fetching the full list of books. This was fine because our list was really short, but what if we had a thousand books and we needed to search for a certain one? For more complex queries like that, we can take advantage of GraphQL's search parameter. ",duration:"00:06:53",author:dF,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:tF},contentType:E,file:tG,folderId:tH,id:tI,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:tJ}],facebookImage:[{__meta__:{createdBy:c,createdDate:tF},contentType:E,file:tG,folderId:tH,id:tI,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:tJ}],socialSharingDescription:"I learned how to take advantage of GraphQL's search parameter on @VueMastery",belongsToCourse:cI},{slug:"advanced-queries",status:H,date:"2022-01-25T00:00:00-08:00",title:"Advanced queries",lessonNumber:W,free:F,image:[{__meta__:{createdBy:c,createdDate:tK},contentType:E,file:tL,folderId:tM,id:tN,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:tO}],description:"In the previous lesson, we created a typeahead search by passing a parameter to the GraphQL query. However, it has a few flaws, which we will fix in this lesson using some advanced options of Apollo query.",duration:KC,author:dF,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:tK},contentType:E,file:tL,folderId:tM,id:tN,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:tO}],facebookImage:[{__meta__:{createdBy:c,createdDate:tK},contentType:E,file:tL,folderId:tM,id:tN,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:tO}],socialSharingDescription:"I learned about some advanced options of Apollo query on @VueMastery",belongsToCourse:cI},{slug:"updating-data-with-mutations",status:H,date:"2022-02-01T00:00:00-08:00",title:"Updating data with mutations",lessonNumber:S,free:F,image:[{__meta__:{createdBy:c,createdDate:tP},contentType:E,file:tQ,folderId:tR,id:tS,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:tT}],description:"So far in our example app, we have only been fetching data from our GraphQL API endpoint. In this lesson, we'll learn how to modify data on our server using GraphQL. ",duration:"00:13:59",author:dF,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:tP},contentType:E,file:tQ,folderId:tR,id:tS,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:tT}],facebookImage:[{__meta__:{createdBy:c,createdDate:tP},contentType:E,file:tQ,folderId:tR,id:tS,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:tT}],socialSharingDescription:"I learned how to modify data on a server using GraphQL on @VueMastery",belongsToCourse:cI},{slug:"bonus-qa-with-natalia-tepluhina",status:H,date:"2022-02-08T00:00:00+01:00",title:"Bonus: Q&A with Natalia Tepluhina",lessonNumber:ae,free:F,image:[{__meta__:{createdBy:c,createdDate:tU},contentType:E,file:tV,folderId:tW,id:tX,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:tY}],description:"In this video, Marina is sitting down with Natalia, the mind behind the course, to answer some common questions regarding using GraphQL with Vue.js.",duration:"00:21:29",author:dF,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:tU},contentType:E,file:tV,folderId:tW,id:tX,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:tY}],facebookImage:[{__meta__:{createdBy:c,createdDate:tU},contentType:E,file:tV,folderId:tW,id:tX,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:tY}],socialSharingDescription:"I'm watching @MarinaMosti ask @N_Tepluhina some common questions about using GraphQL with Vue.js on @VueMastery",belongsToCourse:cI},{slug:"manual-cache-updates-and-optimistic-responses",status:H,date:"2022-02-15T00:00:00-08:00",title:"Manual cache updates and optimistic responses",lessonNumber:ah,free:F,image:[{__meta__:{createdBy:c,createdDate:tZ},contentType:E,file:t_,folderId:t$,id:ua,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ub}],description:"What happens if we want to create a new entity and add it to the list? How do we handle Apollo cache changes and UI updates? We will answer all these questions in this lesson.",duration:"00:12:41",author:dF,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:tZ},contentType:E,file:t_,folderId:t$,id:ua,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ub}],facebookImage:[{__meta__:{createdBy:c,createdDate:tZ},contentType:E,file:t_,folderId:t$,id:ua,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ub}],socialSharingDescription:"I learned how to do manual cache updates and optimistic responses with Apollo on @VueMastery",belongsToCourse:cI},{slug:"real-time-updates-with-subscriptions",status:H,date:"2022-03-01T00:00:00-08:00",title:"Real-time updates with subscriptions",lessonNumber:an,free:F,image:[{__meta__:{createdBy:c,createdDate:uc},contentType:E,file:ud,folderId:ue,id:uf,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ug}],description:"In this lesson, we will learn how to handle subscriptions in your Vue application",duration:"00:06:59",author:dF,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:uc},contentType:E,file:ud,folderId:ue,id:uf,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ug}],facebookImage:[{__meta__:{createdBy:c,createdDate:uc},contentType:E,file:ud,folderId:ue,id:uf,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ug}],socialSharingDescription:"I learned how to handle subscriptions in my Vue application on @VueMastery",belongsToCourse:cI},{slug:"setting-up-local-state-with-apollo-client",status:H,date:"2022-03-15T00:00:00-07:00",title:"Setting up local state with Apollo Client",lessonNumber:aS,free:F,image:[{__meta__:{createdBy:c,createdDate:uh},contentType:E,file:ui,folderId:uj,id:uk,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ul}],description:"In this lesson, we will take a look at local queries, cache updates, and cache invalidation.",duration:"00:06:05",author:dF,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:uh},contentType:E,file:ui,folderId:uj,id:uk,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ul}],facebookImage:[{__meta__:{createdBy:c,createdDate:uh},contentType:E,file:ui,folderId:uj,id:uk,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ul}],socialSharingDescription:"I learned how to set up local state with Apollo Client on @VueMastery",belongsToCourse:cI},{slug:"modifying-local-state-with-apollo-client",status:H,date:"2022-03-29T00:00:00-07:00",title:"Modifying local state with Apollo Client",lessonNumber:bN,free:F,image:[{__meta__:{createdBy:c,createdDate:um},contentType:E,file:un,folderId:uo,id:up,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:uq}],description:"Let's learn how to modify local state with Apollo Client",duration:"00:04:48",author:dF,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:um},contentType:E,file:un,folderId:uo,id:up,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:uq}],facebookImage:[{__meta__:{createdBy:c,createdDate:um},contentType:E,file:un,folderId:uo,id:up,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:uq}],socialSharingDescription:"I learned how to modify local state with Apollo Client on @VueMastery",belongsToCourse:cI}],lessonsCount:bN,order:M,parentId:M,slug:"querying-with-graphql",teachers:[{firstName:fn,lastName:fo,about:fp,image:[{__meta__:{createdBy:c,createdDate:fq},contentType:E,file:fr,folderId:X,id:fs,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ft}]}],title:"Querying with GraphQL"},"1624916198717":{__meta__:{createdBy:c,createdDate:"2021-06-28T21:36:38.717Z",lastModifiedBy:c,lastModifiedDate:"2024-01-03T17:21:26.413Z",locale:T},category:[{name:af,color:ag},{name:au,color:av}],completable:G,courseDependencies:J,courseLabelsBar:J,description:"Learn how to validate any type and size of form in Vue 3 by leveraging the power of Vee-Validate.",difficulty:aQ,duration:"00:37:15",free:F,id:dX,image:[{__meta__:{createdBy:c,createdDate:"2021-06-28T21:36:15.191Z"},contentType:K,file:"Badge_Form Validation_opt.png",folderId:1624916124007,id:1624916160173,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FBadge_Form%20Validation_opt.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=SjRoCNfjwL0cLhtgcJ1JTaEY%2FtkjsfQetovR91CQrtfySdIFt%2FcHxoGjlLvpe3FCapsD1ASg0CO9PtJYtr4usxXsIO%2B90a3lga%2Bp4Gj7TjD2GBMDqIqntRYmjzgtlNGIW4fl2ag%2BfOr06A2AWNn8SeUuw6%2BLOl6NJ8ItrtCSD%2FttDzun2VJ1CWAUf4w%2FMPMi8W%2B%2FhK1xoXMTKXri4jUhVXH9a6qAx3Z5%2Ff3%2FvZZrCzx0StmJTNAxnOCPnxEsTZTR5dn3eaHqCGQdrPpY93bVrEJAhXOE%2Fn04vIUJsN4OCrEZfZQhfD6yAZ6SHMtDYS8xKhP5fc5hbwY%2FmcjXljOJRg%3D%3D"},{__meta__:{createdBy:c,createdDate:"2022-05-15T19:45:43.444Z"},contentType:K,file:"validating-vue3-forms.png",folderId:aR,id:1652643802945,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fvalidating-vue3-forms.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=F903i8chBYn5iYXouHphZSQ%2Fqm0JSo%2B%2BwIEH4q6RBS3E9ehxYh9FODhPakAcsQAskLA293KnnrIfr8CVpiaD2z9gcJIlvpTGH7jnZ%2FsuRZD2H5N%2FWgBvkatobp6qYRHfPu4HCWWXcXfL8JigP9mZ1d6qf8NHx86xwWW9dWbo4PXdlcQCok1gUpt%2BdbvX4LmOAZVteYXCwb60wAeCrR9yKMwQwT7UwuRTMV9o6AIKqoUdMaws3W%2FjB9gw1ge8po9bwKovLX6qWvx1AYYEMIjj633GBd6SiZTTXXePwZuCsOwHXP%2F8d9Es4NMgNNvzO8F82q8N7%2BtPDSCvaw6gGT0rdg%3D%3D"}],isComingSoon:F,isDraft:F,isPromoted:F,label:ad,lessons:[{slug:"why-vee-validate",status:H,date:Kx,title:"Why Vee-Validate?",lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:ur},contentType:E,file:us,folderId:ut,id:uu,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:uv}],description:"Explore the main reasons why using a form validation library, specifically Vee-Validate with Vue 3, can make form validation easy and streamlined.",duration:"00:02:15",author:bu,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:ur},contentType:E,file:us,folderId:ut,id:uu,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:uv}],facebookImage:[{__meta__:{createdBy:c,createdDate:ur},contentType:E,file:us,folderId:ut,id:uu,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:uv}],socialSharingDescription:"I just started learning about Vee-Validate in Vue 3 on @VueMastery with @MarinaMosti",belongsToCourse:dX},{slug:"validating-setting-up",status:H,date:"2021-07-27T00:00:00-07:00",title:"Setting Up",lessonNumber:U,free:G,image:[{__meta__:{createdBy:c,createdDate:uw},contentType:E,file:ux,folderId:uy,id:uz,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:uA}],description:"Take the first steps into learning how to validate Vue 3 forms with Vee-Validate 4.0",duration:"00:08:24",author:bu,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:uw},contentType:E,file:ux,folderId:uy,id:uz,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:uA}],facebookImage:[{__meta__:{createdBy:c,createdDate:uw},contentType:E,file:ux,folderId:uy,id:uz,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:uA}],socialSharingDescription:"A form is only as good as the data it collects. I am learning how to easily validate Vue 3 forms with Vee-Validate 4.0 on @VueMastery with @MarinaMosti",belongsToCourse:dX},{slug:"validating-at-form-level",status:H,date:"2021-08-16T00:00:00-07:00",title:"Validating at form level",lessonNumber:ab,free:F,image:[{__meta__:{createdBy:c,createdDate:uB},contentType:E,file:uC,folderId:uD,id:uE,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:uF}],description:"Learn how to set up a validation schema using vee-validate's useField method",duration:KD,author:bu,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:uB},contentType:E,file:uC,folderId:uD,id:uE,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:uF}],facebookImage:[{__meta__:{createdBy:c,createdDate:uB},contentType:E,file:uC,folderId:uD,id:uE,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:uF}],socialSharingDescription:"I just learned how to set up set up a validation schema for Vue 3 forms with vee-validate on @VueMastery with @MarinaMosti",belongsToCourse:dX},{slug:"submitting-bigger-forms",status:H,date:"2021-09-14T00:00:00-07:00",title:"Submitting bigger forms",lessonNumber:ac,free:F,image:[{__meta__:{createdBy:c,createdDate:uG},contentType:E,file:uH,folderId:uI,id:uJ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:uK}],description:"Learn how to validate a big form with Vee-validate by leveraging the power of the useForm composition function",duration:"00:11:47",author:bu,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:uG},contentType:E,file:uH,folderId:uI,id:uJ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:uK}],facebookImage:[{__meta__:{createdBy:c,createdDate:uG},contentType:E,file:uH,folderId:uI,id:uJ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:uK}],socialSharingDescription:"I just learned how to fully validate a form using Vee-Validate on @VueMastery with @MarinaMosti",belongsToCourse:dX},{slug:"using-yup-for-validations",status:H,date:"2021-10-05T00:00:00-07:00",title:"Using YUP for validations",lessonNumber:W,free:F,image:[{__meta__:{createdBy:c,createdDate:uL},contentType:E,file:uM,folderId:uN,id:uO,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:uP}],description:"Learn how to leverage the power of YUP's validation methods to validate your forms with Vee-validate.",duration:KE,author:bu,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:uL},contentType:E,file:uM,folderId:uN,id:uO,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:uP}],facebookImage:[{__meta__:{createdBy:c,createdDate:uL},contentType:E,file:uM,folderId:uN,id:uO,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:uP}],socialSharingDescription:"I just learned how to validate forms with YUP and Vee-validate on @VueMastery with @MarinaMosti",belongsToCourse:dX},{slug:"lazy-validation",status:H,date:"2021-10-19T00:00:00-07:00",title:"Lazy Validation",lessonNumber:S,free:F,image:[{__meta__:{createdBy:c,createdDate:uQ},contentType:E,file:uR,folderId:uS,id:uT,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:uU}],description:"Learn how to lazy validate a field with vee-validate on a Vue 3 form",duration:"00:05:02",author:bu,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:uQ},contentType:E,file:uR,folderId:uS,id:uT,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:uU}],facebookImage:[{__meta__:{createdBy:c,createdDate:uQ},contentType:E,file:uR,folderId:uS,id:uT,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:uU}],socialSharingDescription:"I've just learned how to use lazy validations with my vee-validate powered forms in Vue 3 with @marinaMosti on @VueMastery",belongsToCourse:dX}],lessonsCount:S,order:M,parentId:M,slug:"validating-vue3-forms",teachers:[{firstName:fn,lastName:fo,about:fp,image:[{__meta__:{createdBy:c,createdDate:fq},contentType:E,file:fr,folderId:X,id:fs,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ft}]}],title:"Validating Vue 3 Forms"},"1626279936310":{__meta__:{createdBy:c,createdDate:"2021-07-14T16:25:36.311Z",lastModifiedBy:c,lastModifiedDate:"2024-03-18T16:22:17.292Z",locale:T},completable:G,courseDependencies:J,courseLabelsBar:J,description:"Learn about Vite, the lightning-fast and lean build tool and dev server, billed as the next generation of front end tooling. Taught by its creator, Evan You.",difficulty:bM,duration:"00:44:06",free:F,id:en,image:[{__meta__:{createdBy:c,createdDate:"2021-07-14T16:24:55.117Z"},contentType:K,file:"Vite.opt.png",folderId:KF,id:1626279887773,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FVite.opt.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=Y%2BLCNMdKpsQQThOAphgsy5atfSgoR%2FzFxN5mlCkEOcJAFZLAff%2FefxSi%2Bc%2Fv5SuSkh5RVpPPBiGGsKIZzaKAPtvwiB%2BqRiHbQGl98ZSRAzi7Qdzh9EPl%2FU7Qo2zvR3KBkhFqzb%2BtTPJX0dwqpuWctS%2BaSGmU0tSxMyFn0JRRH783tGxrJH5WjEyWi933xK49kO443jfXp0tl4cXXK8iL4ipW9xcPBUs%2BBngmZNWCUArE5%2BmkwZHNZp7KsEGhWlK1Etnh3AxbjYidpdGVcVRTxMJuUzEtU1lvZm%2BMDHUUarVl6RivBL0qk%2F9uaktVPbaezZIFPnBDxGpvFJPO0SFvpw%3D%3D"},{__meta__:{createdBy:c,createdDate:"2023-05-20T15:16:23.649Z"},contentType:I,file:"lightning-fast-builds-with-vite_WH_800x424px.webp",folderId:KF,id:1684595775516,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Flightning-fast-builds-with-vite_WH_800x424px.webp?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=ZGrQ52eKszpfm%2FMrI60k7XNiAiSX4BEM0QUiVKhmtoSRgf5%2FGw0hCDwEY9t54Rq6it3ZrWP87ecBuPxYPkwtn5rw2JdGVbeT0r4qfizya6BSJP5S5PHXGpQv%2FF%2F3wI5ZVzQsWz1GC8wO4N7v0xn%2BdQHWTFVJ6%2BoOyi8%2FZdQ9RizyNiRrBb7MW98tex6Aa3manten9bfg4TLFtqCJOqD0L1%2F0WoSRLOJ0EmWYu7lYxqEV%2BJEFPofpEJ3TOa4Q0V2Tod6WHcWjLODQV6avBX2CeEX6MDCKzmvntz%2FenCamsV7R%2BkgFzIbj2I1G9QokKH6o3CJY26CLedj28gmNNwCyag%3D%3D"}],isComingSoon:F,isDraft:F,isPromoted:F,label:ad,latestAt:J,lessons:[{slug:"intro-to-vite",status:H,date:"2021-08-02T00:00:00-07:00",title:"Intro to Vite",lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:"2022-11-08T23:00:58.581Z"},contentType:E,file:"Intro to Vite 704.jpg",folderId:uV,id:1667948451837,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FIntro%20to%20Vite%20704.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=xS4IymEow9FeUyJWMbNg6Ps3Osf9AUto9tQeHvUnlRQqymWOkeE401ioGr89GqQvkokFyf9zIimAQAwGQiVP1ZWwHrNSsEPpmJNniy17FQhxM0OOqQ759iQnjarLxIhvtxlpz6vLjbpHDzKcs3Kj1xMOFqnxV62rDHgkkR1KYMzmKQFqsVsVE%2FWD945wCQJC%2BWEj99%2FzCOnj0q0%2BBjS94LKLqyDoMtLidk9Hjbwrog7NOqMaKZobnpU2ZtYVs%2FSGCNq84tDpl9a%2FB7rSweDrW0p1MYEFZt4Eao2wjzlysbEaUA3Qs6KEtDThsbm3%2FjLsCAFkVcg3jLpW2WTy7nebcw%3D%3D"}],description:"Vite Creator Evan You shares why he created this modern build tool and how it's the next generation of front-end tooling.",duration:"00:13:27",author:bi,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:KG},contentType:E,file:KH,folderId:uV,id:KI,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:KJ}],facebookImage:[{__meta__:{createdBy:c,createdDate:KG},contentType:E,file:KH,folderId:uV,id:KI,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:KJ}],socialSharingDescription:"I learned why Vite was created and the basics of getting started with it on @VueMastery",belongsToCourse:en},{slug:"css-and-debugging",status:H,date:"2021-08-10T00:00:00-07:00",title:"CSS & Debugging",lessonNumber:U,free:G,image:[{__meta__:{createdBy:c,createdDate:uW},contentType:E,file:uX,folderId:uY,id:uZ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:u_}],description:"Learn how Vite makes it easy to use CSS plugins, and how to debug",duration:Dq,author:bi,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:uW},contentType:E,file:uX,folderId:uY,id:uZ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:u_}],facebookImage:[{__meta__:{createdBy:c,createdDate:uW},contentType:E,file:uX,folderId:uY,id:uZ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:u_}],socialSharingDescription:"I learned how Vite makes it easy to use CSS plugins, and how to debug, on @VueMastery",belongsToCourse:en},{slug:"working-with-assets",status:H,date:"2021-08-23T00:00:00+07:00",title:"Working with Assets",lessonNumber:ab,free:F,image:[{__meta__:{createdBy:c,createdDate:u$},contentType:E,file:va,folderId:vb,id:vc,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:vd}],description:"Vite makes it easy to work with both imported assets and public assets",duration:"00:05:29",author:bi,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:u$},contentType:E,file:va,folderId:vb,id:vc,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:vd}],facebookImage:[{__meta__:{createdBy:c,createdDate:u$},contentType:E,file:va,folderId:vb,id:vc,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:vd}],socialSharingDescription:"I learned how Vite makes it easy to work with both imported assets and public assets on @VueMastery",belongsToCourse:en},{slug:"getting-vite-working-with-vue",status:H,date:"2021-09-06T00:00:00+07:00",title:"Getting Vite working with Vue",lessonNumber:ac,free:F,image:[{__meta__:{createdBy:c,createdDate:ve},contentType:E,file:vf,folderId:vg,id:vh,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:vi}],description:"Vite is easy to setup with Vue and has lots of optimizations for Vue apps",duration:Df,author:bi,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:ve},contentType:E,file:vf,folderId:vg,id:vh,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:vi}],facebookImage:[{__meta__:{createdBy:c,createdDate:ve},contentType:E,file:vf,folderId:vg,id:vh,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:vi}],socialSharingDescription:"I learned how Vite is easy to setup with Vue and has lots of optimizations for Vue apps on @VueMastery",belongsToCourse:en},{slug:"moving-to-vite",status:H,date:"2021-09-20T00:00:00+07:00",title:"Moving to Vite",lessonNumber:W,free:F,image:[{__meta__:{createdBy:c,createdDate:vj},contentType:E,file:vk,folderId:vl,id:vm,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:vn}],description:"There are a few things you should keep in mind when moving over an existing Vue project.",duration:Gj,author:bi,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:vj},contentType:E,file:vk,folderId:vl,id:vm,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:vn}],facebookImage:[{__meta__:{createdBy:c,createdDate:vj},contentType:E,file:vk,folderId:vl,id:vm,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:vn}],socialSharingDescription:"I just finished Evan You's Vite course on @VueMastery",belongsToCourse:en}],lessonsCount:W,order:M,parentId:M,slug:"lightning-fast-builds-with-vite",teachers:[{firstName:fw,lastName:fx,about:fy,image:[{__meta__:{createdBy:c,createdDate:fz},contentType:E,file:fA,folderId:X,id:fB,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:fC}]}],title:"Lightning Fast Builds w\u002F Vite"},"1635274544299":{__meta__:{createdBy:c,createdDate:"2021-10-26T18:55:44.299Z",lastModifiedBy:c,lastModifiedDate:"2024-03-19T20:43:37.969Z",locale:T},category:[{name:af,color:ag},{name:au,color:av}],completable:G,courseDependencies:J,courseLabelsBar:J,description:"Get a better developer experience when using TypeScript in your Vue 3 apps by leveraging the script setup syntax.",difficulty:aQ,duration:"00:24:51",free:F,id:dY,image:[{__meta__:{createdBy:c,createdDate:"2021-10-26T18:54:37.226Z"},contentType:K,file:"TypeScript Friendly Vue 3.opt.png",folderId:KK,id:1635274469404,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FTypeScript%20Friendly%20Vue%203.opt.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=cogFsm4n7G8%2BE5gS%2B1Akz6Gml3RCE%2FAigUlXvrQjyPTO8TPzqXD7DLife2Ra7YLrEDfQlJjCrXBBXw9ZMYQejpfRN6NH29AoR3Jd%2BCvx8kw8lkVRh%2B65O5Th%2Fzh48sjKzBh49ghytA%2FaQ7cRBsfvta6ix8TcRPTpZ8wJXWRVrP9NXBjSSboMWVVwqjYXEMQO7vdOiqViq2Q5976anNQhVbAl9WXCiiPFIWM7kieEw%2BKQMUqnyNeZOU9LUkhp3cPd9zZNjIEqOULkEDGlbCMe8TUActFY8VEtjHYtKLRTN5Z3tWjDlq19clkqe1i5Q8v2os2xsQ8iKQ9EBGa1Op3MTg%3D%3D"},{__meta__:{createdBy:c,createdDate:"2023-05-20T15:12:20.091Z"},contentType:I,file:"typescript-friendly-vue3_WH_800x424px.webp",folderId:KK,id:1684595533190,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Ftypescript-friendly-vue3_WH_800x424px.webp?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=Sj1pH5d%2Fwn9dhbaqp9pyeeZtXT8%2B364Jvad80tJ11q%2B0js0J6MvcLrY%2BZPs6vFmsaNStIC5dbXW%2FUGz7XlVnQltzl3iNZrCM15ZxfofK%2BpIuiOYxfqkumWA5u6lpz1oUyVYNUOU%2Fl%2B5rXncjsHyUHT9MJ5yn2n4WD9vnR%2Fi8kdDhVesiw305HXIplkMsA1Roo0tD6y1MZOOQyYzCo1C9%2BtECetsJ1IJbbvzCMwaWzSonrafOSrRPGNTfW5Wc30fLDOEHDv07pbeqvS9fChhswAeRRSLzXJfBSc6QUBPgbXLPd1HUkg8K%2FCeuAMUiBgclwJFfqjAxwyRGj%2BDo8aXIfQ%3D%3D"}],isComingSoon:F,isDraft:F,isPromoted:F,label:ad,latestAt:J,lessons:[{slug:"introduction-to-the-script-setup-syntax",status:H,date:"2021-11-30T00:00:00-08:00",title:"Introduction to the Script Setup Syntax",lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:vo},contentType:E,file:vp,folderId:vq,id:vr,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:vs}],description:"Version 3 of Vue promotes the Script Setup syntax, which was previously an experimental feature, and is now an officially supported one. With it, we have a simpler way to write components with the Composition API and a more elegant way of using TypeScript in our Vue apps.",duration:"00:02:34",author:V,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:vo},contentType:E,file:vp,folderId:vq,id:vr,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:vs}],facebookImage:[{__meta__:{createdBy:c,createdDate:vo},contentType:E,file:vp,folderId:vq,id:vr,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:vs}],socialSharingDescription:"I learned about the Script Setup Syntax with Andy Li on @VueMastery",belongsToCourse:dY},{slug:"reactive-variables-with-type-inference",status:H,date:"2021-12-07T00:00:00-08:00",title:"Reactive Variables with Type Inference",lessonNumber:U,free:G,image:[{__meta__:{createdBy:c,createdDate:vt},contentType:E,file:vu,folderId:vv,id:vw,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:vx}],description:"In this lesson, we'll start using TypeScript with ref() and reactive(). Type inference is a main theme when working with reactive variables. We'll go through some general patterns and caveats on creating reactive variables with\u002Fwithout type inference.",duration:HJ,author:V,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:vt},contentType:E,file:vu,folderId:vv,id:vw,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:vx}],facebookImage:[{__meta__:{createdBy:c,createdDate:vt},contentType:E,file:vu,folderId:vv,id:vw,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:vx}],socialSharingDescription:"I'm learning about reactive variables with type inference on @VueMastery",belongsToCourse:dY},{slug:"typing-your-callback-functions",status:H,date:"2021-12-21T00:00:00+01:00",title:"Typing Your Callback Functions",lessonNumber:ab,free:F,image:[{__meta__:{createdBy:c,createdDate:vy},contentType:E,file:vz,folderId:vA,id:vB,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:vC}],description:"Just like reactive variables, callback functions can also be easily inferred. In this lesson, we'll explore the various ways to use functions in TypeScript with the help of type inference.",duration:JK,author:V,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:vy},contentType:E,file:vz,folderId:vA,id:vB,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:vC}],facebookImage:[{__meta__:{createdBy:c,createdDate:vy},contentType:E,file:vz,folderId:vA,id:vB,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:vC}],socialSharingDescription:"I'm exploring the various ways to use functions in TypeScript with the help of type inference on @VueMastery",belongsToCourse:dY},{slug:"props-with-compiler-macros",status:H,date:"2021-12-28T00:00:00+01:00",title:"Props with Compiler Macros",lessonNumber:ac,free:F,image:[{__meta__:{createdBy:c,createdDate:vD},contentType:E,file:vE,folderId:vF,id:vG,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:vH}],description:"In this lesson, we'll look at the most important change in the script setup syntax, the new way of defining props and setting their default values.",duration:JJ,author:V,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:vD},contentType:E,file:vE,folderId:vF,id:vG,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:vH}],facebookImage:[{__meta__:{createdBy:c,createdDate:vD},contentType:E,file:vE,folderId:vF,id:vG,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:vH}],socialSharingDescription:"I'm learning about the most important change in the script setup syntax on @VueMastery",belongsToCourse:dY},{slug:"type-safe-emit",status:H,date:"2022-01-18T00:00:00+01:00",title:"Type-Safe Emit",lessonNumber:W,free:F,image:[{__meta__:{createdBy:c,createdDate:vI},contentType:E,file:vJ,folderId:vK,id:vL,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:vM}],description:"Just like props, emit has a total makeover in the script setup syntax. In this lesson, we'll pick up another compiler macro for working emit.",duration:HH,author:V,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:vI},contentType:E,file:vJ,folderId:vK,id:vL,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:vM}],facebookImage:[{__meta__:{createdBy:c,createdDate:vI},contentType:E,file:vJ,folderId:vK,id:vL,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:vM}],socialSharingDescription:"I'm learning about another compiler macro for working emit on @VueMastery",belongsToCourse:dY},{slug:"vue-vs-react-framework-philosophy",status:H,date:"2022-01-25T00:00:00+01:00",title:"(Bonus) Vue vs React: Framework Philosophy",lessonNumber:S,free:F,image:[{__meta__:{createdBy:c,createdDate:vN},contentType:E,file:vO,folderId:vP,id:vQ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:vR}],description:"In this bonus lesson, we'll explore the difference in design philosophy between the two popular JavaScript frameworks in regard to their TypeScript experiences.",duration:"00:01:35",author:V,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:vN},contentType:E,file:vO,folderId:vP,id:vQ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:vR}],facebookImage:[{__meta__:{createdBy:c,createdDate:vN},contentType:E,file:vO,folderId:vP,id:vQ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:vR}],socialSharingDescription:"I completed @VueMastery's Typescript Friendly Vue 3 course!",belongsToCourse:dY}],lessonsCount:S,order:M,parentId:M,slug:"typescript-friendly-vue3",teachers:[{firstName:ed,lastName:ee,about:J,image:[{__meta__:{createdBy:c,createdDate:ef},contentType:E,file:eg,folderId:X,id:eh,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ei}]}],title:"TypeScript Friendly Vue 3"},"1646097700549":{__meta__:{createdBy:c,createdDate:"2022-03-01T01:21:40.549Z",lastModifiedBy:c,lastModifiedDate:"2024-01-03T17:19:52.074Z",locale:T,status:"publish"},category:[{name:af,color:ag},{name:au,color:av}],completable:G,courseDependencies:J,courseLabelsBar:J,description:"Transition your state management from Vuex to Pinia with the guidance of a Vue Core Team Member.",difficulty:aQ,duration:"00:26:30",free:F,id:dQ,image:[{__meta__:{createdBy:c,createdDate:KL},contentType:K,file:KM,folderId:KN,id:KO,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:KP},{__meta__:{createdBy:c,createdDate:"2023-05-20T15:20:39.795Z"},contentType:I,file:"from-vuex-to-pinia_WH_800x424px.webp",folderId:1684595997260,id:1684596032818,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Ffrom-vuex-to-pinia_WH_800x424px.webp?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=R2ifrsexw2slldHD41SgqkbvCeFJNz5VOBnxuy%2B3YLET32NY3tTsKpPwIJpfmWsJnx6xnnUOcnaI2J%2F8rOtGaMw9ILk4KANS%2BoChH1IEBElcMqgDvDXnL26pViz%2B9QryXm%2F58Py0LutfJ5%2FzCBloY4JWW1rtRyzJ77kYb8BH5sOzbvxKGUmim7QhaHQXLrvFFFyqID%2B%2FqxFZ07381dLxPnmo7o%2F84TUapmSSuFDRWpgIAK47n6UeFs%2F9Tj5WQs93MD2lZPF8j%2BfRHceD2KkANY1fTaWFz%2FSD2BvkH2SungkCfxCO%2BXtZbVKmX76tiR0yB8PpWzNUQ5N2ZyptsKUoQQ%3D%3D"}],isComingSoon:F,isDraft:F,isPromoted:F,label:ad,lessons:[{slug:"what-is-pinia",status:H,date:"2022-03-08T00:00:00+01:00",title:KQ,lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:"2022-11-08T23:00:14.553Z"},contentType:E,file:"What is Pinia 704.jpg",folderId:vS,id:1667948407940,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FWhat%20is%20Pinia%20704.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=aLxyde%2BoU0zBxWE1dgdxl7FaYUOn9G6mzxfbCIFnXVr7eFXcC5dzLI2Dl2gBdqsDSOy4pO74NP1YanuSymV5PAo19sy%2FyhhTlURnyoQiPVSfzfYyXJM1nhTP5KWk7Il9kPYHqlSbApb6rBN4hwFMcMS1YgNtebW9C9TO4C5ebl5lqwhKiGGlUkRjscLplmo1vlLfnysRsBkBILNypxu55n%2F48tGZrwMGGRcT3NPer7OyvGrlBO3rUxHfepGXDwha9VHSxIbuktad7rXKjiADYYEis7v2BpPeQgEOBzEYPEmz7OT7gyNrwnsnG49Nwg80QRm7UwfeUASM6ljroenlEw%3D%3D"}],description:"Learn Vue 3’s new elegant state management library built upon the composition API",duration:gP,author:N,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:KR},contentType:E,file:KS,folderId:vS,id:KT,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:KU}],facebookImage:[{__meta__:{createdBy:c,createdDate:KR},contentType:E,file:KS,folderId:vS,id:KT,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:KU}],socialSharingDescription:"I'm learning about Vue 3’s new state management library called Pinia on @VueMastery",belongsToCourse:dQ},{slug:"why-migrate-from-vuex",status:H,date:"2022-03-21T00:00:00-07:00",title:"Why Migrate from Vuex?",lessonNumber:U,free:G,image:[{__meta__:{createdBy:c,createdDate:vT},contentType:E,file:vU,folderId:vV,id:vW,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:vX}],description:"Learn about the benefits of migrating from Vuex to Pinia!",duration:"00:04:15",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:vT},contentType:E,file:vU,folderId:vV,id:vW,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:vX}],facebookImage:[{__meta__:{createdBy:c,createdDate:vT},contentType:E,file:vU,folderId:vV,id:vW,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:vX}],socialSharingDescription:"I just learned about the benefits of migrating from Vuex to Pinia with @bencodezen on @VueMastery",belongsToCourse:dQ},{slug:"background-and-setup",status:H,date:"2022-04-04T00:00:00+01:00",title:"Background & Setup",lessonNumber:ab,free:F,image:[{__meta__:{createdBy:c,createdDate:vY},contentType:E,file:vZ,folderId:v_,id:v$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:wa}],description:"Learn how to setup Pinia",duration:wb,author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:vY},contentType:E,file:vZ,folderId:v_,id:v$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:wa}],facebookImage:[{__meta__:{createdBy:c,createdDate:vY},contentType:E,file:vZ,folderId:v_,id:v$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:wa}],socialSharingDescription:"I just learned how to setup Pinia with @bencodezen on @VueMastery",belongsToCourse:dQ},{slug:"defining-a-store",status:H,date:"2022-04-12T00:00:00+01:00",title:"Defining a Store",lessonNumber:ac,free:F,image:[{__meta__:{createdBy:c,createdDate:wc},contentType:E,file:wd,folderId:we,id:wf,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:wg}],description:"Learn how to define a store with Pinia!",duration:DF,author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:wc},contentType:E,file:wd,folderId:we,id:wf,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:wg}],facebookImage:[{__meta__:{createdBy:c,createdDate:wc},contentType:E,file:wd,folderId:we,id:wf,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:wg}],socialSharingDescription:"I just learned how to define a store in Pinia with @bencodezen on @VueMastery",belongsToCourse:dQ},{slug:"managing-state",status:H,date:"2022-04-19T00:00:00+01:00",title:"Managing State",lessonNumber:W,free:F,image:[{__meta__:{createdBy:c,createdDate:wh},contentType:E,file:wi,folderId:wj,id:wk,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:wl}],description:"Learn how to manage state with Pinia!",duration:kK,author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:wh},contentType:E,file:wi,folderId:wj,id:wk,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:wl}],facebookImage:[{__meta__:{createdBy:c,createdDate:wh},contentType:E,file:wi,folderId:wj,id:wk,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:wl}],socialSharingDescription:"I just learned how to manage state with Pinia with @bencodezen on @VueMastery!",belongsToCourse:dQ},{slug:"managing-getters",status:H,date:"2022-04-26T00:00:00+01:00",title:"Managing Getters",lessonNumber:S,free:F,image:[{__meta__:{createdBy:c,createdDate:wm},contentType:E,file:wn,folderId:wo,id:wp,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:wq}],description:"Learn how to manage getters in Pinia",duration:KV,author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:wm},contentType:E,file:wn,folderId:wo,id:wp,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:wq}],facebookImage:[{__meta__:{createdBy:c,createdDate:wm},contentType:E,file:wn,folderId:wo,id:wp,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:wq}],socialSharingDescription:"I just learned how to manage getters in Pinia with @bencodezen on @VueMastery",belongsToCourse:dQ},{slug:"changing-state-with-actions",status:H,date:KW,title:"Changing State with Actions",lessonNumber:ae,free:F,image:[{__meta__:{createdBy:c,createdDate:wr},contentType:E,file:ws,folderId:wt,id:wu,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:wv}],description:"Learn how to manage state with actions in Pinia!",duration:"00:05:35",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:wr},contentType:E,file:ws,folderId:wt,id:wu,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:wv}],facebookImage:[{__meta__:{createdBy:c,createdDate:wr},contentType:E,file:ws,folderId:wt,id:wu,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:wv}],socialSharingDescription:"I just learned how to manage state with actions in Pinia with @bencodezen on @VueMastery",belongsToCourse:dQ},{slug:"pinia-next-steps",status:H,date:KW,title:ep,lessonNumber:ah,free:F,image:[{__meta__:{createdBy:c,createdDate:ww},contentType:E,file:wx,folderId:wy,id:wz,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:wA}],description:"Learn what resources you should keep an eye on in your Pinia journey with @bencodezen!",duration:"00:01:11",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:ww},contentType:E,file:wx,folderId:wy,id:wz,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:wA}],facebookImage:[{__meta__:{createdBy:c,createdDate:ww},contentType:E,file:wx,folderId:wy,id:wz,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:wA}],socialSharingDescription:"I just completed the \"From Vuex to Pinia\" course with @bencodezen on @VueMastery",belongsToCourse:dQ}],lessonsCount:ah,order:M,parentId:M,slug:"from-vuex-to-pinia",teachers:[{firstName:da,lastName:db,about:dc,image:[{__meta__:{createdBy:c,createdDate:dd},contentType:E,file:de,folderId:X,id:df,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:dg}]}],title:"From Vuex to Pinia"},"1646262044365":{__meta__:{createdBy:c,createdDate:"2022-03-02T23:00:44.365Z",lastModifiedBy:c,lastModifiedDate:"2024-01-03T17:21:11.701Z",locale:T},category:[{name:af,color:ag},{name:au,color:av}],completable:G,courseDependencies:"Required: Node LTS",courseLabelsBar:J,description:"Learn this intuitive framework that includes built-in tools and structure to build Vue apps that can scale.",difficulty:aQ,duration:"00:22:20",free:F,id:dV,image:[{__meta__:{createdBy:c,createdDate:"2022-03-02T21:57:03.318Z"},contentType:K,file:"Nuxt3Essentials.opt.png",folderId:KX,id:1646258215817,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FNuxt3Essentials.opt.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=LURbvGWiynPqe8NAa23bgywv9AUc%2BTx%2B9iQoQlarppLuXvjrX1tqG%2FSEvFlbzPRBpplYOn6zZCfXJ7cqB49UFbKinoYtWe3u5jwLVQdLjSpdBaTS2hS076GgJ0Wt%2FgdpiHIX3gWzgjyRNZ%2FtsxvKFvRJtBrC0fuC7Zh8SnbxsrOUfUOwVysvszw1%2BIyMsXAlDQ9v501jIDQxPHeckt5skJhp6AWCW7qJYWyPAowBBVliBP6mTsjXLwIAi8H%2F0eeflzyFiRnULrqbWxBpqtwACrTKO630E%2BjHyXiYhefouj6k%2FZp%2FJRtYLY5IvpyxPzIvxai4gvJsnCns%2BQV8%2F1wvBA%3D%3D"},{__meta__:{createdBy:c,createdDate:"2023-05-20T15:15:09.481Z"},contentType:I,file:"nuxt-3-essentials_WH_800x424px.webp",folderId:KX,id:1684595700775,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fnuxt-3-essentials_WH_800x424px.webp?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=GXI%2BKDjmBtzmfeKkLanpgW2r0fwBWHgj8%2BjprC7CNRIMXHx6q4pHzoEFJz%2FWVNmjz%2B98ya3QP9PcKWo7u4uW8yoyted1pdGb4e0wa7Wx8xNguyrPkpUiDct0QaSy4Lv%2FP5YTmvHYPzVoK0lVLeGo0gNk82U8hM5Q0GbbsipomdgCpRlv1cWOJTfVdrk262H4eNqwmSIs6u6%2BPpK9p8Je2YilJXFrs6aA9vBc3CcyFKmVxCc%2BBWmrIe2TeM0SGYmy1LyKGe6o7yXNHSPwIS2jsQDE%2F2vybHGdczL4xI64UYfbwZ3BH1D0v3wwowAe2vGiOyXYMbwrq2QSvyFvUhGWMw%3D%3D"}],isComingSoon:F,isDraft:F,isPromoted:F,label:ad,lessons:[{slug:"nuxt-3-overview",status:H,date:"2022-06-28T00:00:00-07:00",title:"Overview",lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:wB},contentType:E,file:wC,folderId:wD,id:wE,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:wF}],description:"This first lesson describes what Nuxt is and why we need it",duration:"00:05:26",author:eK,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:wB},contentType:E,file:wC,folderId:wD,id:wE,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:wF}],facebookImage:[{__meta__:{createdBy:c,createdDate:wB},contentType:E,file:wC,folderId:wD,id:wE,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:wF}],socialSharingDescription:"I’m taking @wonder95’s new Nuxt 3 Essentials course on @VueMastery",belongsToCourse:dV},{slug:"installation-and-configuration",status:H,date:KY,title:"Installation and Configuration",lessonNumber:U,free:G,image:[{__meta__:{createdBy:c,createdDate:wG},contentType:E,file:wH,folderId:wI,id:wJ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:wK}],description:"Learn how to install and configure Nuxt",duration:wL,author:eK,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:wG},contentType:E,file:wH,folderId:wI,id:wJ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:wK}],facebookImage:[{__meta__:{createdBy:c,createdDate:wG},contentType:E,file:wH,folderId:wI,id:wJ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:wK}],socialSharingDescription:"I learned how to install and configure Nuxt with @wonder95 on @VueMastery",belongsToCourse:dV},{slug:"creating-the-url-structure-for-pages",status:H,date:KZ,title:"Creating the URL Structure For Pages",lessonNumber:ab,free:F,image:[{__meta__:{createdBy:c,createdDate:wM},contentType:E,file:wN,folderId:wO,id:wP,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:wQ}],description:"Creating the URL structure for pages using Nuxt",duration:"00:03:09",author:eK,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:wM},contentType:E,file:wN,folderId:wO,id:wP,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:wQ}],facebookImage:[{__meta__:{createdBy:c,createdDate:wM},contentType:E,file:wN,folderId:wO,id:wP,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:wQ}],socialSharingDescription:"I learned how to create the URL structure for pages using Nuxt on @VueMastery",belongsToCourse:dV},{slug:"custom-layout-and-landing-page-content",status:H,date:KZ,title:"Custom Layout and Landing Page Content",lessonNumber:ac,free:F,image:[{__meta__:{createdBy:c,createdDate:wR},contentType:E,file:wS,folderId:wT,id:wU,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:wV}],description:"Learn about custom layout and landing page content with Nuxt",duration:Ax,author:eK,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:wR},contentType:E,file:wS,folderId:wT,id:wU,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:wV}],facebookImage:[{__meta__:{createdBy:c,createdDate:wR},contentType:E,file:wS,folderId:wT,id:wU,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:wV}],socialSharingDescription:"I learned about custom layout and landing page content with Nuxt on @VueMastery",belongsToCourse:dV},{slug:"creating-the-detail-page",status:H,date:K_,title:"Creating the Detail Page",lessonNumber:W,free:F,image:[{__meta__:{createdBy:c,createdDate:wW},contentType:E,file:wX,folderId:wY,id:wZ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:w_}],description:"We learn how to create the detail page using Nuxt",duration:FW,author:eK,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:wW},contentType:E,file:wX,folderId:wY,id:wZ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:w_}],facebookImage:[{__meta__:{createdBy:c,createdDate:wW},contentType:E,file:wX,folderId:wY,id:wZ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:w_}],socialSharingDescription:"I'm learning Nuxt 3 essentials on @VueMastery",belongsToCourse:dV},{slug:"deployment",status:H,date:K_,title:"Deployment",lessonNumber:S,free:F,image:[{__meta__:{createdBy:c,createdDate:w$},contentType:E,file:xa,folderId:xb,id:xc,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:xd}],description:"There are multiple options for deploying a Nuxt site, but for this course, we are going to use a popular host called Netlify.",duration:"00:02:58",author:eK,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:w$},contentType:E,file:xa,folderId:xb,id:xc,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:xd}],facebookImage:[{__meta__:{createdBy:c,createdDate:w$},contentType:E,file:xa,folderId:xb,id:xc,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:xd}],socialSharingDescription:"I've completed the Nuxt 3 Essentials course on @VueMastery!",belongsToCourse:dV}],lessonsCount:S,order:M,parentId:M,slug:"nuxt-3-essentials",teachers:[{firstName:"Steve",lastName:"Edwards",about:"Full stack developer, and panelist of Javascript Jabber and View on Vue podcasts",image:[{__meta__:{createdBy:c,createdDate:"2022-06-24T22:02:17.533Z"},contentType:E,file:"steve edwards.jpg",folderId:X,id:1656108128874,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fsteve%20edwards.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=JXwutlavzV1NG%2BEueTHAjkoqnyr8OIkm0V1XgP26XfCCBcqgYYEDEv%2Fmm5CrexyUNS3S7kAhrenGqIAaGEJu5bMHgRa%2BA9ENPf6aT2upV0YFbWQwefTWQ9W04vXN0az0nuel0AYi4PK3ZVU4VT6AIDqtnH8WYleNF31uM0O2b6MEsU8kBa61%2Ft0WpiBvIO1CGokNmP89M0wWMZo%2FiT5CH8Wwh3Uwc9V9hTBBAMiUDJxFBbN2iwBBAaF43dFbrnQbRh%2FfiNpOxeTGmxl2Gaxie947aAdI2SWN3LQPGtC%2BepJsZw2GBtIitEKnOPtA4er8uWyckaRyM4a57RTkQrw5kA%3D%3D"}]}],title:"Nuxt 3 Essentials"},"1651863360466":{__meta__:{createdBy:c,createdDate:"2022-05-06T18:56:00.466Z",lastModifiedBy:c,lastModifiedDate:"2024-01-03T17:20:43.521Z",locale:T},category:[{name:af,color:ag},{name:au,color:av}],completable:G,courseDependencies:J,courseLabelsBar:J,description:K$,difficulty:aQ,duration:"00:51:09",free:F,id:xe,image:[{__meta__:{createdBy:c,createdDate:KL},contentType:K,file:KM,folderId:KN,id:KO,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:KP},{__meta__:{createdBy:c,createdDate:"2022-05-31T04:08:56.399Z"},contentType:K,file:"pinia-a&q.png",folderId:aR,id:1653970123683,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fpinia-a%26q.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=WuKBKXk8e1QfdkcclAtbnJzdlo02mmQeqjxvfBE5xSxb6ahvPFxhZQtiB5j5RhEmVd18peOGfWQJqN7zH7tr8FgAinFiFJjoCuxAxkzCvULzaVak4HeDjYjzvFvDT4S%2Bf9lLdnm6K2jSMeQ%2BHcbN2D%2FRqqd%2FaqlkF7zPKmL8Wn3T%2FtwreytuoCr0YJrbAkx3loAQKml2R2NepoJP%2FTUtTzD5UrIpfnOJIt%2FKqlL%2FEWQrbxDC7qKIB3MEsa06W1Hk0FxSr9daDe17IXx7qi5FpDC%2B4V0ne%2FdbbuGQqeBC9ZPQ7UrYxRSlTi%2FscqmBR9zLePQuSGBqCiAR49CvionpTQ%3D%3D"}],isComingSoon:F,isDraft:F,isPromoted:F,label:ad,lessons:[{slug:"pinia-qa-preview",status:H,date:"2022-08-24T00:00:00-07:00",title:"Pinia Q&A Preview",lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:xf},contentType:E,file:xg,folderId:eL,id:xh,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:xi}],description:"Learn from the expert in this recording of a live Q&A with Creator of Pinia, Eduardo San Martin Morote.",duration:"00:00:29",author:N,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:xf},contentType:E,file:xg,folderId:eL,id:xh,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:xi}],facebookImage:[{__meta__:{createdBy:c,createdDate:xf},contentType:E,file:xg,folderId:eL,id:xh,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:xi}],socialSharingDescription:"Check out this recording of a live Q&A with Creator of Pinia, Eduardo San Martin Morote on @VueMastery",belongsToCourse:xe},{slug:La,status:H,date:"2022-05-06T00:00:00+01:00",title:Lb,lessonNumber:U,free:F,image:[{__meta__:{createdBy:c,createdDate:xj},contentType:E,file:xk,folderId:eL,id:xl,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:xm}],description:K$,duration:"00:50:40",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:xj},contentType:E,file:xk,folderId:eL,id:xl,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:xm}],facebookImage:[{__meta__:{createdBy:c,createdDate:xj},contentType:E,file:xk,folderId:eL,id:xl,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:xm}],socialSharingDescription:"I just watched the Pinia Q&A with @bencodezen and @posva on @VueMastery!",belongsToCourse:xe}],lessonsCount:U,order:M,parentId:M,slug:La,teachers:[{firstName:Lc,lastName:Ld,about:Le,image:[{__meta__:{createdBy:c,createdDate:Lf},contentType:E,file:Lg,folderId:X,id:Lh,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Li}]}],title:Lb},"1654196889860":{__meta__:{createdBy:c,createdDate:"2022-06-02T19:08:09.861Z",lastModifiedBy:c,lastModifiedDate:"2024-01-03T17:22:22.176Z",locale:T},category:[{name:af,color:ag},{name:au,color:av}],completable:G,courseDependencies:J,courseLabelsBar:J,description:"Learn how to write scalable Composables based on best practices from the popular VueUse library.",difficulty:aQ,duration:"00:28:16",free:F,id:eo,image:[{__meta__:{createdBy:c,createdDate:"2022-06-02T18:48:50.197Z"},contentType:K,file:"CodingBetterComposables.png",folderId:Lj,id:1654195722312,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FCodingBetterComposables.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=edytnsTpt%2B0rkEhDEdryrhQ8f%2BITiYPcwJ8JIdG36tRlaAdNFFnFjPHyfAKEpyI9rF0nXwegjT%2FuLzBCuCVAQ870M0ejU6%2F9P3yaewY1RrpLjw9RruPPj7eg0IdxHhz%2FV6Zt%2B7vFwf5nA%2F4O66aY0eh1bJ5XigfFZRhxPKO3sOIQwARHGlabQrg14huc5popkvTnS9kxZ8RlwVJ1288uVi9tpHJsLIbwn%2FO8MAW1bUAJonlB%2FSfAOcZGqbgUjgbOEy3rT6JmPtqwh%2F5qpFppkgoBo6bmnqHsxV%2FObStjqShEdu87X9CXFipenzhuc79jK%2Fy%2B4YxflEStIGjRGQR7YA%3D%3D"},{__meta__:{createdBy:c,createdDate:"2023-05-20T15:29:01.006Z"},contentType:I,file:"coding-better-composables_WH_800x424px.webp",folderId:Lj,id:1684596533396,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fcoding-better-composables_WH_800x424px.webp?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=YbFGUWf6aaZWdf00g%2F1ok3ueqxqzz%2BywllZYKXbhfKLcqNABYRI8dfXTu9lVY%2FNwwT5oQCbZqHJSO7yPCd7MwOKhjBsyoixtsjDERUvBxYlOwlmTzV3SH84n08Jx3sgnBwNEdvQnNPXHb9Fkul0NuxelZM9olhYd2C9v2mG8fOD35xaXEAx3qLY%2FSHjEwHGEFk%2FpyHuroAYGXwHKDhmKc7L2W6%2BtGouG5COzT3ypbZTSIKTCFCHkJlcJ9qV3C4qvpCoW8iL8MUzD2s1ctCFzyljO4%2BHD5xGAhpx%2BbYDjxXDvVkTsvdt1FRMlpfvk94k6ZWWUDXl%2Ff9gK%2F%2B0wh1UxCA%3D%3D"}],isComingSoon:F,isDraft:F,isPromoted:F,label:ad,lessons:[{slug:"what-is-a-composable",status:H,date:"2022-06-06T00:00:00-07:00",title:"What is a Composable?",lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:"2022-11-08T23:01:40.077Z"},contentType:E,file:"What is a composable 704.jpg",folderId:xn,id:1667948493614,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FWhat%20is%20a%20composable%20704.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=bhrjPj1A1XDLNtbigS3EetX0Bz7lKN36VUmA9SDLa6v90rVfM0x%2BKkuISF63o4a7tPQje5tA7o6sAYq%2BupU5LgBgqAncLcm0GLKXFZpGK4O%2B9uacePrskujmADzh5S7e8P7VAIZEc%2FRQGXehmPy3ClaeIh6NcM%2BGUOH5Zw6SrXNCh15O6xvdbUZtMU72%2BYMdKXlmTO%2FX7LeqLzRTzadGv6qjeQmO94sjbvp4fZ2WWuGPcLeSeXOPWhzf68TseYmo9Qb39lruppWa%2BcKry6JBjXiieLuOHiunnRwpuU095ZyHhitoYVld59Yh7ANT02qMh6c%2BzsMPHSYfmI%2BKuijVCg%3D%3D"}],description:"Composables allow us to craft well organized, transparent, and highly reusable pieces of reactive code. They're similar to React’s Hooks.",duration:"00:07:56",author:P,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:Lk},contentType:E,file:Ll,folderId:xn,id:Lm,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Ln}],facebookImage:[{__meta__:{createdBy:c,createdDate:Lk},contentType:E,file:Ll,folderId:xn,id:Lm,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Ln}],socialSharingDescription:ga,belongsToCourse:eo},{slug:"flexible-arguments",status:H,date:"2022-06-21T00:00:00-07:00",title:"Flexible Arguments",lessonNumber:U,free:G,image:[{__meta__:{createdBy:c,createdDate:xo},contentType:E,file:xp,folderId:xq,id:xr,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:xs}],description:"Learn how to use ref and unref to make your composable’s arguments even more flexible.",duration:fj,author:P,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:xo},contentType:E,file:xp,folderId:xq,id:xr,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:xs}],facebookImage:[{__meta__:{createdBy:c,createdDate:xo},contentType:E,file:xp,folderId:xq,id:xr,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:xs}],socialSharingDescription:ga,belongsToCourse:eo},{slug:"dynamic-return-values",status:H,date:KY,title:"Dynamic Return Values",lessonNumber:ab,free:F,image:[{__meta__:{createdBy:c,createdDate:xt},contentType:E,file:xu,folderId:xv,id:xw,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:xx}],description:"Another way we can make our composables powerful is by allowing for different return values.",duration:wL,author:P,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:xt},contentType:E,file:xu,folderId:xv,id:xw,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:xx}],facebookImage:[{__meta__:{createdBy:c,createdDate:xt},contentType:E,file:xu,folderId:xv,id:xw,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:xx}],socialSharingDescription:ga,belongsToCourse:eo},{slug:"start-with-the-interface",status:H,date:"2022-08-03T00:00:00-07:00",title:"Start with the Interface",lessonNumber:ac,free:F,image:[{__meta__:{createdBy:c,createdDate:xy},contentType:E,file:xz,folderId:xA,id:xB,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:xC}],description:"With 3 questions in mind we can write future-proof composables, and not have to make so many changes over time.",duration:Ku,author:P,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:xy},contentType:E,file:xz,folderId:xA,id:xB,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:xC}],facebookImage:[{__meta__:{createdBy:c,createdDate:xy},contentType:E,file:xz,folderId:xA,id:xB,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:xC}],socialSharingDescription:ga,belongsToCourse:eo},{slug:"async-without-await",status:H,date:"2022-08-15T00:00:00-07:00",title:"Async Without Await",lessonNumber:W,free:F,image:[{__meta__:{createdBy:c,createdDate:xD},contentType:E,file:xE,folderId:xF,id:xG,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:xH}],description:"This pattern and two VueUse composables provide a safer way to call asynchronous code from our setup method.",duration:"00:07:00",author:P,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:xD},contentType:E,file:xE,folderId:xF,id:xG,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:xH}],facebookImage:[{__meta__:{createdBy:c,createdDate:xD},contentType:E,file:xE,folderId:xF,id:xG,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:xH}],socialSharingDescription:"I completed the Coding Better Composables course on @VueMastery!",belongsToCourse:eo}],lessonsCount:W,order:M,parentId:M,slug:"coding-better-composables",teachers:[{firstName:dw,lastName:dx,about:dy,image:[{__meta__:{createdBy:c,createdDate:dz},contentType:E,file:dA,folderId:X,id:dB,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:dC}]}],title:"Coding Better Composables"},"1657822793111":{__meta__:{createdBy:c,createdDate:"2022-07-14T18:19:53.111Z",lastModifiedBy:c,lastModifiedDate:"2024-01-03T17:21:51.034Z",locale:T},category:[{name:af,color:ag},{name:au,color:av}],completable:G,courseDependencies:J,courseLabelsBar:J,description:"Build a blog using Nuxt 3, Nuxt Content v2, and Bulma CSS.",difficulty:aQ,duration:"00:41:11",free:F,id:du,image:[{__meta__:{createdBy:c,createdDate:"2023-02-16T14:22:14.348Z"},contentType:K,file:"Build a Blog w Nuxt Content.png",folderId:bh,id:1676557319894,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FBuild%20a%20Blog%20w%20Nuxt%20Content.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=w6JKppLj4dUun%2BPzCRISnLEqHI7ROj7qyvSLXtFlsqW7yIbHCI9uQYUYFMSOT0A0hnGMCOoPhUxldBV5rXoWHl5t3xcfPc2WgzfarkLObJmDhttQ7lFQb0N08g6hfJ9J2WSfdcFuviZLcr%2Fc%2F1IdVZxc8QNd%2FUp5IpHhJN1%2BtPBKORLx5tYKDVrl6E6vXCjot7GNewrNvPCiHNG0dUqjnrT0gEBXDJbEnpUd6E%2BX1Yv4V%2BktAk2u2Biu41NKuTqQSqzHazyoLmz0X%2BV9NPGajENCQpEaeQLeDgZd5HGE0GASS1DoqoCkoVK9bKxU7ee8fEBeAU0M%2FLr%2BpmmR2ms2NQ%3D%3D"},{__meta__:{createdBy:c,createdDate:"2022-07-14T18:18:47.826Z"},contentType:E,file:"Build a blog with Nuxt3.opt.jpg",folderId:bh,id:1657822718744,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FBuild%20a%20blog%20with%20Nuxt3.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=esvwtUody6FkXrGY8ecPdJQdnNIi%2F4XhM0%2FftCyoVoad4AMOL9La7cq6qP3Nm804hT6AstRF8lM6p9k768g8QK%2BFZa3vyuHsRskjWWs5aQ252EBjXQQOpTouZzPeG3%2BVGi6GqdgFgNXKDC4Ya1lxq0uE45yZefgbkbhKGW1m8DYQowx4wBHDzdlDJTCTdmEOJ%2Fp%2F%2FSKV5gHy%2BxsrOh%2BQY8gt8BfnW1lMAi6eOw3ZXSw%2F2PN8DmRt4Yej4FBYojL7cGwWmwMtpYBzmMVqJXJz0MQTNUvG%2BXHLWDp2Mlfp%2BFmRe4V8Qhp1l7eV6S1tg9BYSsIvhwEKMCbthYzOgffQ3w%3D%3D"}],isComingSoon:F,isDraft:F,isPromoted:F,label:ad,lessons:[{slug:"nuxt3-blog-introduction",status:H,date:"2022-07-19T00:00:00-07:00",title:cg,lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:xI},contentType:E,file:xJ,folderId:bh,id:xK,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:xL}],description:"Learn about Nuxt 3 and Nuxt Content v2!",duration:Lo,author:N,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:xI},contentType:E,file:xJ,folderId:bh,id:xK,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:xL}],facebookImage:[{__meta__:{createdBy:c,createdDate:xI},contentType:E,file:xJ,folderId:bh,id:xK,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:xL}],socialSharingDescription:"I just learned about Nuxt 3 and Nuxt Content v2 with @bencodezen on @VueMastery",belongsToCourse:du},{slug:"project-overview-and-setup",status:H,date:"2022-07-26T00:00:00-07:00",title:"Project Overview and Setup",lessonNumber:U,free:G,image:[{__meta__:{createdBy:c,createdDate:xM},contentType:E,file:xN,folderId:bh,id:xO,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:xP}],description:"Learn about the project and how to setup Nuxt Content v2!",duration:"00:03:32",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:xM},contentType:E,file:xN,folderId:bh,id:xO,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:xP}],facebookImage:[{__meta__:{createdBy:c,createdDate:xM},contentType:E,file:xN,folderId:bh,id:xO,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:xP}],socialSharingDescription:"I just learned how to setup Nuxt Content v2 with @bencodezen on @VueMastery",belongsToCourse:du},{slug:"creating-blog-posts-with-markdown",status:H,date:xQ,title:"Creating Blog Posts with Markdown",lessonNumber:ab,free:F,image:[{__meta__:{createdBy:c,createdDate:xR},contentType:E,file:xS,folderId:bh,id:xT,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:xU}],description:"Learn how to create and manage blog posts with Markdown and Nuxt Content v2!",duration:KE,author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:xR},contentType:E,file:xS,folderId:bh,id:xT,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:xU}],facebookImage:[{__meta__:{createdBy:c,createdDate:xR},contentType:E,file:xS,folderId:bh,id:xT,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:xU}],socialSharingDescription:"I learned how to create and manage content with Markdown and Nuxt Content v2 with @VueMastery!",belongsToCourse:du},{slug:"using-vue-components-in-markdown",status:H,date:xQ,title:"Using Vue Components in Markdown",lessonNumber:ac,free:F,image:[{__meta__:{createdBy:c,createdDate:xV},contentType:E,file:xW,folderId:bh,id:xX,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:xY}],description:"Learn about Vue components in Markdown with Nuxt 3 and Nuxt Content v2!",duration:pP,author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:xV},contentType:E,file:xW,folderId:bh,id:xX,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:xY}],facebookImage:[{__meta__:{createdBy:c,createdDate:xV},contentType:E,file:xW,folderId:bh,id:xX,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:xY}],socialSharingDescription:"I just learned how to use Vue components in Markdown with Nuxt Content v2 with @bencodezen on @VueMastery",belongsToCourse:du},{slug:"build-the-blog-post-list-component",status:H,date:"2022-08-23T00:00:00-07:00",title:"Build the Blog Post List Component",lessonNumber:W,free:F,image:[{__meta__:{createdBy:c,createdDate:xZ},contentType:E,file:x_,folderId:bh,id:x$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ya}],description:"Learn about how to query content and build a blog post list component with Nuxt 3 and Nuxt Content v2!",duration:B_,author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:xZ},contentType:E,file:x_,folderId:bh,id:x$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ya}],facebookImage:[{__meta__:{createdBy:c,createdDate:xZ},contentType:E,file:x_,folderId:bh,id:x$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ya}],socialSharingDescription:"I just learned how to query content from Nuxt Content v2 with @bencodezen on @VueMastery",belongsToCourse:du},{slug:"build-the-blog-post-detail-page",status:H,date:"2022-08-30T00:00:00-07:00",title:"Build the Blog Post Detail Page",lessonNumber:S,free:F,image:[{__meta__:{createdBy:c,createdDate:yb},contentType:E,file:yc,folderId:bh,id:yd,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ye}],description:"Learn about how to render Markdown content with Nuxt 3 and Nuxt Content v2!",duration:"00:10:27",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:yb},contentType:E,file:yc,folderId:bh,id:yd,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ye}],facebookImage:[{__meta__:{createdBy:c,createdDate:yb},contentType:E,file:yc,folderId:bh,id:yd,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ye}],socialSharingDescription:"I just learned how to render Markdown content with Nuxt Content v2 with @bencodezen on @VueMastery",belongsToCourse:du},{slug:"deploying-your-blog",status:H,date:"2022-09-06T00:00:00-07:00",title:"Deploying Your Blog",lessonNumber:ae,free:F,image:[{__meta__:{createdBy:c,createdDate:yf},contentType:E,file:yg,folderId:bh,id:yh,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:yi}],description:"Learn about how to deploy a blog built with Nuxt 3 and Nuxt Content v2 on Netlify!",duration:gZ,author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:yf},contentType:E,file:yg,folderId:bh,id:yh,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:yi}],facebookImage:[{__meta__:{createdBy:c,createdDate:yf},contentType:E,file:yg,folderId:bh,id:yh,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:yi}],socialSharingDescription:"I just learned how to deploy my @nuxt_js content v2 blog with @bencodezen on @VueMastery",belongsToCourse:du},{slug:"final-thoughts",status:H,date:xQ,title:"Final Thoughts",lessonNumber:ah,free:F,image:[{__meta__:{createdBy:c,createdDate:yj},contentType:E,file:yk,folderId:bh,id:yl,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ym}],description:"Learn about the next steps of where to take your fundamental skills of working with Nuxt 3 and Nuxt Content v2!",duration:"00:01:03",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:yj},contentType:E,file:yk,folderId:bh,id:yl,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ym}],facebookImage:[{__meta__:{createdBy:c,createdDate:yj},contentType:E,file:yk,folderId:bh,id:yl,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ym}],socialSharingDescription:"I just finished a course on how to build a blog with @nuxt_js 3 and Nuxt Content v2 with @bencodezen on @VueMastery!",belongsToCourse:du}],lessonsCount:ah,order:M,parentId:M,slug:"build-a-blog-nuxt3-content",teachers:[{firstName:da,lastName:db,about:dc,image:[{__meta__:{createdBy:c,createdDate:dd},contentType:E,file:de,folderId:X,id:df,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:dg}]}],title:"Build a Blog w\u002F Nuxt 3 Content"},"1660325997345":{__meta__:{createdBy:c,createdDate:"2022-08-12T17:39:57.345Z",lastModifiedBy:c,lastModifiedDate:"2024-01-03T17:22:38.468Z",locale:T},category:[{name:au,color:av}],completable:G,courseDependencies:J,courseLabelsBar:J,description:"Modernize your styles with Tailwind, the popular utility-first CSS framework.",difficulty:aQ,duration:"00:37:43",free:F,id:dR,image:[{__meta__:{createdBy:c,createdDate:"2022-08-12T16:20:03.738Z"},contentType:E,file:"Utility-First CSS with Tailwind.jpg",folderId:aR,id:1660321195167,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FUtility-First%20CSS%20with%20Tailwind.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=kqVpZFCgK1Va0PmxhFrTVTrf2gEkyy0D7Y8cnNLVGr5WuFpm5wTbVkoufG2vKFXRcrX1B7kD3oywF4HsIISqLxRjNZaeV0AzfNVhFkGczeqHt6f8aDPU3DVOwOmD0OwitBplzV1gV%2FN20%2B6%2BMerb4cQpL2%2FeoN0u6NjLKWvXUPYOeerKt%2Bw%2BBudhx4PckTRrQY0F531QFHScy7UeIDIUhyVEXAPI9PqMNprgD5h%2BkMoY2XvgFXWoSRrX24zg5VzifLd%2F9FEaIkEE0WmICj81BjsluQKbsAgWXOsOiA0RCQ8HkvvN738nB%2B5Qfq4GfOEY9dc3sTLaaOdeVjkIsAa4eA%3D%3D"}],isComingSoon:F,isDraft:F,isPromoted:F,label:ad,lessons:[{slug:"what-is-utility-first-css",status:H,date:yn,title:"What is Utility-First CSS?",lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:yo},contentType:E,file:yp,folderId:yq,id:yr,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ys}],description:"Learn how to modernize your styles with Tailwind, the popular utility-first CSS framework",duration:"00:03:56",author:V,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:yo},contentType:E,file:yp,folderId:yq,id:yr,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ys}],facebookImage:[{__meta__:{createdBy:c,createdDate:yo},contentType:E,file:yp,folderId:yq,id:yr,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ys}],socialSharingDescription:Lp,belongsToCourse:dR},{slug:"setting-up-the-project",status:H,date:yn,title:"Setting up the project",lessonNumber:U,free:G,image:[{__meta__:{createdBy:c,createdDate:yt},contentType:E,file:yu,folderId:yv,id:yw,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:yx}],description:"In this lesson, we’ll be setting up Tailwind for a Vue.js project",duration:Lq,author:V,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:yt},contentType:E,file:yu,folderId:yv,id:yw,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:yx}],facebookImage:[{__meta__:{createdBy:c,createdDate:yt},contentType:E,file:yu,folderId:yv,id:yw,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:yx}],socialSharingDescription:"I'm learning how to setup Tailwind for a Vue.js project on @VueMastery",belongsToCourse:dR},{slug:"basic-utility-classes",status:H,date:yn,title:"Basic Utility Classes",lessonNumber:ab,free:F,image:[{__meta__:{createdBy:c,createdDate:yy},contentType:E,file:yz,folderId:yA,id:yB,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:yC}],description:"In this lesson, we'll start the refactoring with the App.vue component.",duration:"00:05:45",author:V,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:yy},contentType:E,file:yz,folderId:yA,id:yB,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:yC}],facebookImage:[{__meta__:{createdBy:c,createdDate:yy},contentType:E,file:yz,folderId:yA,id:yB,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:yC}],socialSharingDescription:Lp,belongsToCourse:dR},{slug:"responsive-design",status:H,date:Lr,title:"Responsive Design",lessonNumber:ac,free:F,image:[{__meta__:{createdBy:c,createdDate:yD},contentType:E,file:yE,folderId:yF,id:yG,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:yH}],description:"In this lesson, we'll refactor the ProductDisplay component with its responsive design.",duration:jZ,author:V,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:yD},contentType:E,file:yE,folderId:yF,id:yG,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:yH}],facebookImage:[{__meta__:{createdBy:c,createdDate:yD},contentType:E,file:yE,folderId:yF,id:yG,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:yH}],socialSharingDescription:"I'm learning about Tailwind's responsive design on @VueMastery",belongsToCourse:dR},{slug:"dynamic-style",status:H,date:Lr,title:"Dynamic Style",lessonNumber:W,free:F,image:[{__meta__:{createdBy:c,createdDate:yI},contentType:E,file:yJ,folderId:yK,id:yL,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:yM}],description:"The problems we're dealing with in this lesson are all related to dynamic styling with the class binding.",duration:fi,author:V,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:yI},contentType:E,file:yJ,folderId:yK,id:yL,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:yM}],facebookImage:[{__meta__:{createdBy:c,createdDate:yI},contentType:E,file:yJ,folderId:yK,id:yL,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:yM}],socialSharingDescription:"I'm learning about Tailwind with Vue's class binding on @VueMastery",belongsToCourse:dR},{slug:"customizing-tailwind",status:H,date:"2022-09-13T00:00:00-07:00",title:"Customizing Tailwind",lessonNumber:S,free:F,image:[{__meta__:{createdBy:c,createdDate:yN},contentType:E,file:yO,folderId:yP,id:yQ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:yR}],description:"The color-related classes that we’re currently using are not very user-friendly, so let’s define some custom names for the colors we use.",duration:Ls,author:V,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:yN},contentType:E,file:yO,folderId:yP,id:yQ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:yR}],facebookImage:[{__meta__:{createdBy:c,createdDate:yN},contentType:E,file:yO,folderId:yP,id:yQ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:yR}],socialSharingDescription:"I'm learning how to customize Tailwind on @VueMastery",belongsToCourse:dR},{slug:"custom-class",status:H,date:Lt,title:"Custom Class",lessonNumber:ae,free:F,image:[{__meta__:{createdBy:c,createdDate:yS},contentType:E,file:yT,folderId:yU,id:yV,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:yW}],description:"Whenever you need something unique\u002Fspecific, it's fine to create a custom class. We'll look at various approaches of create custom classes.",duration:"00:04:53",author:V,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:yS},contentType:E,file:yT,folderId:yU,id:yV,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:yW}],facebookImage:[{__meta__:{createdBy:c,createdDate:yS},contentType:E,file:yT,folderId:yU,id:yV,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:yW}],socialSharingDescription:"I'm learning how to create custom classes with Tailwind on @VueMastery",belongsToCourse:dR},{slug:"code-reuse-patterns",status:H,date:Lt,title:"Code-Reuse Patterns",lessonNumber:ah,free:F,image:[{__meta__:{createdBy:c,createdDate:yX},contentType:E,file:yY,folderId:yZ,id:y_,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:y$}],description:"In this lesson, we'll talk about how to extract and reuse styles without breaking the rules of the utility-first approach.",duration:s_,author:V,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:yX},contentType:E,file:yY,folderId:yZ,id:y_,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:y$}],facebookImage:[{__meta__:{createdBy:c,createdDate:yX},contentType:E,file:yY,folderId:yZ,id:y_,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:y$}],socialSharingDescription:"I'm learning how to extract and reuse styles with Tailwind on @VueMastery",belongsToCourse:dR}],lessonsCount:ah,order:M,parentId:M,slug:"utility-first-css-with-tailwind",teachers:[{firstName:ed,lastName:ee,about:J,image:[{__meta__:{createdBy:c,createdDate:ef},contentType:E,file:eg,folderId:X,id:eh,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ei}]}],title:"Utility-First CSS with Tailwind"},"1660858428616":{__meta__:{createdBy:c,createdDate:"2022-08-18T21:33:48.616Z",lastModifiedBy:c,lastModifiedDate:"2024-01-03T17:19:05.959Z",locale:T},category:[{name:af,color:ag},{name:au,color:av}],completable:G,courseDependencies:J,courseLabelsBar:J,description:"Learn the fundamentals of Pinia, Vue's new state management library, by building a simple Todo List App.",difficulty:bM,duration:"00:18:03",free:F,id:em,image:[{__meta__:{createdBy:c,createdDate:"2023-02-16T14:15:54.934Z"},contentType:K,file:"Pinia Fundamentals.png",folderId:Lu,id:1676556933121,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FPinia%20Fundamentals.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=k30KKSOHg55qnLxNnmjE2iw%2FvQ9o8c5K8JK79%2Bja%2BgociLC%2BIMpfP67LuwfWP92i4HBfAF94rlXkrCRsWyk6yW5sJ853Oia0JPDbYGRSG7BtL%2FIy8GiVDtvtBPWEaT2fdPs1ihCW3zcFXTklL0851S1OZHJl1ZwY2lqeYudhuM8jpl6ugcV600D%2FKGhtzUsQmzEW8zIjMdqbNtms%2FJQEpMdJTg%2B15Ma3zVcoQfYlpuSmzyhr3fi%2BWhFML0Xvuk9MpugmT%2FgsQeq6o1XnOlzCsgkluEtjsoB2b3qr3agBUu%2Fbvg5lD4aEft6%2FWHGmZEuWhlB2Vx1LBrcPlnNscjm9Hw%3D%3D"},{__meta__:{createdBy:c,createdDate:"2022-08-18T20:18:00.797Z"},contentType:E,file:"Pinia Fundamentals.jpg",folderId:Lu,id:1660853872955,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FPinia%20Fundamentals.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=ITwKzM7zgXIPbTHvJXx523GWlJH1JXh10%2Bpm7tXwYKXGUyGMdPx73G4qtkrr9W%2BRMxNuBLHRsEgbY0F30H1vXTlWeKurb8ZV9%2Fa%2BmkR2uVBZKvyKPznlma%2B9o79XG1j49Y3cVmaShkwew78e0g7%2BiEUAsitP1EuCwKsDbvMnJoW6YhGftMogyattrorJYoP0E%2FmtUa1uU6FsGOukuI%2Fg5cKzNAzd4f1g5SK3Ik%2BmMMWngi0Hiuy%2FK38z2TsbfzsStmeWIXvO9oZRerKRtlTHDY32jqSFz4eXzc%2F37EHo1AK54NM9pGYCbGpjv%2Blqs77Y9qK6YHZa1eD4yGHiVOC2Iw%3D%3D"}],isComingSoon:F,isDraft:F,isPromoted:F,label:ad,lessons:[{slug:"fundamentals-what-is-pinia",status:H,date:gb,title:KQ,lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:za},contentType:E,file:zb,folderId:zc,id:zd,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ze}],description:e_,duration:Lv,author:bK,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:za},contentType:E,file:zb,folderId:zc,id:zd,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ze}],facebookImage:[{__meta__:{createdBy:c,createdDate:za},contentType:E,file:zb,folderId:zc,id:zd,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ze}],socialSharingDescription:e$,belongsToCourse:em},{slug:"creating-our-first-store",status:H,date:"2022-08-21T00:00:00-07:00",title:"Creating our first store",lessonNumber:U,free:G,image:[{__meta__:{createdBy:c,createdDate:zf},contentType:E,file:zg,folderId:zh,id:zi,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:zj}],description:e_,duration:Lw,author:bK,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:zf},contentType:E,file:zg,folderId:zh,id:zi,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:zj}],facebookImage:[{__meta__:{createdBy:c,createdDate:zf},contentType:E,file:zg,folderId:zh,id:zi,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:zj}],socialSharingDescription:e$,belongsToCourse:em},{slug:"mutating-state-with-actions",status:H,date:gb,title:"Mutating state with Actions",lessonNumber:ab,free:F,image:[{__meta__:{createdBy:c,createdDate:zk},contentType:E,file:zl,folderId:zm,id:zn,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:zo}],description:e_,duration:HI,author:bK,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:zk},contentType:E,file:zl,folderId:zm,id:zn,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:zo}],facebookImage:[{__meta__:{createdBy:c,createdDate:zk},contentType:E,file:zl,folderId:zm,id:zn,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:zo}],socialSharingDescription:e$,belongsToCourse:em},{slug:"reactive-properties-in-pinia",status:H,date:gb,title:"Reactive Properties in Pinia",lessonNumber:ac,free:F,image:[{__meta__:{createdBy:c,createdDate:zp},contentType:E,file:zq,folderId:zr,id:zs,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:zt}],description:e_,duration:Lq,author:bK,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:zp},contentType:E,file:zq,folderId:zr,id:zs,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:zt}],facebookImage:[{__meta__:{createdBy:c,createdDate:zp},contentType:E,file:zq,folderId:zr,id:zs,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:zt}],socialSharingDescription:e$,belongsToCourse:em},{slug:"deleting-state-from-the-store",status:H,date:gb,title:"Deleting state from the store",lessonNumber:W,free:F,image:[{__meta__:{createdBy:c,createdDate:zu},contentType:E,file:zv,folderId:zw,id:zx,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:zy}],description:e_,duration:Lx,author:bK,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:zu},contentType:E,file:zv,folderId:zw,id:zx,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:zy}],facebookImage:[{__meta__:{createdBy:c,createdDate:zu},contentType:E,file:zv,folderId:zw,id:zx,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:zy}],socialSharingDescription:e$,belongsToCourse:em}],lessonsCount:W,order:M,parentId:M,slug:"pinia-fundamentals",teachers:[{firstName:zz,lastName:zA,about:zB,image:[{__meta__:{createdBy:c,createdDate:zC},contentType:E,file:zD,folderId:X,id:zE,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:zF}]}],title:"Pinia Fundamentals"},"1661271290287":{__meta__:{createdBy:c,createdDate:"2022-08-23T16:14:50.287Z",lastModifiedBy:c,lastModifiedDate:"2024-03-19T21:03:19.334Z",locale:T},category:[{name:af,color:ag},{name:au,color:av}],completable:G,courseDependencies:J,courseLabelsBar:J,description:"Explore more complex use cases and best practices of state management with Pinia.",difficulty:aQ,duration:"00:24:05",free:F,id:dL,image:[{__meta__:{createdBy:c,createdDate:eM},contentType:E,file:eN,folderId:eO,id:eP,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:eQ}],isComingSoon:F,isDraft:F,isPromoted:F,label:ad,latestAt:J,lessons:[{slug:"pinia-patterns-intro",status:H,date:"2023-03-01T00:00:00+01:00",title:zG,lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:ci},contentType:E,file:cj,folderId:ck,id:cl,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cm}],description:"Learn the pro-level patterns you’ll want to know when using Vue’s state management library",duration:"00:02:00",author:bK,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:ci},contentType:E,file:cj,folderId:ck,id:cl,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cm}],facebookImage:[{__meta__:{createdBy:c,createdDate:ci},contentType:E,file:cj,folderId:ck,id:cl,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cm}],socialSharingDescription:"I'm learning the pro-level patterns of Pinia with @sandra_rodgers_ on @VueMastery",belongsToCourse:dL},{slug:"when-to-use-pinia",status:H,date:"2023-03-14T00:00:00-07:00",title:"When to use Pinia",lessonNumber:U,free:G,image:[{__meta__:{createdBy:c,createdDate:ci},contentType:E,file:cj,folderId:ck,id:cl,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cm}],description:"Learn how to decide when Pinia is a good choice for your application.",duration:"00:02:07",author:bK,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:ci},contentType:E,file:cj,folderId:ck,id:cl,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cm}],facebookImage:[{__meta__:{createdBy:c,createdDate:ci},contentType:E,file:cj,folderId:ck,id:cl,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cm}],socialSharingDescription:"I’m learning about when Pinia is a good choice for my application with @sandra_rodgers_ on @VueMastery",belongsToCourse:dL},{slug:"options-vs-setup-stores",status:H,date:fa,title:"Options vs Setup Stores",lessonNumber:ab,free:F,image:[{__meta__:{createdBy:c,createdDate:ci},contentType:E,file:cj,folderId:ck,id:cl,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cm}],description:"Learn about two different ways you could define and use a store - the Options store or the Setup store.",duration:"00:02:29",author:bK,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:ci},contentType:E,file:cj,folderId:ck,id:cl,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cm}],facebookImage:[{__meta__:{createdBy:c,createdDate:ci},contentType:E,file:cj,folderId:ck,id:cl,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cm}],socialSharingDescription:"I'm learning about two different ways to define and use a store - the Options store or the Setup store - with @sandra_rodgers_ on @VueMastery",belongsToCourse:dL},{slug:"modular-stores",status:H,date:fa,title:"Modular Stores",lessonNumber:ac,free:F,image:[{__meta__:{createdBy:c,createdDate:ci},contentType:E,file:cj,folderId:ck,id:cl,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cm}],description:"Learn how to create stores focused around logical concerns and how to use one store inside another store.",duration:fj,author:bK,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:ci},contentType:E,file:cj,folderId:ck,id:cl,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cm}],facebookImage:[{__meta__:{createdBy:c,createdDate:ci},contentType:E,file:cj,folderId:ck,id:cl,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cm}],socialSharingDescription:"I'm learning how to create stores focused around logical concerns and how to use one store inside another store with @sandra_rodgers_ on @VueMastery",belongsToCourse:dL},{slug:"accessing-state",status:H,date:fa,title:"Accessing State",lessonNumber:W,free:F,image:[{__meta__:{createdBy:c,createdDate:ci},contentType:E,file:cj,folderId:ck,id:cl,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cm}],description:"Learn how to access state in an Options Store, a Setup Store, or from a component; bonus: how to bind store data with v-model!",duration:"00:03:29",author:bK,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:ci},contentType:E,file:cj,folderId:ck,id:cl,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cm}],facebookImage:[{__meta__:{createdBy:c,createdDate:ci},contentType:E,file:cj,folderId:ck,id:cl,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cm}],socialSharingDescription:"I'm learning how to access state in an Options Store, a Setup Store, or from a component with @sandra_rodgers_ on @VueMastery",belongsToCourse:dL},{slug:"mutating-state",status:H,date:fa,title:"Mutating State",lessonNumber:S,free:F,image:[{__meta__:{createdBy:c,createdDate:ci},contentType:E,file:cj,folderId:ck,id:cl,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cm}],description:"Learn how to mutate state directly, with actions, or with the $patch method. Bonus: Pinia’s $reset and $onAction methods!",duration:Ly,author:bK,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:eM},contentType:E,file:eN,folderId:eO,id:eP,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:eQ}],facebookImage:[{__meta__:{createdBy:c,createdDate:eM},contentType:E,file:eN,folderId:eO,id:eP,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:eQ}],socialSharingDescription:"I'm learning how to mutate state directly, with actions, or with the $patch method with @sandra_rodgers_ on @VueMastery",belongsToCourse:dL},{slug:"pinia-plugins",status:H,date:fa,title:"Pinia Plugins",lessonNumber:ae,free:F,image:[{__meta__:{createdBy:c,createdDate:eM},contentType:E,file:eN,folderId:eO,id:eP,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:eQ}],description:"Learn three useful patterns for creating plugins to add functionality to the Pinia API",duration:"00:06:02",author:bK,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:eM},contentType:E,file:eN,folderId:eO,id:eP,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:eQ}],facebookImage:[{__meta__:{createdBy:c,createdDate:eM},contentType:E,file:eN,folderId:eO,id:eP,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:eQ}],socialSharingDescription:"I'm learning three useful patterns for creating plugins to add functionality to the Pinia API with @sandra_rodgers_ on @VueMastery",belongsToCourse:dL}],lessonsCount:ae,order:M,parentId:M,slug:"proven-pinia-patterns",teachers:[{firstName:zz,lastName:zA,about:zB,image:[{__meta__:{createdBy:c,createdDate:zC},contentType:E,file:zD,folderId:X,id:zE,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:zF}]}],title:"Proven Pinia Patterns"},"1661806293450":{__meta__:{createdBy:c,createdDate:"2022-08-29T20:51:33.450Z",lastModifiedBy:c,lastModifiedDate:"2024-03-18T16:22:39.712Z",locale:T},category:[{name:af,color:ag},{name:au,color:av}],completable:G,courseDependencies:J,courseLabelsBar:J,description:"Speed up your component tests with Vitest, the blazing fast unit test framework powered by Vite.js.",difficulty:bM,duration:"00:45:33",free:F,id:dK,image:[{__meta__:{createdBy:c,createdDate:bv},contentType:E,file:bw,folderId:bx,id:by,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bz}],isComingSoon:F,isDraft:F,isPromoted:F,label:ad,latestAt:J,lessons:[{slug:"intro-to-vitest",status:H,date:"2023-07-14T00:00:00-07:00",title:"Intro to Vitest",lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:bv},contentType:E,file:bw,folderId:bx,id:by,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bz}],description:"In this course, we will explore Vitest, a modern unit test framework powered by Vite, with features including a built-in test runner, snapshots, code coverage, and instant watch mode. We will learn how to set up and test components, mock API calls, and transition from Jest to Vitest. Vitest removes the extra configuration needed to write unit tests, making it faster and leaner for modern web projects.",duration:"00:02:11",author:"David Chuka Nwadiogbu",lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:bv},contentType:E,file:bw,folderId:bx,id:by,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bz}],facebookImage:[{__meta__:{createdBy:c,createdDate:bv},contentType:E,file:bw,folderId:bx,id:by,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bz}],socialSharingDescription:"I'm learning about quick tests with Vitest on @VueMastery",belongsToCourse:dK},{slug:"writing-your-first-test",status:H,date:"2023-07-19T00:00:00-07:00",title:"Writing your first test",lessonNumber:U,free:G,image:[{__meta__:{createdBy:c,createdDate:bv},contentType:E,file:bw,folderId:bx,id:by,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bz}],description:"In this lesson, we learn how to set up and configure Vitest in a Vue app, write and run tests with Vitest, and test a demo component that displays toast notifications. The lesson includes an introduction to Vitest, instructions for installing it, and a tutorial on writing and running a simple test.",duration:Kr,author:bL,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:bv},contentType:E,file:bw,folderId:bx,id:by,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bz}],facebookImage:[{__meta__:{createdBy:c,createdDate:bv},contentType:E,file:bw,folderId:bx,id:by,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bz}],socialSharingDescription:"I'm learning how to write my first test with Vitest on @VueMastery",belongsToCourse:dK},{slug:"testing-our-components",status:H,date:"2023-07-20T00:00:00-07:00",title:"Testing our components",lessonNumber:ab,free:F,image:[{__meta__:{createdBy:c,createdDate:bv},contentType:E,file:bw,folderId:bx,id:by,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bz}],description:"In this lesson, we’re going to build out our notification component and test that it works as intended.",duration:"00:10:11",author:bL,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:bv},contentType:E,file:bw,folderId:bx,id:by,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bz}],facebookImage:[{__meta__:{createdBy:c,createdDate:bv},contentType:E,file:bw,folderId:bx,id:by,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bz}],socialSharingDescription:"I'm learning how to test components with Vitest on @VueMastery",belongsToCourse:dK},{slug:"snapshots",status:H,date:Lz,title:"Snapshots",lessonNumber:ac,free:F,image:[{__meta__:{createdBy:c,createdDate:bv},contentType:E,file:bw,folderId:bx,id:by,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bz}],description:"Snapshot testing allows you to take a \"snapshot\" of the expected output of a component and compare it to the actual output produced during testing.",duration:"00:03:34",author:bL,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:bv},contentType:E,file:bw,folderId:bx,id:by,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bz}],facebookImage:[{__meta__:{createdBy:c,createdDate:bv},contentType:E,file:bw,folderId:bx,id:by,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bz}],socialSharingDescription:"I'm learning about snapshot testing with Vitest on @VueMastery",belongsToCourse:dK},{slug:"testing-api-calls-mocking",status:H,date:Lz,title:"Testing API Calls (mocking)",lessonNumber:W,free:F,image:[{__meta__:{createdBy:c,createdDate:bv},contentType:E,file:bw,folderId:bx,id:by,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bz}],description:"Mocking is a technique used in software testing to simulate the behavior of objects or systems that the software being tested depends on.",duration:jl,author:bL,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:bv},contentType:E,file:bw,folderId:bx,id:by,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bz}],facebookImage:[{__meta__:{createdBy:c,createdDate:bv},contentType:E,file:bw,folderId:bx,id:by,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bz}],socialSharingDescription:"I'm learning about testing API calls with Vitest on @VueMastery",belongsToCourse:dK},{slug:"testing-a-page-e2e-testing",status:H,date:"2023-07-31T00:00:00-07:00",title:"Testing a Page (E2E Testing)",lessonNumber:S,free:F,image:[{__meta__:{createdBy:c,createdDate:bv},contentType:E,file:bw,folderId:bx,id:by,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bz}],description:"Writing E2E tests can help you detect bugs and issues that occur when components interact with each other that might have gone unnoticed in unit or integration testing.",duration:"00:10:45",author:bL,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:bv},contentType:E,file:bw,folderId:bx,id:by,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bz}],facebookImage:[{__meta__:{createdBy:c,createdDate:bv},contentType:E,file:bw,folderId:bx,id:by,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bz}],socialSharingDescription:"I'm learning how to test a page with Vitest on @VueMastery",belongsToCourse:dK},{slug:"vitest-ui-coverage-and-jest-migration",status:H,date:LA,title:"Vitest UI, Coverage & Jest Migration",lessonNumber:ae,free:F,image:[{__meta__:{createdBy:c,createdDate:bv},contentType:E,file:bw,folderId:bx,id:by,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bz}],description:"Explore some extra features Vitest provides such as the Vitest UI and adding coverage to our test.",duration:KD,author:bL,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:bv},contentType:E,file:bw,folderId:bx,id:by,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bz}],facebookImage:[{__meta__:{createdBy:c,createdDate:bv},contentType:E,file:bw,folderId:bx,id:by,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bz}],socialSharingDescription:"I just completed the Quick Tests with Vitest course on @VueMastery!",belongsToCourse:dK}],lessonsCount:ae,order:M,parentId:M,slug:"quick-tests-with-vitest",teachers:[{firstName:gc,lastName:gd,about:ge,image:[{__meta__:{createdBy:c,createdDate:gf},contentType:E,file:gg,folderId:gh,id:gi,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:gj}]}],title:"Quick Tests with Vitest"},"1666919626046":{__meta__:{createdBy:c,createdDate:"2022-10-28T01:13:46.046Z",lastModifiedBy:c,lastModifiedDate:"2024-01-03T17:19:24.156Z",locale:T},category:[{name:af,color:ag},{name:au,color:av}],completable:G,courseDependencies:J,courseLabelsBar:J,description:"Rapidly learn Vue by applying the React knowledge you already have.",difficulty:bM,duration:"00:27:15",free:F,id:es,image:[{__meta__:{createdBy:c,createdDate:"2022-10-28T01:13:01.544Z"},contentType:E,file:"Vue for React Devs - Similarities.jpg",folderId:1666919541388,id:1666919574645,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FVue%20for%20React%20Devs%20-%20Similarities.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=QrrN5%2F%2BcrgOIxtEmNXLYMBtxFH4F7tC%2BYvnfQwcCF%2BTJuqo43V7FSmWF1D9MPvmDiUR97vh%2FG4toHyTQFMkmw%2BZupt6595UZy1cf%2BVOHHO3UvDJFPscDVszYipzbv9MVQ9ZlIgO3RZ8aNeURQGbas1Yl%2Fc7QlQHLLoCkvst%2BZcIcnwVqsuDYuJsneBe%2F44gK4dKPxedRkqQ1DJXgMIaRgFdv9ihx6rD%2FWqVpuFn7vxpqA7YTIvNDSSqdDQyQDmYKUlTQ06oDxDzrIFDsXaCvfKNIKc2IT4TVXrS6gypVMEdgPgRnYr7GjBDXt3hTzZw6KDU%2FaATFToW232Ta9krRBQ%3D%3D"}],isComingSoon:F,isDraft:F,isPromoted:F,label:ad,lessons:[{slug:"intro-to-vue-for-react-devs",status:H,date:fb,title:"Intro to Vue for React Devs",lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:zH},contentType:E,file:zI,folderId:zJ,id:zK,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:zL}],description:"If you have experiences using React, you don't have to learn Vue.js from scratch like everyone else. You can leverage your React experience to expedite your Vue.js learning progress.",duration:gP,author:V,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:zH},contentType:E,file:zI,folderId:zJ,id:zK,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:zL}],facebookImage:[{__meta__:{createdBy:c,createdDate:zH},contentType:E,file:zI,folderId:zJ,id:zK,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:zL}],socialSharingDescription:"I'm learning how to leverage my React experience to expedite my Vue.js learning progress on @VueMastery",belongsToCourse:es},{slug:"generating-the-app",status:H,date:fb,title:"Generating the app",lessonNumber:U,free:G,image:[{__meta__:{createdBy:c,createdDate:zM},contentType:E,file:zN,folderId:zO,id:zP,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:zQ}],description:"After watching this lesson, you will know which CLI tool to use for Vue.js app development.",duration:Lw,author:V,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:zM},contentType:E,file:zN,folderId:zO,id:zP,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:zQ}],facebookImage:[{__meta__:{createdBy:c,createdDate:zM},contentType:E,file:zN,folderId:zO,id:zP,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:zQ}],socialSharingDescription:"I learned which CLI tool to use for Vue.js app development on @VueMastery",belongsToCourse:es},{slug:"creating-a-component",status:H,date:fb,title:"Creating a component",lessonNumber:ab,free:F,image:[{__meta__:{createdBy:c,createdDate:zR},contentType:E,file:zS,folderId:zT,id:zU,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:zV}],description:"After watching this lesson, you will be able to create reactive components in Vue.js.",duration:JL,author:V,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:zR},contentType:E,file:zS,folderId:zT,id:zU,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:zV}],facebookImage:[{__meta__:{createdBy:c,createdDate:zR},contentType:E,file:zS,folderId:zT,id:zU,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:zV}],socialSharingDescription:"I learned how to create reactive components in Vue.js on @VueMastery",belongsToCourse:es},{slug:"template-basics",status:H,date:fb,title:"Template Basics",lessonNumber:ac,free:F,image:[{__meta__:{createdBy:c,createdDate:zW},contentType:E,file:zX,folderId:zY,id:zZ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:z_}],description:"After watching this lesson, you’ll be able to use the common template directives, v-bind, v-if, and v-for, in your Vue components.",duration:"00:06:42",author:V,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:zW},contentType:E,file:zX,folderId:zY,id:zZ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:z_}],facebookImage:[{__meta__:{createdBy:c,createdDate:zW},contentType:E,file:zX,folderId:zY,id:zZ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:z_}],socialSharingDescription:"I learned how use the common template directives, v-bind, v-if, and v-for, in my Vue components on @VueMastery",belongsToCourse:es},{slug:"similarities-event-handling",status:H,date:"2022-11-15T00:00:00+01:00",title:fh,lessonNumber:W,free:F,image:[{__meta__:{createdBy:c,createdDate:z$},contentType:E,file:Aa,folderId:Ab,id:Ac,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Ad}],description:"After watching this lesson, you will be able to handle UI events in your Vue app.",duration:Ae,author:V,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:z$},contentType:E,file:Aa,folderId:Ab,id:Ac,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Ad}],facebookImage:[{__meta__:{createdBy:c,createdDate:z$},contentType:E,file:Aa,folderId:Ab,id:Ac,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Ad}],socialSharingDescription:"I learned how to handle UI events in my Vue app on @VueMastery",belongsToCourse:es},{slug:"dynamic-and-scoped-style",status:H,date:fb,title:"Dynamic and Scoped Style",lessonNumber:S,free:F,image:[{__meta__:{createdBy:c,createdDate:Af},contentType:E,file:Ag,folderId:Ah,id:Ai,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Aj}],description:"After watching this lesson, you’ll be able to use v-bind to set up dynamic styles and use \u003Cstyle scoped\u003E to scope your CSS within a component.",duration:fj,author:V,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:Af},contentType:E,file:Ag,folderId:Ah,id:Ai,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Aj}],facebookImage:[{__meta__:{createdBy:c,createdDate:Af},contentType:E,file:Ag,folderId:Ah,id:Ai,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Aj}],socialSharingDescription:"I learned how to use v-bind to set up dynamic styles and use \u003Cstyle scoped\u003E to scope my CSS within a component on @VueMastery",belongsToCourse:es}],lessonsCount:S,order:M,parentId:M,slug:"vue-for-react-devs-similarities",teachers:[{firstName:ed,lastName:ee,about:J,image:[{__meta__:{createdBy:c,createdDate:ef},contentType:E,file:eg,folderId:X,id:eh,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ei}]}],title:"Vue for React Devs: Similarities"},"1667946700127":{__meta__:{createdBy:c,createdDate:"2022-11-08T22:31:40.127Z",lastModifiedBy:c,lastModifiedDate:"2024-01-03T17:18:52.438Z",locale:T},category:[{name:af,color:ag},{name:au,color:av}],completable:G,courseDependencies:J,courseLabelsBar:J,description:"Learn the foundations of using Firebase for the back end of your Vue apps.",difficulty:aQ,duration:"01:52:55",free:F,id:cw,image:[{__meta__:{createdBy:c,createdDate:bj},contentType:E,file:bk,folderId:bl,id:bm,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bn}],isComingSoon:F,isDraft:F,isPromoted:F,label:ad,lessons:[{slug:"firebase-introduction",status:H,date:LB,title:cg,lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:di},contentType:E,file:dj,folderId:dk,id:dl,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:dm}],description:"In this course, you'll be working on a food review app that you'll be taking to the next level by implementing a database as well as user authentication with Firebase.",duration:"00:03:00",author:N,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:di},contentType:E,file:dj,folderId:dk,id:dl,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:dm}],facebookImage:[{__meta__:{createdBy:c,createdDate:di},contentType:E,file:dj,folderId:dk,id:dl,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:dm}],socialSharingDescription:"I'm learning how to implement a database as well as user authentication with Firebase on @VueMastery",belongsToCourse:cw},{slug:"firebase-fundamentals",status:H,date:LB,title:"Firebase Fundamentals",lessonNumber:U,free:G,image:[{__meta__:{createdBy:c,createdDate:"2022-12-24T16:35:11.860Z"},contentType:E,file:"Firebase with Vue 3 and VueFire L2.opt.jpg",folderId:1671899652121,id:1671899702953,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FFirebase%20with%20Vue%203%20and%20VueFire%20L2.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=YYhm3nURuHt1Bp7tm4dHK6S3zk7w0QQl7bbRu9bViI9G3q6ixp8jB29%2BBhAlje3uDl5uCiwDmA8TTDEsG3HbhKCLxHHoigdE%2BM10hy8h38uthOXrHINWoEXyIJ1YAsUDkCC58RfgUX4PB8Cu7KlesnXo101rn26fjAmNTyZYVId27H80E8mKklIXh3k%2B7XKMer5O5wk94anuqVHevU3zFps5XGveHgOqoabfn3XQgwIkcLZvUW3enUETaTS1e0PgH9I%2Fmhwj0XFn33tmXxYd9t7QrAw1CsOlaQ6m52%2FOdTgcIRaWMDmwGmF7MtB0SLgAHaDhdWchze5t8UhGpFXaOA%3D%3D"}],description:"Learn about the fundamentals of Firebase",duration:"00:13:45",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:di},contentType:E,file:dj,folderId:dk,id:dl,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:dm}],facebookImage:[{__meta__:{createdBy:c,createdDate:di},contentType:E,file:dj,folderId:dk,id:dl,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:dm}],socialSharingDescription:"I'm learning the fundamentals of Firebase on @VueMastery",belongsToCourse:cw},{slug:"setup-firebase-with-vue",status:H,date:"2023-01-20T00:00:00-08:00",title:"Setup Firebase with Vue",lessonNumber:ab,free:F,image:[{__meta__:{createdBy:c,createdDate:di},contentType:E,file:dj,folderId:dk,id:dl,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:dm}],description:"Learn about configuring Firebase and VueFire with Vue 3!",duration:"00:13:14",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:di},contentType:E,file:dj,folderId:dk,id:dl,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:dm}],facebookImage:[{__meta__:{createdBy:c,createdDate:di},contentType:E,file:dj,folderId:dk,id:dl,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:dm}],socialSharingDescription:"I just learned about how to configure Firebase and VueFire with Vue with @bencodezen on @VueMastery",belongsToCourse:cw},{slug:"fetching-data-from-firebase",status:H,date:"2023-01-24T00:00:00-08:00",title:"Fetching Data from Firebase",lessonNumber:ac,free:F,image:[{__meta__:{createdBy:c,createdDate:di},contentType:E,file:dj,folderId:dk,id:dl,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:dm}],description:"Learn about fetching data with Firebase and VueFire!",duration:"00:16:42",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:di},contentType:E,file:dj,folderId:dk,id:dl,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:dm}],facebookImage:[{__meta__:{createdBy:c,createdDate:di},contentType:E,file:dj,folderId:dk,id:dl,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:dm}],socialSharingDescription:"I just learned about how to fetch data with Firebase and VueFire with @bencodezen on @VueMastery",belongsToCourse:cw},{slug:"adding-data-to-firebase",status:H,date:Ak,title:"Adding Data to Firebase",lessonNumber:W,free:F,image:[{__meta__:{createdBy:c,createdDate:bj},contentType:E,file:bk,folderId:bl,id:bm,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bn}],description:"Learn how to add new data to Firebase’s Cloud Firestore",duration:"00:08:47",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:bj},contentType:E,file:bk,folderId:bl,id:bm,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bn}],facebookImage:[{__meta__:{createdBy:c,createdDate:bj},contentType:E,file:bk,folderId:bl,id:bm,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bn}],socialSharingDescription:"I just learned how to add new data to Firebase’s Cloud Firestore with @bencodezen on Vue Mastery!",belongsToCourse:cw},{slug:"updating-data-in-firebase",status:H,date:Ak,title:"Updating Data in Firebase",lessonNumber:S,free:F,image:[{__meta__:{createdBy:c,createdDate:bj},contentType:E,file:bk,folderId:bl,id:bm,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bn}],description:"Learn how to update existing data on Firebase’s Cloud Firestore",duration:"00:12:31",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:bj},contentType:E,file:bk,folderId:bl,id:bm,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bn}],facebookImage:[{__meta__:{createdBy:c,createdDate:bj},contentType:E,file:bk,folderId:bl,id:bm,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bn}],socialSharingDescription:"I just learned how to update existing data on Firebase’s Cloud Firestore with @bencodezen on Vue Mastery!",belongsToCourse:cw},{slug:"deleting-data-in-firebase",status:H,date:Ak,title:"Deleting Data in Firebase",lessonNumber:ae,free:F,image:[{__meta__:{createdBy:c,createdDate:bj},contentType:E,file:bk,folderId:bl,id:bm,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bn}],description:"Learn how to delete data from Firebase’s Cloud Firestore",duration:E_,author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:bj},contentType:E,file:bk,folderId:bl,id:bm,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bn}],facebookImage:[{__meta__:{createdBy:c,createdDate:bj},contentType:E,file:bk,folderId:bl,id:bm,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bn}],socialSharingDescription:"I just learned how to delete data from Firebase’s Cloud Firestore with @bencodezen on Vue Mastery!",belongsToCourse:cw},{slug:"firebase-auth-fundamentals",status:H,date:fc,title:"Firebase Auth Fundamentals",lessonNumber:ah,free:F,image:[{__meta__:{createdBy:c,createdDate:bj},contentType:E,file:bk,folderId:bl,id:bm,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bn}],description:"Learn the fundamentals of using Firebase Auth",duration:"00:06:15",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:bj},contentType:E,file:bk,folderId:bl,id:bm,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bn}],facebookImage:[{__meta__:{createdBy:c,createdDate:bj},contentType:E,file:bk,folderId:bl,id:bm,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bn}],socialSharingDescription:"I just learned the fundamentals of using Firebase Auth with @bencodzen on Vue Mastery!",belongsToCourse:cw},{slug:"registering-users-with-firebase-auth",status:H,date:fc,title:"Registering Users with Firebase Auth",lessonNumber:an,free:F,image:[{__meta__:{createdBy:c,createdDate:bj},contentType:E,file:bk,folderId:bl,id:bm,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bn}],description:"Learn how to create user accounts on Firebase Authentication",duration:"00:006:38",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:bj},contentType:E,file:bk,folderId:bl,id:bm,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bn}],facebookImage:[{__meta__:{createdBy:c,createdDate:bj},contentType:E,file:bk,folderId:bl,id:bm,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bn}],socialSharingDescription:"I just learned how to create user accounts on Firebase Authentication with @bencodezen on Vue Mastery!",belongsToCourse:cw},{slug:"authenticating-users-with-firebase-auth",status:H,date:fc,title:"Authenticating Users with Firebase Auth",lessonNumber:aS,free:F,image:[{__meta__:{createdBy:c,createdDate:bj},contentType:E,file:bk,folderId:bl,id:bm,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bn}],description:"Learn how to manage a user in Firebase Auth",duration:"00:08:39",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:bj},contentType:E,file:bk,folderId:bl,id:bm,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bn}],facebookImage:[{__meta__:{createdBy:c,createdDate:bj},contentType:E,file:bk,folderId:bl,id:bm,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bn}],socialSharingDescription:"I just learned how to manage a user in Firebase Auth with @bencodezen on Vue Mastery!",belongsToCourse:cw},{slug:"deploying-your-app",status:H,date:fc,title:"Deploying Your App",lessonNumber:bN,free:F,image:[{__meta__:{createdBy:c,createdDate:bj},contentType:E,file:bk,folderId:bl,id:bm,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bn}],description:"Learn how to deploy your Firebase and Vue 3 app",duration:"00:14:19",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:bj},contentType:E,file:bk,folderId:bl,id:bm,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bn}],facebookImage:[{__meta__:{createdBy:c,createdDate:bj},contentType:E,file:bk,folderId:bl,id:bm,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bn}],socialSharingDescription:"I just learned how to deploy my Firebase and Vue 3 app with @bencodezen on Vue Mastery!",belongsToCourse:cw},{slug:"firebase-next-steps",status:H,date:fc,title:ep,lessonNumber:dN,free:F,image:[{__meta__:{createdBy:c,createdDate:bj},contentType:E,file:bk,folderId:bl,id:bm,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bn}],description:"Here are the next steps to explore after completing Firebase with Vue 3 and VueFire",duration:"00:02:25",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:bj},contentType:E,file:bk,folderId:bl,id:bm,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bn}],facebookImage:[{__meta__:{createdBy:c,createdDate:bj},contentType:E,file:bk,folderId:bl,id:bm,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bn}],socialSharingDescription:"I just finished the Firebase with Vue 3 and VueFire course with @bencodezen on Vue Mastery!",belongsToCourse:cw}],lessonsCount:dN,order:M,parentId:M,slug:"firebase-with-vue3-and-vuefire",teachers:[{firstName:da,lastName:db,about:dc,image:[{__meta__:{createdBy:c,createdDate:dd},contentType:E,file:de,folderId:X,id:df,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:dg}]}],title:"Firebase with Vue 3 and VueFire"},"1669662242047":{__meta__:{createdBy:c,createdDate:"2022-11-28T19:04:02.048Z",lastModifiedBy:c,lastModifiedDate:"2024-01-03T17:19:31.056Z",locale:T},category:[{name:af,color:ag},{name:au,color:av}],completable:G,courseDependencies:J,courseLabelsBar:J,description:"Rapidly learn Vue by understanding the differences between Vue and React.",difficulty:bM,duration:"00:34:36",free:F,id:dn,image:[{__meta__:{createdBy:c,createdDate:aw},contentType:E,file:ax,folderId:ay,id:az,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aA}],isComingSoon:F,isDraft:F,isPromoted:F,label:ad,lessons:[{slug:"reacting-to-changes",status:H,date:et,title:"Reacting to changes",lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:aw},contentType:E,file:ax,folderId:ay,id:az,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aA}],description:"Understand how Vue’s reactive system is different from that of React.",duration:"00:01:55",author:V,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:aw},contentType:E,file:ax,folderId:ay,id:az,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aA}],facebookImage:[{__meta__:{createdBy:c,createdDate:aw},contentType:E,file:ax,folderId:ay,id:az,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aA}],socialSharingDescription:"I'm learning how Vue’s reactive system is different from that of React on @VueMastery",belongsToCourse:dn},{slug:"differences-computed-properties",status:H,date:Al,title:eZ,lessonNumber:U,free:G,image:[{__meta__:{createdBy:c,createdDate:aw},contentType:E,file:ax,folderId:ay,id:az,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aA}],description:"Create computed properties and run callback functions whenever a state change occurs.",duration:Lv,author:V,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:aw},contentType:E,file:ax,folderId:ay,id:az,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aA}],facebookImage:[{__meta__:{createdBy:c,createdDate:aw},contentType:E,file:ax,folderId:ay,id:az,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aA}],socialSharingDescription:"I learned how to create computed properties and run callback functions whenever a state change occurs on @VueMastery",belongsToCourse:dn},{slug:"props",status:H,date:et,title:"Props",lessonNumber:ab,free:F,image:[{__meta__:{createdBy:c,createdDate:aw},contentType:E,file:ax,folderId:ay,id:az,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aA}],description:"Learn how to pass data from one component to another as props.",duration:jZ,author:V,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:aw},contentType:E,file:ax,folderId:ay,id:az,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aA}],facebookImage:[{__meta__:{createdBy:c,createdDate:aw},contentType:E,file:ax,folderId:ay,id:az,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aA}],socialSharingDescription:"I learned how to pass data from one component to another as props on @VueMastery",belongsToCourse:dn},{slug:"custom-events",status:H,date:et,title:"Custom Events",lessonNumber:ac,free:F,image:[{__meta__:{createdBy:c,createdDate:aw},contentType:E,file:ax,folderId:ay,id:az,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aA}],description:"Send data from a child component back to its parent component by defining, emitting and listening for custom events.",duration:"00:03:37",author:V,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:aw},contentType:E,file:ax,folderId:ay,id:az,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aA}],facebookImage:[{__meta__:{createdBy:c,createdDate:aw},contentType:E,file:ax,folderId:ay,id:az,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aA}],socialSharingDescription:"I learned how to define, emit, and listen for custom events on @VueMastery",belongsToCourse:dn},{slug:"two-way-data-binding",status:H,date:et,title:"Two-Way Data Binding",lessonNumber:W,free:F,image:[{__meta__:{createdBy:c,createdDate:aw},contentType:E,file:ax,folderId:ay,id:az,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aA}],description:"Learn how to create reactive form inputs in Vue.js. ",duration:"00:02:54",author:V,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:aw},contentType:E,file:ax,folderId:ay,id:az,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aA}],facebookImage:[{__meta__:{createdBy:c,createdDate:aw},contentType:E,file:ax,folderId:ay,id:az,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aA}],socialSharingDescription:"I learned how to create reactive form inputs in Vue.js on @VueMastery",belongsToCourse:dn},{slug:"form-submission",status:H,date:et,title:"Form Submission",lessonNumber:S,free:F,image:[{__meta__:{createdBy:c,createdDate:aw},contentType:E,file:ax,folderId:ay,id:az,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aA}],description:"Learn how to listen to the form submission event and process the form data.",duration:Kw,author:V,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:aw},contentType:E,file:ax,folderId:ay,id:az,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aA}],facebookImage:[{__meta__:{createdBy:c,createdDate:aw},contentType:E,file:ax,folderId:ay,id:az,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aA}],socialSharingDescription:"I learned how to listen to the form submission event and process the form data on @VueMastery",belongsToCourse:dn},{slug:"differences-slots",status:H,date:Al,title:BG,lessonNumber:ae,free:F,image:[{__meta__:{createdBy:c,createdDate:aw},contentType:E,file:ax,folderId:ay,id:az,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aA}],description:"Learn how to use default slot and named slots to pass templates to a child component.",duration:LC,author:V,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:aw},contentType:E,file:ax,folderId:ay,id:az,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aA}],facebookImage:[{__meta__:{createdBy:c,createdDate:aw},contentType:E,file:ax,folderId:ay,id:az,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aA}],socialSharingDescription:"I learned how to use default slot and named slots to pass templates to a child component on @VueMastery",belongsToCourse:dn},{slug:"differences-lifecycle-hooks",status:H,date:Al,title:F$,lessonNumber:ah,free:F,image:[{__meta__:{createdBy:c,createdDate:aw},contentType:E,file:ax,folderId:ay,id:az,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aA}],description:"Learn how to use lifecycle hooks in Vue components.",duration:"00:02:32",author:V,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:aw},contentType:E,file:ax,folderId:ay,id:az,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aA}],facebookImage:[{__meta__:{createdBy:c,createdDate:aw},contentType:E,file:ax,folderId:ay,id:az,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aA}],socialSharingDescription:"I learned how to use lifecycle hooks in Vue components on @VueMastery",belongsToCourse:dn},{slug:"creating-a-more-ambitious-composable",status:H,date:et,title:"Creating a more ambitious composable",lessonNumber:an,free:F,image:[{__meta__:{createdBy:c,createdDate:aw},contentType:E,file:ax,folderId:ay,id:az,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aA}],description:"Learn how to create composables with Vue’s reactive API.",duration:LC,author:V,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:aw},contentType:E,file:ax,folderId:ay,id:az,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aA}],facebookImage:[{__meta__:{createdBy:c,createdDate:aw},contentType:E,file:ax,folderId:ay,id:az,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aA}],socialSharingDescription:"I learned how to create composables with Vue’s reactive API on @VueMastery",belongsToCourse:dn},{slug:"the-journey-ahead",status:H,date:et,title:"The Journey Ahead",lessonNumber:aS,free:F,image:[{__meta__:{createdBy:c,createdDate:aw},contentType:E,file:ax,folderId:ay,id:az,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aA}],description:"Continue the Vue.js journey by taking our other premium courses.",duration:"00:00:28",author:V,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:aw},contentType:E,file:ax,folderId:ay,id:az,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aA}],facebookImage:[{__meta__:{createdBy:c,createdDate:aw},contentType:E,file:ax,folderId:ay,id:az,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aA}],socialSharingDescription:"I just completed the Vue for React Devs: Differences course on @VueMastery",belongsToCourse:dn}],lessonsCount:aS,order:M,parentId:M,slug:"vue-for-react-devs-differences",teachers:[{firstName:ed,lastName:ee,about:J,image:[{__meta__:{createdBy:c,createdDate:ef},contentType:E,file:eg,folderId:X,id:eh,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ei}]}],title:"Vue for React Devs: Differences"},"1672173306000":{__meta__:{createdBy:c,createdDate:"2022-12-27T20:35:06.001Z",lastModifiedBy:c,lastModifiedDate:"2023-06-14T22:35:42.236Z",locale:T},category:[{name:af,color:ag},{name:au,color:av}],completable:G,courseDependencies:J,courseLabelsBar:J,description:Jg,difficulty:bM,duration:"01:03:11",free:F,id:ds,image:[{__meta__:{createdBy:c,createdDate:Jh},contentType:K,file:Ji,folderId:fD,id:Jj,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Jk},{__meta__:{createdBy:c,createdDate:"2023-06-14T22:35:33.326Z"},contentType:I,file:"Real World Vue 3 - Composition API.webp",folderId:fD,id:1686782126437,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FReal%20World%20Vue%203%20-%20Composition%20API.webp?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=n9isnNOdWtpTklsFblN%2F4bkiRlbMjif2TZwplyFbNuKaOEwtTw4hqGitJFWnm8GYisM9T6zCM64WVE3XCbM1tntbnmLqLFTQ1RTtdEEx8j04yUndR7yg4ZxMNqw6OW2SqtcmnMATY8CIKEBxPqZ6hG0vUlFI6DhXXq5eIM4%2Bx1z6vU3TJ4F%2Fkahx8RoH6vYAfKKkC2vwoibO0FOyUg%2FlrvlNvllgsZ0qKRHgdIP9l0O4Z5IgByBLR1tvobFpRYwQd69%2Fx3WGNR3ODClNRemJHafMXdgAk6fuE1GfxiteLud8LPZHzB6fygybUo9qqKDcKzW%2BEZ6Yv%2FRQlMx8BTXcyA%3D%3D"}],isComingSoon:F,isDraft:F,isPromoted:F,label:ad,lessons:[{slug:"building-a-vue-3-app-composition-api",status:H,date:LD,title:Jl,lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:Jm},contentType:E,file:Jn,folderId:eI,id:Jo,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Jp}],description:"Starting building a production-level app using Vue 3",duration:"00:00:44",author:O,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:fE},contentType:E,file:fF,folderId:eI,id:fG,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:fH}],facebookImage:[{__meta__:{createdBy:c,createdDate:fE},contentType:E,file:fF,folderId:eI,id:fG,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:fH}],socialSharingDescription:"I’m learning how to build a production-level app using #Vue 3 on @VueMastery",belongsToCourse:ds},{slug:"create-vue-creating-the-project",status:H,date:LD,title:"Create-Vue - creating the project",lessonNumber:U,free:G,image:[{__meta__:{createdBy:c,createdDate:"2022-12-27T20:58:47.652Z"},contentType:E,file:"RWV3 Composition API L2.opt.jpg",folderId:1672174703679,id:1672174720462,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FRWV3%20Composition%20API%20L2.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=Bkkwdndr9GRce7t3I9tFClglgB3F8FeMEFi5UB9fztwuESiRte8JmBqv7YbW5Q9400vQnnODRJzKPVBVtKxS4rD4D9AoMiRqLCxlO1b7%2BZ0zNw3KXBWUoXMbHFNJOFqoIsrj5yoHNFRv%2Fiy3CZSJqKIz3qzErVvnaCDExZwZjrye%2BZDKV0md5TBFxPKQ8CR1ZqxXVyhNFff21eJ%2BuQOoAHxoaRiEAjDO%2FDNfCbVVHrwxQkJKPq5KibocVQpwu83V1ZZSfigALhcTiM5vrGquZ5eJEwtHdi9gBe62UI465M%2BviKAjoB5Bb%2B9itFtwa0HaCfJMrWZWHzjPRSIhdn2Eqg%3D%3D"}],description:"In this tutorial, we’ll create our project using create-vue, which is a CLI tool based on a build tool called Vite.js.",duration:"00:05:21",author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:cD},contentType:E,file:cE,folderId:cF,id:cG,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cH}],facebookImage:[{__meta__:{createdBy:c,createdDate:cD},contentType:E,file:cE,folderId:cF,id:cG,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cH}],socialSharingDescription:"I’m creating a Real World Vue 3 app with the help of @VueMastery",belongsToCourse:ds},{slug:"single-file-components-composition-api",status:H,date:eR,title:Jr,lessonNumber:ab,free:F,image:[{__meta__:{createdBy:c,createdDate:"2022-12-27T21:04:55.068Z"},contentType:E,file:"RWV3 Composition API L3.opt.jpg",folderId:1672175070434,id:1672175087042,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FRWV3%20Composition%20API%20L3.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=n8PMI%2BF4rZYRo7ETTc%2FT4QdOAODGSLD7z5oGU8Yq5L9wVOVe51VSiHKHYzihiK6dQVUF2J0XafZ202Hh8b28iLwaLzFZC9CKS0WMwEZo2UVviAN7hcBYTDRcS1kuMZJl4mXDNMHjCPYaph%2FHEyv8Dc0SK931Ilpi08FRvOOE0dW0omeMz%2FZIM5B9Fifnj4hpgejiUlyszjTW9lOawjh2WGw6uGt9WETAgKE1tZXgH3zWyw7sVZEkjKc4my1oGzPtGTuf8QMvWC8CPkTjB62MvFY%2BKZELYqDcEUf6DbKYiUvQA8boUKvAX1IRP3UBF7vrfyJj6JXgFzTbDYUosRDLMA%3D%3D"}],description:"Now that we've created our project with create-vue, we're ready to start customizing it to build our own app. ",duration:"00:13:03",author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:cD},contentType:E,file:cE,folderId:cF,id:cG,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cH}],facebookImage:[{__meta__:{createdBy:c,createdDate:cD},contentType:E,file:cE,folderId:cF,id:cG,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cH}],socialSharingDescription:Js,belongsToCourse:ds},{slug:"vue-router-essentials-composition-api",status:H,date:eR,title:Jt,lessonNumber:ac,free:F,image:[{__meta__:{createdBy:c,createdDate:"2022-12-27T21:10:02.736Z"},contentType:E,file:"RWV3 Composition API L4.opt.jpg",folderId:1672175375216,id:1672175394687,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FRWV3%20Composition%20API%20L4.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=c4trxn2kxMtGHG3z7dfsNGUd2CYRtcfou4G7zuZuDgUgyTTgLXaNMGA8ewYUJEbp%2FqduT5Vpbo%2F7PT0H39P%2FTveCav%2FYIe1xIlLRb5kL5S4x%2FZUkOKRq80QxShMwup8Cy54Vs%2BUS%2F8rhjyduJPo%2FKpfBXe1uTmiWKDUtyZNt2jkd7d%2FzI0mHB6m%2FXlOfaIPo6u8WQjqrvfUXadOD%2Fov8vrtW9LZ2cl2pCxgHT80DeXCEQek0%2BvEWyO8z%2BSH%2FcCWA5IH7OAOUuxfNy6kSWCL5YNrzO6TiXWXZP4WyLlaCIUqv7QqV9FFnCCxLvF4eXYFd4kEJxPaovsefV2sojX8fbA%3D%3D"}],description:Ju,duration:"00:08:35",author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:cD},contentType:E,file:cE,folderId:cF,id:cG,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cH}],facebookImage:[{__meta__:{createdBy:c,createdDate:cD},contentType:E,file:cE,folderId:cF,id:cG,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cH}],socialSharingDescription:"I'm learning how to use Vue Router for app navigation on @VueMastery",belongsToCourse:ds},{slug:"api-calls-with-axios-composition-api",status:H,date:eR,title:hX,lessonNumber:W,free:F,image:[{__meta__:{createdBy:c,createdDate:fI},contentType:E,file:fJ,folderId:fK,id:fL,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:fM}],description:Jv,duration:"00:08:54",author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:cD},contentType:E,file:cE,folderId:cF,id:cG,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cH}],facebookImage:[{__meta__:{createdBy:c,createdDate:cD},contentType:E,file:cE,folderId:cF,id:cG,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cH}],socialSharingDescription:"I'm learning about API calls with Axios on @VueMastery",belongsToCourse:ds},{slug:"dynamic-routing-composition-api",status:H,date:eR,title:Jw,lessonNumber:S,free:F,image:[{__meta__:{createdBy:c,createdDate:fN},contentType:E,file:fO,folderId:fP,id:fQ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:fR}],description:Jx,duration:"00:12:16",author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:cD},contentType:E,file:cE,folderId:cF,id:cG,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cH}],facebookImage:[{__meta__:{createdBy:c,createdDate:cD},contentType:E,file:cE,folderId:cF,id:cG,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cH}],socialSharingDescription:Jy,belongsToCourse:ds},{slug:"deploying-with-render-composition-api",status:H,date:eR,title:Jz,lessonNumber:ae,free:F,image:[{__meta__:{createdBy:c,createdDate:fS},contentType:E,file:fT,folderId:fU,id:fV,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:fW}],description:JA,duration:"00:10:30",author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:cD},contentType:E,file:cE,folderId:cF,id:cG,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cH}],facebookImage:[{__meta__:{createdBy:c,createdDate:cD},contentType:E,file:cE,folderId:cF,id:cG,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cH}],socialSharingDescription:JB,belongsToCourse:ds},{slug:"scaling-the-app-composition-api",status:H,date:eR,title:JC,lessonNumber:ah,free:F,image:[{__meta__:{createdBy:c,createdDate:fX},contentType:E,file:fY,folderId:fZ,id:f_,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:f$}],description:JD,duration:kD,author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:cD},contentType:E,file:cE,folderId:cF,id:cG,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cH}],facebookImage:[{__meta__:{createdBy:c,createdDate:cD},contentType:E,file:cE,folderId:cF,id:cG,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cH}],socialSharingDescription:JE,belongsToCourse:ds}],lessonsCount:ah,order:M,parentId:M,slug:"real-world-vue-3-composition-api",teachers:[{firstName:cs,lastName:cx,about:cy,image:[{__meta__:{createdBy:c,createdDate:cz},contentType:E,file:cA,folderId:X,id:cB,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cC}]}],title:"Real World Vue 3 (Composition API)"},"1674599921955":{__meta__:{createdBy:c,createdDate:"2023-01-24T22:38:41.955Z",lastModifiedBy:c,lastModifiedDate:"2024-01-03T17:20:57.418Z",locale:T},category:[{name:af,color:ag},{name:au,color:av}],completable:G,courseDependencies:J,courseLabelsBar:J,description:LE,difficulty:cK,duration:"00:59:48",free:F,id:dU,image:[{__meta__:{createdBy:c,createdDate:"2023-01-24T22:37:16.597Z"},contentType:E,file:"5 Elegant ways to use Pinia.jpg",folderId:1674599800315,id:1674599829214,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F5%20Elegant%20ways%20to%20use%20Pinia.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=qqQfj2RAjsTwk8wUVpnFiIu3cuNderxTTxLhMu1JR0MeKNjwDvMYBtSlvL5SOIf%2BZ6ZU6lDvH%2FwxfNhfJh3PBIlM4xtahQiBjsWyw951wh4TioYdSRwLwoIw8prrVrYtd50J4T%2BZ87%2B%2Fv7FsC8TvEKAH5fLKDuV5LKfyld9Szy7QoMPeXcV6VsLDNSqJqII4LV1%2FcI9PlHLJTuI95H3%2Fy8ZLD5bsvMNQFB7dx3lx5PGbAkMnkDQa9eAc52HIQUVEQ981HmxzH9hszNdlBWjlH7eO3NLkMHrfKAtXxJYsDCAiDsc%2BlH%2BPZRwWZzAfludU6XtcQ%2BNEOeKn9oYFspr1Lw%3D%3D"}],isComingSoon:F,isDraft:F,isPromoted:F,label:ad,lessons:[{slug:"elegant-pinia-intro",status:H,date:"2023-03-23T00:00:00-07:00",title:zG,lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:ca},contentType:E,file:cb,folderId:cc,id:cd,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ce}],description:LE,duration:"00:01:02",author:eS,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:ca},contentType:E,file:cb,folderId:cc,id:cd,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ce}],facebookImage:[{__meta__:{createdBy:c,createdDate:ca},contentType:E,file:cb,folderId:cc,id:cd,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ce}],socialSharingDescription:eT,belongsToCourse:dU},{slug:"using-the-router-within-a-store-and-vice-versa",status:H,date:fd,title:"Using the Router within a Store and vice versa",lessonNumber:U,free:G,image:[{__meta__:{createdBy:c,createdDate:ca},contentType:E,file:cb,folderId:cc,id:cd,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ce}],description:"Learn how to use Vue Router within a store and vice versa",duration:"00:16:29",author:eS,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:ca},contentType:E,file:cb,folderId:cc,id:cd,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ce}],facebookImage:[{__meta__:{createdBy:c,createdDate:ca},contentType:E,file:cb,folderId:cc,id:cd,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ce}],socialSharingDescription:eT,belongsToCourse:dU},{slug:"using-composables-within-stores",status:H,date:fd,title:"Using Composables within Stores",lessonNumber:ab,free:F,image:[{__meta__:{createdBy:c,createdDate:ca},contentType:E,file:cb,folderId:cc,id:cd,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ce}],description:"Learn how to use stateful functions called composables within stores in Vue.js.",duration:"00:10:01",author:eS,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:ca},contentType:E,file:cb,folderId:cc,id:cd,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ce}],facebookImage:[{__meta__:{createdBy:c,createdDate:ca},contentType:E,file:cb,folderId:cc,id:cd,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ce}],socialSharingDescription:eT,belongsToCourse:dU},{slug:"splitting-stores",status:H,date:fd,title:"Splitting Stores",lessonNumber:ac,free:F,image:[{__meta__:{createdBy:c,createdDate:ca},contentType:E,file:cb,folderId:cc,id:cd,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ce}],description:"Learn how to split a large store into multiple ones.",duration:"00:12:15",author:eS,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:ca},contentType:E,file:cb,folderId:cc,id:cd,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ce}],facebookImage:[{__meta__:{createdBy:c,createdDate:ca},contentType:E,file:cb,folderId:cc,id:cd,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ce}],socialSharingDescription:eT,belongsToCourse:dU},{slug:"intercepting-actions",status:H,date:fd,title:"Intercepting Actions",lessonNumber:W,free:F,image:[{__meta__:{createdBy:c,createdDate:ca},contentType:E,file:cb,folderId:cc,id:cd,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ce}],description:"Learn how to intercept actions using plugins and how to trace actions and errors to improve debugging.",duration:LF,author:eS,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:ca},contentType:E,file:cb,folderId:cc,id:cd,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ce}],facebookImage:[{__meta__:{createdBy:c,createdDate:ca},contentType:E,file:cb,folderId:cc,id:cd,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ce}],socialSharingDescription:eT,belongsToCourse:dU},{slug:"augmenting-store-options",status:H,date:fd,title:"Augmenting Store options",lessonNumber:S,free:F,image:[{__meta__:{createdBy:c,createdDate:ca},contentType:E,file:cb,folderId:cc,id:cd,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ce}],description:"Learn how to augment store options using custom options.",duration:"00:11:43",author:eS,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:ca},contentType:E,file:cb,folderId:cc,id:cd,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ce}],facebookImage:[{__meta__:{createdBy:c,createdDate:ca},contentType:E,file:cb,folderId:cc,id:cd,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ce}],socialSharingDescription:eT,belongsToCourse:dU}],lessonsCount:S,order:M,parentId:M,slug:"5-elegant-ways-to-use-pinia",teachers:[{firstName:Lc,lastName:Ld,about:Le,image:[{__meta__:{createdBy:c,createdDate:Lf},contentType:E,file:Lg,folderId:X,id:Lh,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:Li}]}],title:"5 Elegant ways to use Pinia"},"1680548438382":{__meta__:{createdBy:c,createdDate:"2023-04-03T19:00:38.382Z",lastModifiedBy:c,lastModifiedDate:"2024-01-03T17:22:06.220Z",locale:T},category:[{name:af,color:ag},{name:au,color:av}],completable:G,courseDependencies:J,courseLabelsBar:J,description:"Leverage Nuxt 3 middleware to run custom code before a page is rendered, enhancing your apps' security and maintainability at scale.",difficulty:aQ,duration:"00:48:06",free:F,id:cS,image:[{__meta__:{createdBy:c,createdDate:"2023-04-03T19:00:26.480Z"},contentType:E,file:"Nuxt 3 Middleware.jpg",folderId:aB,id:1680548419046,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FNuxt%203%20Middleware.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=YzLO9wio6KGSn875Y2XirMr1y%2BzVGP2grtAMxe4UNtUcMMNDC32s%2F5Mj5W%2BXGxSUso74x7Wp16rPOGCyqfm3W6ca86cJt0PHPyq%2FPfCUZ2IMhJquj5%2BhmLiWwD1BgSMBuEgXUUhCPGIr%2FDG1hRfDhl0FFPGfOIgC0AgKBawZHrk3XOPfsI2NHlHCjAnZzCvUK9frJ%2Ff0Vo0gwlTKvemMNBJhh8kSkmEC0vQ40rbVk%2FP8CP1SdwKj96T8Pa%2BWb07wrq5l%2FBL6bfkPPKgJpxKfxkmpx7d7UoeDtdGui6Qyxii6VpBxGES0tpftl0jVlnl9DKva1%2FC58jkOqaohr6v7BA%3D%3D"}],isComingSoon:F,isDraft:F,isPromoted:F,label:ad,lessons:[{slug:"middleware-introduction",status:H,date:"2023-04-05T00:00:00-07:00",title:cg,lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:aM},contentType:E,file:aN,folderId:aB,id:aO,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aP}],description:"In this course, we'll be learning about the fundamentals of middleware, exploring its various types and uses. By the end, you'll be well-equipped to handle authentication, redirection, and custom logic like a pro.",duration:LG,author:N,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:aM},contentType:E,file:aN,folderId:aB,id:aO,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aP}],facebookImage:[{__meta__:{createdBy:c,createdDate:aM},contentType:E,file:aN,folderId:aB,id:aO,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aP}],socialSharingDescription:"I just got started with Nuxt 3 middleware with @bencodezen on @VueMastery",belongsToCourse:cS},{slug:"what-is-middleware",status:H,date:"2023-04-06T00:00:00-07:00",title:"What is middleware?",lessonNumber:U,free:G,image:[{__meta__:{createdBy:c,createdDate:aM},contentType:E,file:aN,folderId:aB,id:aO,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aP}],description:"When it comes to middleware in Nuxt, think of it like a checkpoint that allows you to run some code before the page is rendered.",duration:kK,author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:aM},contentType:E,file:aN,folderId:aB,id:aO,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aP}],facebookImage:[{__meta__:{createdBy:c,createdDate:aM},contentType:E,file:aN,folderId:aB,id:aO,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aP}],socialSharingDescription:"I just learned what Nuxt 3 middleware is with @bencodezen on @VueMastery",belongsToCourse:cS},{slug:"basic-anatomy-of-middleware",status:H,date:"2023-04-07T00:00:00-07:00",title:"Basic anatomy of middleware",lessonNumber:ab,free:F,image:[{__meta__:{createdBy:c,createdDate:aM},contentType:E,file:aN,folderId:aB,id:aO,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aP}],description:"Learn about the structure of Nuxt 3 middleware and how it works.",duration:LH,author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:aM},contentType:E,file:aN,folderId:aB,id:aO,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aP}],facebookImage:[{__meta__:{createdBy:c,createdDate:aM},contentType:E,file:aN,folderId:aB,id:aO,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aP}],socialSharingDescription:"I just learned about the structure of Nuxt 3 middleware and how it works with @bencodezen on @VueMastery!",belongsToCourse:cS},{slug:"inline-middleware",status:H,date:"2023-04-14T00:00:00-07:00",title:"Inline middleware",lessonNumber:ac,free:F,image:[{__meta__:{createdBy:c,createdDate:aM},contentType:E,file:aN,folderId:aB,id:aO,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aP}],description:"Learn about the first type of middleware that we'll be working with - inline middleware.",duration:"00:09:32",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:aM},contentType:E,file:aN,folderId:aB,id:aO,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aP}],facebookImage:[{__meta__:{createdBy:c,createdDate:aM},contentType:E,file:aN,folderId:aB,id:aO,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aP}],socialSharingDescription:"I just learned about Nuxt 3 inline middleware with @bencodezen on @VueMastery!",belongsToCourse:cS},{slug:"named-middleware",status:H,date:"2023-04-17T00:00:00-07:00",title:"Named middleware",lessonNumber:W,free:F,image:[{__meta__:{createdBy:c,createdDate:aM},contentType:E,file:aN,folderId:aB,id:aO,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aP}],description:"Named middleware is defined in a separate file and can be reused across multiple pages.",duration:HN,author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:aM},contentType:E,file:aN,folderId:aB,id:aO,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aP}],facebookImage:[{__meta__:{createdBy:c,createdDate:aM},contentType:E,file:aN,folderId:aB,id:aO,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aP}],socialSharingDescription:"I just learned about Nuxt 3 named middleware with @bencodezen on @VueMastery!",belongsToCourse:cS},{slug:"global-middleware",status:H,date:"2023-04-19T00:00:00-07:00",title:"Global middleware",lessonNumber:S,free:F,image:[{__meta__:{createdBy:c,createdDate:aM},contentType:E,file:aN,folderId:aB,id:aO,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aP}],description:"Global middleware runs before every route in a Nuxt 3 application.",duration:LI,author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:aM},contentType:E,file:aN,folderId:aB,id:aO,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aP}],facebookImage:[{__meta__:{createdBy:c,createdDate:aM},contentType:E,file:aN,folderId:aB,id:aO,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aP}],socialSharingDescription:"I just learned about Nuxt 3 global middleware with @bencodezen on @VueMastery!",belongsToCourse:cS},{slug:"middleware-execution-order",status:H,date:LJ,title:"Middleware execution order",lessonNumber:ae,free:F,image:[{__meta__:{createdBy:c,createdDate:aM},contentType:E,file:aN,folderId:aB,id:aO,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aP}],description:"Learn about the order in which middleware functions are executed.",duration:"00:09:18",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:aM},contentType:E,file:aN,folderId:aB,id:aO,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aP}],facebookImage:[{__meta__:{createdBy:c,createdDate:aM},contentType:E,file:aN,folderId:aB,id:aO,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aP}],socialSharingDescription:"I just learned about middleware execution order with @bencodezen on @VueMastery!",belongsToCourse:cS},{slug:"middleware-error-handling",status:H,date:LJ,title:"Error handling",lessonNumber:ah,free:F,image:[{__meta__:{createdBy:c,createdDate:aM},contentType:E,file:aN,folderId:aB,id:aO,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aP}],description:"Learn about error handling inside of middleware.",duration:gZ,author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:aM},contentType:E,file:aN,folderId:aB,id:aO,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aP}],facebookImage:[{__meta__:{createdBy:c,createdDate:aM},contentType:E,file:aN,folderId:aB,id:aO,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aP}],socialSharingDescription:"I just learned about error handling in Nuxt 3 middleware with @bencodezen on @VueMastery!",belongsToCourse:cS},{slug:"performance-considerations",status:H,date:LK,title:"Performance considerations",lessonNumber:an,free:F,image:[{__meta__:{createdBy:c,createdDate:aM},contentType:E,file:aN,folderId:aB,id:aO,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aP}],description:"While middleware can play a vital role in our Nuxt 3 applications, it is crucial to be aware of the potential performance challenges that may arise and how we can mitigate them.",duration:wb,author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:aM},contentType:E,file:aN,folderId:aB,id:aO,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aP}],facebookImage:[{__meta__:{createdBy:c,createdDate:aM},contentType:E,file:aN,folderId:aB,id:aO,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aP}],socialSharingDescription:"I just learned about Nuxt 3 middleware performance considerations with @bencodezen on @VueMastery!",belongsToCourse:cS},{slug:"middleware-next-steps",status:H,date:LK,title:ep,lessonNumber:aS,free:F,image:[{__meta__:{createdBy:c,createdDate:aM},contentType:E,file:aN,folderId:aB,id:aO,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aP}],description:"You're now ready to leverage middleware challenges in your Nuxt 3 projects.",duration:"00:01:05",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:aM},contentType:E,file:aN,folderId:aB,id:aO,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aP}],facebookImage:[{__meta__:{createdBy:c,createdDate:aM},contentType:E,file:aN,folderId:aB,id:aO,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aP}],socialSharingDescription:"I finished the Nuxt 3 Middleware course with @bencodezen on @VueMastery!",belongsToCourse:cS}],lessonsCount:aS,order:M,parentId:M,slug:"nuxt-3-middleware",teachers:[{firstName:da,lastName:db,about:dc,image:[{__meta__:{createdBy:c,createdDate:dd},contentType:E,file:de,folderId:X,id:df,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:dg}]}],title:"Nuxt 3 Middleware"},"1681168217158":{__meta__:{createdBy:c,createdDate:"2023-04-10T23:10:17.158Z",lastModifiedBy:c,lastModifiedDate:"2024-03-19T20:46:48.753Z",locale:T},category:[{name:af,color:ag},{name:au,color:av}],completable:G,courseDependencies:J,courseLabelsBar:J,description:"Transform your front-end apps into powerful full-stack applications with Nuxt 3 by leveraging its server capabilities.",difficulty:cK,duration:"00:54:43",free:F,id:cX,image:[{__meta__:{createdBy:c,createdDate:aU},contentType:E,file:aV,folderId:aW,id:aX,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aY}],isComingSoon:F,isDraft:F,isPromoted:F,label:ad,latestAt:J,lessons:[{slug:"nuxt-3-server-introduction",status:H,date:"2023-10-06T00:00:00-07:00",title:cg,lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:aU},contentType:E,file:aV,folderId:aW,id:aX,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aY}],description:"Learn what Nuxt 3 server is and why you should consider adding it to your toolbelt!",duration:"00:03:15",author:N,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:aU},contentType:E,file:aV,folderId:aW,id:aX,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aY}],facebookImage:[{__meta__:{createdBy:c,createdDate:aU},contentType:E,file:aV,folderId:aW,id:aX,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aY}],socialSharingDescription:"I just got introduced to Nuxt 3 server with @bencodezen on @VueMastery",belongsToCourse:cX},{slug:"project-setup",status:H,date:"2023-10-12T00:00:00-07:00",title:Am,lessonNumber:U,free:G,image:[{__meta__:{createdBy:c,createdDate:aU},contentType:E,file:aV,folderId:aW,id:aX,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aY}],description:"In this lesson, you will learn how to set up a project for Nuxt 3 server using the Nuxt CLI tool \"nuxi.\"",duration:Ly,author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:aU},contentType:E,file:aV,folderId:aW,id:aX,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aY}],facebookImage:[{__meta__:{createdBy:c,createdDate:aU},contentType:E,file:aV,folderId:aW,id:aX,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aY}],socialSharingDescription:"I just learned how to setup my project with Nuxt 3 server with @bencodezen on @VueMastery",belongsToCourse:cX},{slug:"fetching-apis",status:H,date:LL,title:"Fetching APIs",lessonNumber:ab,free:F,image:[{__meta__:{createdBy:c,createdDate:aU},contentType:E,file:aV,folderId:aW,id:aX,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aY}],description:"In this lesson, we'll take a look at different patterns of fetching data from APIs with Nuxt 3.",duration:"00:06:36",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:aU},contentType:E,file:aV,folderId:aW,id:aX,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aY}],facebookImage:[{__meta__:{createdBy:c,createdDate:aU},contentType:E,file:aV,folderId:aW,id:aX,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aY}],socialSharingDescription:"I just learned how to fetch data from APIs with Nuxt 3 with @bencodezen on @VueMastery",belongsToCourse:cX},{slug:"creating-apis",status:H,date:LL,title:"Creating APIs",lessonNumber:ac,free:F,image:[{__meta__:{createdBy:c,createdDate:aU},contentType:E,file:aV,folderId:aW,id:aX,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aY}],description:"Now that you understand how to fetch data from APIs, you're ready for the first big milestone of working with Nuxt 3 server: creating your first API.",duration:"00:10:20",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:aU},contentType:E,file:aV,folderId:aW,id:aX,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aY}],facebookImage:[{__meta__:{createdBy:c,createdDate:aU},contentType:E,file:aV,folderId:aW,id:aX,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aY}],socialSharingDescription:"I just learned how to create custom APIs on Nuxt 3 with @bencodezen on @VueMastery",belongsToCourse:cX},{slug:"managing-api-errors",status:H,date:An,title:"Managing API Errors",lessonNumber:W,free:F,image:[{__meta__:{createdBy:c,createdDate:aU},contentType:E,file:aV,folderId:aW,id:aX,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aY}],description:"Learn how to manage errors in Nuxt 3 server APIs",duration:"00:05:41",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:aU},contentType:E,file:aV,folderId:aW,id:aX,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aY}],facebookImage:[{__meta__:{createdBy:c,createdDate:aU},contentType:E,file:aV,folderId:aW,id:aX,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aY}],socialSharingDescription:"I just learned how to manage errors in Nuxt 3 server APIs with @bencodezen on @VueMastery",belongsToCourse:cX},{slug:"server-routes",status:H,date:An,title:LM,lessonNumber:S,free:F,image:[{__meta__:{createdBy:c,createdDate:aU},contentType:E,file:aV,folderId:aW,id:aX,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aY}],description:"Learn how to create and use server routes with Nuxt 3",duration:"00:05:50",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:aU},contentType:E,file:aV,folderId:aW,id:aX,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aY}],facebookImage:[{__meta__:{createdBy:c,createdDate:aU},contentType:E,file:aV,folderId:aW,id:aX,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aY}],socialSharingDescription:"I just learned how to create and use server routes with @bencodezen on @VueMastery",belongsToCourse:cX},{slug:"server-middleware",status:H,date:An,title:"Server Middleware",lessonNumber:ae,free:F,image:[{__meta__:{createdBy:c,createdDate:aU},contentType:E,file:aV,folderId:aW,id:aX,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aY}],description:"Learn how to create and use Nuxt 3 server middleware",duration:"00:07:45",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:aU},contentType:E,file:aV,folderId:aW,id:aX,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aY}],facebookImage:[{__meta__:{createdBy:c,createdDate:aU},contentType:E,file:aV,folderId:aW,id:aX,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aY}],socialSharingDescription:"I just learned how to create Nuxt 3 server middleware with @bencodezen on @VueMastery",belongsToCourse:cX},{slug:"rendering-strategies-ssr-csr-and-more",status:H,date:LN,title:"Rendering Strategies (SSR, CSR and more)",lessonNumber:ah,free:F,image:[{__meta__:{createdBy:c,createdDate:aU},contentType:E,file:aV,folderId:aW,id:aX,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aY}],description:"Learn different strategies for rendering apps with Nuxt 3 server",duration:jl,author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:aU},contentType:E,file:aV,folderId:aW,id:aX,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aY}],facebookImage:[{__meta__:{createdBy:c,createdDate:aU},contentType:E,file:aV,folderId:aW,id:aX,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aY}],socialSharingDescription:"I just learned different strategies for rendering apps with Nuxt 3 server with @bencodezen on @VueMastery",belongsToCourse:cX},{slug:"nuxt-3-server-next-steps",status:H,date:LN,title:ep,lessonNumber:an,free:F,image:[{__meta__:{createdBy:c,createdDate:aU},contentType:E,file:aV,folderId:aW,id:aX,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aY}],description:"You now have the fundamental skills to build the fullstack apps you always dreamed of making, with Nuxt 3 Server.",duration:"00:03:17",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:aU},contentType:E,file:aV,folderId:aW,id:aX,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aY}],facebookImage:[{__meta__:{createdBy:c,createdDate:aU},contentType:E,file:aV,folderId:aW,id:aX,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aY}],socialSharingDescription:"I just finished Nuxt 3 Server with @bencodezen on @VueMastery",belongsToCourse:cX}],lessonsCount:an,order:M,parentId:M,slug:"nuxt-3-server",teachers:[{firstName:da,lastName:db,about:dc,image:[{__meta__:{createdBy:c,createdDate:dd},contentType:E,file:de,folderId:X,id:df,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:dg}]}],title:"Fullstack w\u002F Nuxt Nitro"},"1685997153867":{__meta__:{createdBy:c,createdDate:"2023-06-05T20:32:33.867Z",lastModifiedBy:c,lastModifiedDate:"2024-09-23T18:59:49.156Z",locale:T},category:[{name:af,color:ag},{name:au,color:av}],completable:G,courseDependencies:J,courseLabelsBar:J,description:JM,difficulty:bM,duration:"00:55:01",free:F,id:cZ,image:[{__meta__:{createdBy:c,createdDate:JN},contentType:K,file:JO,folderId:JP,id:JQ,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:JR},{__meta__:{createdBy:c,createdDate:JS},contentType:K,file:JT,folderId:aR,id:JU,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:JV}],isComingSoon:F,isDraft:F,isPromoted:F,label:dP,latestAt:J,lessons:[{slug:"introduction-composition-api",status:H,date:LO,title:cg,lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:bc},contentType:I,file:bd,folderId:be,id:bf,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bg}],description:"Explore the functionality found in the Vue Router library, which allows us to create advanced navigation through our Single Page Applications using Vue.",duration:"00:01:19",author:P,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:bc},contentType:I,file:bd,folderId:be,id:bf,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bg}],facebookImage:[{__meta__:{createdBy:c,createdDate:bc},contentType:I,file:bd,folderId:be,id:bf,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bg}],socialSharingDescription:"I'm about to take a tour of Vue Router using Vue 3 on @VueMastery",belongsToCourse:cZ},{slug:"receiving-url-parameters-composition-api",status:H,date:LO,title:JX,lessonNumber:U,free:G,image:[{__meta__:{createdBy:c,createdDate:bc},contentType:I,file:bd,folderId:be,id:bf,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bg}],description:JY,duration:"00:04:31",author:P,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:bc},contentType:I,file:bd,folderId:be,id:bf,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bg}],facebookImage:[{__meta__:{createdBy:c,createdDate:bc},contentType:I,file:bd,folderId:be,id:bf,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bg}],socialSharingDescription:JZ,belongsToCourse:cZ},{slug:"building-pagination-composition-api",status:H,date:"2023-08-02T00:00:00-07:00",title:J_,lessonNumber:ab,free:F,image:[{__meta__:{createdBy:c,createdDate:bc},contentType:I,file:bd,folderId:be,id:bf,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bg}],description:J$,duration:"00:09:27",author:P,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:bc},contentType:I,file:bd,folderId:be,id:bf,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bg}],facebookImage:[{__meta__:{createdBy:c,createdDate:bc},contentType:I,file:bd,folderId:be,id:bf,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bg}],socialSharingDescription:Ka,belongsToCourse:cZ},{slug:"nested-routes-composition-api",status:H,date:LA,title:Kb,lessonNumber:ac,free:F,image:[{__meta__:{createdBy:c,createdDate:bc},contentType:I,file:bd,folderId:be,id:bf,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bg}],description:Kc,duration:rt,author:P,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:bc},contentType:I,file:bd,folderId:be,id:bf,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bg}],facebookImage:[{__meta__:{createdBy:c,createdDate:bc},contentType:I,file:bd,folderId:be,id:bf,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bg}],socialSharingDescription:Kd,belongsToCourse:cZ},{slug:"redirect-and-alias-composition-api",status:H,date:"2023-08-03T00:00:00+01:00",title:Ke,lessonNumber:W,free:F,image:[{__meta__:{createdBy:c,createdDate:bc},contentType:I,file:bd,folderId:be,id:bf,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bg}],description:"URLs can change in production. Learn how to redirect or alias new routes. ",duration:KC,author:P,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:bc},contentType:I,file:bd,folderId:be,id:bf,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bg}],facebookImage:[{__meta__:{createdBy:c,createdDate:bc},contentType:I,file:bd,folderId:be,id:bf,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bg}],socialSharingDescription:"I learned how to redirect and alias with Vue Router on @VueMastery",belongsToCourse:cZ},{slug:"programmatic-navigation-composition-api",status:H,date:"2023-08-04T00:00:00-07:00",title:Kf,lessonNumber:S,free:F,image:[{__meta__:{createdBy:c,createdDate:bc},contentType:I,file:bd,folderId:be,id:bf,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bg}],description:Kg,duration:"00:05:20",author:P,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:bc},contentType:I,file:bd,folderId:be,id:bf,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bg}],facebookImage:[{__meta__:{createdBy:c,createdDate:bc},contentType:I,file:bd,folderId:be,id:bf,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bg}],socialSharingDescription:Kh,belongsToCourse:cZ},{slug:"error-handling-and-404s-composition-api",status:H,date:"2023-09-06T00:00:00-07:00",title:Ki,lessonNumber:ae,free:F,image:[{__meta__:{createdBy:c,createdDate:bc},contentType:I,file:bd,folderId:be,id:bf,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bg}],description:Kj,duration:LP,author:P,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:bc},contentType:I,file:bd,folderId:be,id:bf,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bg}],facebookImage:[{__meta__:{createdBy:c,createdDate:bc},contentType:I,file:bd,folderId:be,id:bf,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bg}],socialSharingDescription:"I'm learning about error handling and 404s on @VueMastery",belongsToCourse:cZ},{slug:"flash-messages-composition-api",status:H,date:LQ,title:Kk,lessonNumber:ah,free:F,image:[{__meta__:{createdBy:c,createdDate:bc},contentType:I,file:bd,folderId:be,id:bf,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bg}],description:Kl,duration:"00:05:23",author:P,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:bc},contentType:I,file:bd,folderId:be,id:bf,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bg}],facebookImage:[{__meta__:{createdBy:c,createdDate:bc},contentType:I,file:bd,folderId:be,id:bf,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bg}],socialSharingDescription:Kn,belongsToCourse:cZ},{slug:"wrapping-up-composition-api",status:H,date:"2023-09-22T00:00:00-07:00",title:Ko,lessonNumber:an,free:F,image:[{__meta__:{createdBy:c,createdDate:bc},contentType:I,file:bd,folderId:be,id:bf,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bg}],description:"Learn about key features of Vue Router in this final lesson of the course.",duration:hy,author:P,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:bc},contentType:I,file:bd,folderId:be,id:bf,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bg}],facebookImage:[{__meta__:{createdBy:c,createdDate:bc},contentType:I,file:bd,folderId:be,id:bf,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bg}],socialSharingDescription:"I learned about crucial features of Vue Router and when to use them on @VueMastery",belongsToCourse:cZ}],lessonsCount:an,order:M,parentId:M,slug:"touring-vue-router-composition-api",teachers:[{firstName:dw,lastName:dx,about:dy,image:[{__meta__:{createdBy:c,createdDate:dz},contentType:E,file:dA,folderId:X,id:dB,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:dC}]}],title:"Touring Vue Router (Composition API)"},"1686855549025":{__meta__:{createdBy:c,createdDate:"2023-06-15T18:59:09.025Z",lastModifiedBy:c,lastModifiedDate:"2023-06-20T13:34:29.066Z",locale:T},completable:G,courseDependencies:J,courseLabelsBar:J,description:"Get an exclusive glimpse into the mind of the creator of Vue.",difficulty:bM,duration:"00:36:21",free:F,id:bO,image:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],isComingSoon:F,isDraft:F,isPromoted:F,label:ad,lessons:[{slug:"what-is-your-daily-routine",status:H,date:"2023-06-15T00:00:00-07:00",title:"What is your daily routine?",lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],description:"Evan answers: What does the daily routine look like for a full-time open source creator?",duration:"00:01:38",author:bi,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],facebookImage:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],socialSharingDescription:bQ,belongsToCourse:bO},{slug:"who-inspires-you",status:H,date:"2023-06-18T00:00:00-07:00",title:"Who inspires you?",lessonNumber:U,free:G,image:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],description:"Evan answers: Who inspires you?",duration:"00:01:15",author:bi,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],facebookImage:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],socialSharingDescription:bQ,belongsToCourse:bO},{slug:"advice-for-becoming-a-full-time-open-source-creator",status:H,date:dG,title:"Advice for becoming a full-time open-source creator?",lessonNumber:ab,free:F,image:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],description:"Evan answers: Advice for becoming a full-time open-source creator?",duration:LR,author:bi,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],facebookImage:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],socialSharingDescription:bQ,belongsToCourse:bO},{slug:"how-do-you-overcome-tough-challenges",status:H,date:dG,title:"How do you overcome tough challenges?",lessonNumber:ac,free:F,image:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],description:"Evan answers: How do you overcome tough challenges?",duration:"00:01:53",author:bi,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],facebookImage:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],socialSharingDescription:bQ,belongsToCourse:bO},{slug:"what-is-your-next-game-changing-idea",status:H,date:dG,title:"What is your next game-changing idea?",lessonNumber:W,free:F,image:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],description:"Evan answers: What is your next game-changing idea?",duration:"00:00:40",author:bi,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],facebookImage:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],socialSharingDescription:bQ,belongsToCourse:bO},{slug:"whats-your-approach-to-creating-elegant-components",status:H,date:dG,title:"What's your approach to creating elegant components?",lessonNumber:S,free:F,image:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],description:"Evan answers: What's your approach to creating elegant components?",duration:AD,author:bi,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],facebookImage:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],socialSharingDescription:bQ,belongsToCourse:bO},{slug:"recommended-toolchain-for-a-solo-developer-working-alone",status:H,date:dG,title:"Recommended toolchain for a solo developer working alone?",lessonNumber:ae,free:F,image:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],description:"Evan answers: Recommended toolchain for a solo developer working alone?",duration:"00:00:56",author:bi,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],facebookImage:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],socialSharingDescription:bQ,belongsToCourse:bO},{slug:"what-to-consider-when-using-experimental-vue-features",status:H,date:dG,title:"What to consider when using experimental Vue features?",lessonNumber:ah,free:F,image:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],description:"Evan answers: What to consider when using experimental Vue features?",duration:"00:02:53",author:bi,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],facebookImage:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],socialSharingDescription:bQ,belongsToCourse:bO},{slug:"will-there-be-a-dedicated-mobile-solution",status:H,date:dG,title:"Will there be a dedicated mobile solution?",lessonNumber:an,free:F,image:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],description:"Evan answers: Will there be a dedicated mobile solution?",duration:LR,author:bi,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],facebookImage:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],socialSharingDescription:bQ,belongsToCourse:bO},{slug:"what-is-your-vision-for-vue-4",status:H,date:dG,title:"What is your vision for Vue 4?",lessonNumber:aS,free:F,image:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],description:"Evan answers: What is your vision for Vue 4?",duration:wb,author:bi,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],facebookImage:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],socialSharingDescription:bQ,belongsToCourse:bO},{slug:"how-can-vues-longevity-be-assured",status:H,date:dG,title:"How can Vue's longevity be assured?",lessonNumber:bN,free:F,image:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],description:"Evan answers: How can Vue's longevity be assured?",duration:"00:02:42",author:bi,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],facebookImage:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],socialSharingDescription:bQ,belongsToCourse:bO},{slug:"how-to-prevent-vue-from-becoming-overcomplicated",status:H,date:dG,title:"How to prevent Vue from becoming overcomplicated?",lessonNumber:dN,free:F,image:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],description:"Evan answers: How to prevent Vue from becoming overcomplicated?",duration:Be,author:bi,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],facebookImage:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],socialSharingDescription:bQ,belongsToCourse:bO},{slug:"how-does-the-team-maintain-backwards-compatibility",status:H,date:eu,title:"How does the team maintain backwards compatibility?",lessonNumber:eF,free:F,image:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],description:"Evan answers: How does the team maintain backwards compatibility?",duration:"00:02:01",author:bi,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],facebookImage:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],socialSharingDescription:bQ,belongsToCourse:bO},{slug:"how-can-we-help-increase-adoption-of-vue-in-companies",status:H,date:eu,title:"How can we help increase adoption of Vue in companies?",lessonNumber:eG,free:F,image:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],description:"Evan answers: How can we help increase adoption of Vue in companies?",duration:"00:02:56",author:bi,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],facebookImage:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],socialSharingDescription:bQ,belongsToCourse:bO},{slug:"will-vue-become-compile-only-like-svelte",status:H,date:eu,title:"Will Vue become compile-only like Svelte?",lessonNumber:fm,free:F,image:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],description:"Evan answers: Will Vue become compile-only like Svelte?",duration:"00:01:36",author:bi,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],facebookImage:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],socialSharingDescription:bQ,belongsToCourse:bO},{slug:"what-about-react-server-components-for-vue",status:H,date:eu,title:"What about React Server Components for Vue?",lessonNumber:eG,free:F,image:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],description:"Evan answers: What about React Server Components for Vue?",duration:"00:01:28",author:bi,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],facebookImage:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],socialSharingDescription:bQ,belongsToCourse:bO},{slug:"how-does-the-javascript-ecosystem-influence-vues-direction",status:H,date:eu,title:"How does the JavaScript ecosystem influence Vue's direction?",lessonNumber:17,free:F,image:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],description:"Evan answers: How does the JavaScript ecosystem influence Vue's direction?",duration:"00:03:02",author:bi,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],facebookImage:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],socialSharingDescription:bQ,belongsToCourse:bO},{slug:"what-advice-for-aspiring-developers",status:H,date:eu,title:"What advice for aspiring developers?",lessonNumber:18,free:F,image:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],description:"Evan answers: What advice for aspiring developers?",duration:LG,author:bi,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],facebookImage:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],socialSharingDescription:bQ,belongsToCourse:bO},{slug:"how-can-people-help-support-you-and-the-vue-project",status:H,date:eu,title:"How can people help support you and the Vue Project?",lessonNumber:LS,free:F,image:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],description:"Evan answers: How can people help support you and the Vue Project?",duration:"00:02:05",author:bi,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],facebookImage:[{__meta__:{createdBy:c,createdDate:Y},contentType:I,file:Z,folderId:_,id:$,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aa}],socialSharingDescription:bQ,belongsToCourse:bO}],lessonsCount:LS,order:M,parentId:M,slug:"qa-with-evan-you",teachers:[{firstName:fw,lastName:fx,about:fy,image:[{__meta__:{createdBy:c,createdDate:fz},contentType:E,file:fA,folderId:X,id:fB,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:fC}]}],title:"Q&A with Evan You"},"1687992511586":{__meta__:{createdBy:c,createdDate:"2023-06-28T22:48:31.586Z",lastModifiedBy:c,lastModifiedDate:"2024-09-23T19:01:12.629Z",locale:T},category:[{name:au,color:av},{name:af,color:ag}],completable:G,courseDependencies:J,courseLabelsBar:J,description:"Future-proof your skills by harnessing the power of AI by building a Vue app powered by multiple popular AI APIs.",difficulty:cK,duration:Dr,free:F,id:cY,image:[{__meta__:{createdBy:c,createdDate:aZ},contentType:I,file:a_,folderId:a$,id:ba,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bb}],isComingSoon:F,isDraft:F,isPromoted:F,label:dP,latestAt:J,lessons:[{slug:"ai-powered-app-introduction",status:H,date:"2023-08-31T00:00:00-07:00",title:cg,lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:aZ},contentType:I,file:a_,folderId:a$,id:ba,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bb}],description:"Throughout this course, you’ll learn the skills and techniques needed to create a truly intelligent application that can interact with users, understand natural language, process audio inputs, and even analyze images.",duration:LH,author:bK,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:aZ},contentType:I,file:a_,folderId:a$,id:ba,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bb}],facebookImage:[{__meta__:{createdBy:c,createdDate:aZ},contentType:I,file:a_,folderId:a$,id:ba,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bb}],socialSharingDescription:dS,belongsToCourse:cY},{slug:"openais-chat-completion-api",status:H,date:LQ,title:"OpenAI's Chat Completion API",lessonNumber:U,free:G,image:[{__meta__:{createdBy:c,createdDate:aZ},contentType:I,file:a_,folderId:a$,id:ba,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bb}],description:"Dive into OpenAI's Chat Completion API, a tool that can enhance your web projects with the power of AI.",duration:fi,author:bK,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:aZ},contentType:I,file:a_,folderId:a$,id:ba,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bb}],facebookImage:[{__meta__:{createdBy:c,createdDate:aZ},contentType:I,file:a_,folderId:a$,id:ba,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bb}],socialSharingDescription:dS,belongsToCourse:cY},{slug:"analyze-text-feature",status:H,date:"2023-09-11T00:00:00-07:00",title:"Analyze Text Feature",lessonNumber:ab,free:G,image:[{__meta__:{createdBy:c,createdDate:aZ},contentType:I,file:a_,folderId:a$,id:ba,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bb}],description:"In this lesson, we’ll build the Analyze Text feature using Vue on the frontend, and a Node express server on the backend.",duration:"00:07:37",author:bK,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:aZ},contentType:I,file:a_,folderId:a$,id:ba,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bb}],facebookImage:[{__meta__:{createdBy:c,createdDate:aZ},contentType:I,file:a_,folderId:a$,id:ba,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bb}],socialSharingDescription:dS,belongsToCourse:cY},{slug:"tokenize-a-string",status:H,date:"2023-09-21T00:00:00-07:00",title:"Tokenize a String",lessonNumber:ac,free:F,image:[{__meta__:{createdBy:c,createdDate:aZ},contentType:I,file:a_,folderId:a$,id:ba,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bb}],description:"Learn how to tokenize a string using the 'gpt-3-encoder' Node package, which will help determine the token count before sending a request to OpenAI's API.",duration:A$,author:bK,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:aZ},contentType:I,file:a_,folderId:a$,id:ba,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bb}],facebookImage:[{__meta__:{createdBy:c,createdDate:aZ},contentType:I,file:a_,folderId:a$,id:ba,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bb}],socialSharingDescription:dS,belongsToCourse:cY},{slug:"transcribe-audio-with-deepgrams-speech-to-text-api",status:H,date:"2023-10-02T00:00:00-07:00",title:"Transcribe Audio with Deepgram’s Speech-to-Text API",lessonNumber:W,free:F,image:[{__meta__:{createdBy:c,createdDate:aZ},contentType:I,file:a_,folderId:a$,id:ba,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bb}],description:"We’ll build a feature that allows us to use the power of AI to analyze an audio file",duration:LT,author:bK,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:aZ},contentType:I,file:a_,folderId:a$,id:ba,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bb}],facebookImage:[{__meta__:{createdBy:c,createdDate:aZ},contentType:I,file:a_,folderId:a$,id:ba,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bb}],socialSharingDescription:dS,belongsToCourse:cY},{slug:"analyze-audio-feature",status:H,date:gk,title:"Analyze Audio Feature",lessonNumber:S,free:F,image:[{__meta__:{createdBy:c,createdDate:aZ},contentType:I,file:a_,folderId:a$,id:ba,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bb}],description:"We’ll continue to explore what OpenAI’s chat completion models can do and we’ll finish building our Analyze Audio feature so we can ask OpenAI questions about audio files.",duration:wL,author:bK,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:aZ},contentType:I,file:a_,folderId:a$,id:ba,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bb}],facebookImage:[{__meta__:{createdBy:c,createdDate:aZ},contentType:I,file:a_,folderId:a$,id:ba,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bb}],socialSharingDescription:dS,belongsToCourse:cY},{slug:"introduction-to-langchain",status:H,date:gk,title:"Introduction to LangChain",lessonNumber:ae,free:F,image:[{__meta__:{createdBy:c,createdDate:aZ},contentType:I,file:a_,folderId:a$,id:ba,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bb}],description:"We’ll learn about LangChain, an amazing tool that we can use to give the AI model “memory”, so the interaction doesn’t just feel like a back and forth conversation where both parties remember the entire conversation…. it is one!",duration:"00:07:03",author:bK,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:aZ},contentType:I,file:a_,folderId:a$,id:ba,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bb}],facebookImage:[{__meta__:{createdBy:c,createdDate:aZ},contentType:I,file:a_,folderId:a$,id:ba,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bb}],socialSharingDescription:dS,belongsToCourse:cY},{slug:"analyze-image-feature",status:H,date:gk,title:"Analyze Image Feature",lessonNumber:ah,free:F,image:[{__meta__:{createdBy:c,createdDate:aZ},contentType:I,file:a_,folderId:a$,id:ba,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bb}],description:"Learn about the Replicate API, which allows us to incorporate AI models into our applications without needing to understand machine learning intricacies.",duration:s_,author:bK,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:aZ},contentType:I,file:a_,folderId:a$,id:ba,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bb}],facebookImage:[{__meta__:{createdBy:c,createdDate:aZ},contentType:I,file:a_,folderId:a$,id:ba,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bb}],socialSharingDescription:dS,belongsToCourse:cY},{slug:"langchain-and-replicate",status:H,date:gk,title:"Langchain and Replicate",lessonNumber:an,free:F,image:[{__meta__:{createdBy:c,createdDate:aZ},contentType:I,file:a_,folderId:a$,id:ba,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bb}],description:"learn how to integrate Langchain with Replicate to enhance our app's Analyze Image feature.",duration:Ae,author:bK,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:aZ},contentType:I,file:a_,folderId:a$,id:ba,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bb}],facebookImage:[{__meta__:{createdBy:c,createdDate:aZ},contentType:I,file:a_,folderId:a$,id:ba,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bb}],socialSharingDescription:dS,belongsToCourse:cY}],lessonsCount:an,order:M,parentId:M,slug:"programming-an-ai-powered-app",teachers:[{firstName:zz,lastName:zA,about:zB,image:[{__meta__:{createdBy:c,createdDate:zC},contentType:E,file:zD,folderId:X,id:zE,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:zF}]}],title:"Programming an AI-Powered App"},"1695076097636":{__meta__:{createdBy:c,createdDate:"2023-09-18T22:28:17.636Z",lastModifiedBy:c,lastModifiedDate:"2024-10-17T20:21:07.349Z",locale:T},category:[{name:af,color:ag},{name:au,color:av}],completable:G,courseDependencies:J,courseLabelsBar:J,description:"Create quick and beautiful user interfaces with the popular Vuetify UI component library.",difficulty:aQ,duration:"00:51:10",free:F,id:ev,image:[{__meta__:{createdBy:c,createdDate:bR},contentType:I,file:bS,folderId:bT,id:bU,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bV}],isComingSoon:F,isDraft:F,isPromoted:F,label:dP,latestAt:J,lessons:[{slug:"intro-to-vuetify",status:H,date:LU,title:"Intro to Vuetify",lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:bR},contentType:I,file:bS,folderId:bT,id:bU,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bV}],description:eU,duration:"00:02:26",author:bL,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:bR},contentType:I,file:bS,folderId:bT,id:bU,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bV}],facebookImage:[{__meta__:{createdBy:c,createdDate:bR},contentType:I,file:bS,folderId:bT,id:bU,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bV}],socialSharingDescription:eV,belongsToCourse:ev},{slug:"understanding-key-vuetify-concepts",status:H,date:LU,title:"Understanding Key Vuetify concepts",lessonNumber:U,free:G,image:[{__meta__:{createdBy:c,createdDate:bR},contentType:I,file:bS,folderId:bT,id:bU,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bV}],description:eU,duration:"00:13:42",author:bL,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:bR},contentType:I,file:bS,folderId:bT,id:bU,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bV}],facebookImage:[{__meta__:{createdBy:c,createdDate:bR},contentType:I,file:bS,folderId:bT,id:bU,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bV}],socialSharingDescription:eV,belongsToCourse:ev},{slug:"building-the-x-clone-core-ui-elements",status:H,date:gl,title:"Building the X Clone: Core UI Elements",lessonNumber:ab,free:F,image:[{__meta__:{createdBy:c,createdDate:bR},contentType:I,file:bS,folderId:bT,id:bU,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bV}],description:eU,duration:"00:11:26",author:bL,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:bR},contentType:I,file:bS,folderId:bT,id:bU,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bV}],facebookImage:[{__meta__:{createdBy:c,createdDate:bR},contentType:I,file:bS,folderId:bT,id:bU,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bV}],socialSharingDescription:eV,belongsToCourse:ev},{slug:"building-the-x-clone-adding-tabs",status:H,date:gl,title:"Building the X Clone: Adding Tabs",lessonNumber:ac,free:F,image:[{__meta__:{createdBy:c,createdDate:bR},contentType:I,file:bS,folderId:bT,id:bU,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bV}],description:eU,duration:LT,author:bL,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:bR},contentType:I,file:bS,folderId:bT,id:bU,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bV}],facebookImage:[{__meta__:{createdBy:c,createdDate:bR},contentType:I,file:bS,folderId:bT,id:bU,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bV}],socialSharingDescription:eV,belongsToCourse:ev},{slug:"building-the-x-clone-infinite-scroll",status:H,date:gl,title:"Building the X Clone: Infinite Scroll",lessonNumber:W,free:F,image:[{__meta__:{createdBy:c,createdDate:bR},contentType:I,file:bS,folderId:bT,id:bU,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bV}],description:eU,duration:"00:09:36",author:bL,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:bR},contentType:I,file:bS,folderId:bT,id:bU,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bV}],facebookImage:[{__meta__:{createdBy:c,createdDate:bR},contentType:I,file:bS,folderId:bT,id:bU,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bV}],socialSharingDescription:eV,belongsToCourse:ev},{slug:"bonus-vuetify-tips-and-whats-to-come",status:H,date:gl,title:"Bonus: Vuetify Tips and what’s to come",lessonNumber:S,free:F,image:[{__meta__:{createdBy:c,createdDate:bR},contentType:I,file:bS,folderId:bT,id:bU,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bV}],description:eU,duration:Km,author:bL,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:bR},contentType:I,file:bS,folderId:bT,id:bU,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bV}],facebookImage:[{__meta__:{createdBy:c,createdDate:bR},contentType:I,file:bS,folderId:bT,id:bU,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bV}],socialSharingDescription:eV,belongsToCourse:ev}],lessonsCount:S,order:M,parentId:M,slug:"easy-interfaces-with-vuetify",teachers:[{firstName:gc,lastName:gd,about:ge,image:[{__meta__:{createdBy:c,createdDate:gf},contentType:E,file:gg,folderId:gh,id:gi,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:gj}]}],title:"Easy Interfaces with Vuetify 3"},"1699550011467":{__meta__:{createdBy:c,createdDate:"2023-11-09T17:13:31.467Z",lastModifiedBy:c,lastModifiedDate:"2025-03-20T15:06:59.272Z",locale:T},category:[{name:af,color:ag},{name:au,color:av}],completable:G,courseDependencies:J,courseLabelsBar:J,description:dT,difficulty:aQ,duration:"00:52:09",free:G,id:dt,image:[{__meta__:{createdBy:c,createdDate:bo},contentType:I,file:bp,folderId:bq,id:br,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bs}],isComingSoon:F,isDraft:F,isPromoted:F,label:dP,latestAt:Ao,lessons:[{slug:"pro-nuxt-workflow-intro",status:H,date:Ao,title:"Pro Nuxt Workflow Intro",lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:bo},contentType:I,file:bp,folderId:bq,id:br,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bs}],description:dT,duration:kA,author:bL,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:bo},contentType:I,file:bp,folderId:bq,id:br,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bs}],facebookImage:[{__meta__:{createdBy:c,createdDate:bo},contentType:I,file:bp,folderId:bq,id:br,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bs}],socialSharingDescription:ej,belongsToCourse:dt},{slug:"performance-optimizations",status:H,date:Ao,title:"Performance Optimizations",lessonNumber:U,free:G,image:[{__meta__:{createdBy:c,createdDate:bo},contentType:I,file:bp,folderId:bq,id:br,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bs}],description:dT,duration:iW,author:bL,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:bo},contentType:I,file:bp,folderId:bq,id:br,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bs}],facebookImage:[{__meta__:{createdBy:c,createdDate:bo},contentType:I,file:bp,folderId:bq,id:br,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bs}],socialSharingDescription:ej,belongsToCourse:dt},{slug:"pro-nuxt-middleware",status:H,date:gm,title:"Nuxt Middleware",lessonNumber:ab,free:G,image:[{__meta__:{createdBy:c,createdDate:bo},contentType:I,file:bp,folderId:bq,id:br,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bs}],description:dT,duration:LP,author:bL,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:bo},contentType:I,file:bp,folderId:bq,id:br,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bs}],facebookImage:[{__meta__:{createdBy:c,createdDate:bo},contentType:I,file:bp,folderId:bq,id:br,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bs}],socialSharingDescription:ej,belongsToCourse:dt},{slug:"pro-nuxt-nitro",status:H,date:gm,title:"Nuxt Nitro",lessonNumber:ac,free:G,image:[{__meta__:{createdBy:c,createdDate:bo},contentType:I,file:bp,folderId:bq,id:br,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bs}],description:dT,duration:LF,author:bL,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:bo},contentType:I,file:bp,folderId:bq,id:br,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bs}],facebookImage:[{__meta__:{createdBy:c,createdDate:bo},contentType:I,file:bp,folderId:bq,id:br,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bs}],socialSharingDescription:ej,belongsToCourse:dt},{slug:"pro-nuxt-ui",status:H,date:gm,title:"Nuxt UI",lessonNumber:W,free:G,image:[{__meta__:{createdBy:c,createdDate:bo},contentType:I,file:bp,folderId:bq,id:br,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bs}],description:dT,duration:Kp,author:bL,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:bo},contentType:I,file:bp,folderId:bq,id:br,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bs}],facebookImage:[{__meta__:{createdBy:c,createdDate:bo},contentType:I,file:bp,folderId:bq,id:br,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bs}],socialSharingDescription:ej,belongsToCourse:dt},{slug:"pro-nuxt-content",status:H,date:Ap,title:"Nuxt Content",lessonNumber:S,free:G,image:[{__meta__:{createdBy:c,createdDate:bo},contentType:I,file:bp,folderId:bq,id:br,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bs}],description:dT,duration:HL,author:bL,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:bo},contentType:I,file:bp,folderId:bq,id:br,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bs}],facebookImage:[{__meta__:{createdBy:c,createdDate:bo},contentType:I,file:bp,folderId:bq,id:br,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bs}],socialSharingDescription:ej,belongsToCourse:dt},{slug:"pro-nuxt-studio",status:H,date:Ap,title:"Nuxt Studio",lessonNumber:ae,free:G,image:[{__meta__:{createdBy:c,createdDate:bo},contentType:I,file:bp,folderId:bq,id:br,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bs}],description:dT,duration:"00:05:03",author:bL,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:bo},contentType:I,file:bp,folderId:bq,id:br,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bs}],facebookImage:[{__meta__:{createdBy:c,createdDate:bo},contentType:I,file:bp,folderId:bq,id:br,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bs}],socialSharingDescription:ej,belongsToCourse:dt},{slug:"pro-nuxt-devtools",status:H,date:Ap,title:"Nuxt Devtools",lessonNumber:ah,free:G,image:[{__meta__:{createdBy:c,createdDate:bo},contentType:I,file:bp,folderId:bq,id:br,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bs}],description:dT,duration:"00:07:12",author:bL,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:bo},contentType:I,file:bp,folderId:bq,id:br,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bs}],facebookImage:[{__meta__:{createdBy:c,createdDate:bo},contentType:I,file:bp,folderId:bq,id:br,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bs}],socialSharingDescription:ej,belongsToCourse:dt}],lessonsCount:ah,order:M,parentId:M,slug:"pro-nuxt-workflow",teachers:[{firstName:gc,lastName:gd,about:ge,image:[{__meta__:{createdBy:c,createdDate:gf},contentType:E,file:gg,folderId:gh,id:gi,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:gj}]}],title:"Pro Nuxt Workflow"},"1700067828878":{__meta__:{createdBy:c,createdDate:"2023-11-15T17:03:48.878Z",lastModifiedBy:c,lastModifiedDate:"2024-09-23T19:01:52.888Z",locale:T},category:[{name:af,color:ag},{name:au,color:av}],completable:G,courseDependencies:J,courseLabelsBar:J,description:"Gain experience building a practical Nuxt app in this course that covers rendering for performance.",difficulty:aQ,duration:"00:48:20",free:F,id:dM,image:[{__meta__:{createdBy:c,createdDate:bA},contentType:I,file:bB,folderId:bC,id:bD,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bE}],isComingSoon:F,isDraft:F,isPromoted:F,label:dP,latestAt:"2024-02-19T00:00:00+01:00",lessons:[{slug:"intro",status:H,date:LV,title:zG,lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:bA},contentType:I,file:bB,folderId:bC,id:bD,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bE}],description:LW,duration:"00:03:43",author:V,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:bA},contentType:I,file:bB,folderId:bC,id:bD,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bE}],facebookImage:[{__meta__:{createdBy:c,createdDate:bA},contentType:I,file:bB,folderId:bC,id:bD,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bE}],socialSharingDescription:ew,belongsToCourse:dM},{slug:"server-side-rendering",status:H,date:LV,title:"Server-Side Rendering",lessonNumber:U,free:G,image:[{__meta__:{createdBy:c,createdDate:bA},contentType:I,file:bB,folderId:bC,id:bD,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bE}],description:LW,duration:"00:07:02",author:V,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:bA},contentType:I,file:bB,folderId:bC,id:bD,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bE}],facebookImage:[{__meta__:{createdBy:c,createdDate:bA},contentType:I,file:bB,folderId:bC,id:bD,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bE}],socialSharingDescription:ew,belongsToCourse:dM},{slug:"client-side-interactivity",status:H,date:"2024-02-15T00:00:00-08:00",title:"Client-Side Interactivity",lessonNumber:ab,free:F,image:[{__meta__:{createdBy:c,createdDate:bA},contentType:I,file:bB,folderId:bC,id:bD,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bE}],description:"This lesson focuses on client-side interactivity in a Nuxt.js app.",duration:jm,author:V,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:bA},contentType:I,file:bB,folderId:bC,id:bD,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bE}],facebookImage:[{__meta__:{createdBy:c,createdDate:bA},contentType:I,file:bB,folderId:bC,id:bD,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bE}],socialSharingDescription:ew,belongsToCourse:dM},{slug:"routing",status:H,date:"2024-02-29T00:00:00-08:00",title:"Routing",lessonNumber:ac,free:F,image:[{__meta__:{createdBy:c,createdDate:bA},contentType:I,file:bB,folderId:bC,id:bD,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bE}],description:"Learn about the Nuxt.js file-based routing system",duration:"00:08:42",author:V,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:bA},contentType:I,file:bB,folderId:bC,id:bD,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bE}],facebookImage:[{__meta__:{createdBy:c,createdDate:bA},contentType:I,file:bB,folderId:bC,id:bD,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bE}],socialSharingDescription:ew,belongsToCourse:dM},{slug:"layout",status:H,date:"2024-03-04T00:00:00-08:00",title:"Layout",lessonNumber:W,free:F,image:[{__meta__:{createdBy:c,createdDate:bA},contentType:I,file:bB,folderId:bC,id:bD,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bE}],description:"In this lesson, we’ll learn about the Layout system of Nuxt.js and create a navigation bar as part of the app layout.",duration:"00:05:54",author:V,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:bA},contentType:I,file:bB,folderId:bC,id:bD,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bE}],facebookImage:[{__meta__:{createdBy:c,createdDate:bA},contentType:I,file:bB,folderId:bC,id:bD,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bE}],socialSharingDescription:ew,belongsToCourse:dM},{slug:"layout-with-usestate",status:H,date:"2024-03-11T00:00:00-07:00",title:"Layout with useState",lessonNumber:S,free:F,image:[{__meta__:{createdBy:c,createdDate:bA},contentType:I,file:bB,folderId:bC,id:bD,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bE}],description:"In this lesson, we’re going to create a second layout for the Category Page and the Post Details Page.",duration:Bw,author:V,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:bA},contentType:I,file:bB,folderId:bC,id:bD,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bE}],facebookImage:[{__meta__:{createdBy:c,createdDate:bA},contentType:I,file:bB,folderId:bC,id:bD,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bE}],socialSharingDescription:ew,belongsToCourse:dM},{slug:"rendering-modes",status:H,date:"2024-03-19T00:00:00-07:00",title:"Rendering Modes",lessonNumber:ae,free:F,image:[{__meta__:{createdBy:c,createdDate:bA},contentType:I,file:bB,folderId:bC,id:bD,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bE}],description:"Learn about the various modes that a Nuxt app can be rendered in.",duration:LX,author:V,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:bA},contentType:I,file:bB,folderId:bC,id:bD,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bE}],facebookImage:[{__meta__:{createdBy:c,createdDate:bA},contentType:I,file:bB,folderId:bC,id:bD,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bE}],socialSharingDescription:ew,belongsToCourse:dM}],lessonsCount:ae,order:M,parentId:M,slug:"real-world-nuxt-3",teachers:[{firstName:ed,lastName:ee,about:J,image:[{__meta__:{createdBy:c,createdDate:ef},contentType:E,file:eg,folderId:X,id:eh,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ei}]}],title:"Real World Nuxt"},"1700067963566":{__meta__:{createdBy:c,createdDate:"2023-11-15T17:06:03.566Z",lastModifiedBy:c,lastModifiedDate:"2024-09-23T19:01:39.091Z",locale:T},category:[{name:af,color:ag},{name:au,color:av}],completable:G,courseDependencies:J,courseLabelsBar:J,description:"Sharpen your Nuxt 3 skills by building a Trello clone alongside a core team member.",difficulty:cK,duration:"02:12:29",free:F,id:cP,image:[{__meta__:{createdBy:c,createdDate:aC},contentType:I,file:aD,folderId:aE,id:aF,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aG}],isComingSoon:F,isDraft:F,isPromoted:F,label:dP,latestAt:J,lessons:[{slug:"trello-clone-nuxt-introduction",status:H,date:Aq,title:cg,lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:aC},contentType:I,file:aD,folderId:aE,id:aF,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aG}],description:"Ben Hong teaches how to create a Trello clone from scratch using Nuxt 3",duration:"00:03:08",author:N,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:aC},contentType:I,file:aD,folderId:aE,id:aF,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aG}],facebookImage:[{__meta__:{createdBy:c,createdDate:aC},contentType:I,file:aD,folderId:aE,id:aF,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aG}],socialSharingDescription:dH,belongsToCourse:cP},{slug:"trello-project-setup",status:H,date:Aq,title:Am,lessonNumber:U,free:G,image:[{__meta__:{createdBy:c,createdDate:aC},contentType:I,file:aD,folderId:aE,id:aF,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aG}],description:"Setup your Trello clone project",duration:"00:15:46",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:aC},contentType:I,file:aD,folderId:aE,id:aF,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aG}],facebookImage:[{__meta__:{createdBy:c,createdDate:aC},contentType:I,file:aD,folderId:aE,id:aF,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aG}],socialSharingDescription:dH,belongsToCourse:cP},{slug:"building-the-ui",status:H,date:Aq,title:"Building the UI",lessonNumber:ab,free:F,image:[{__meta__:{createdBy:c,createdDate:aC},contentType:I,file:aD,folderId:aE,id:aF,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aG}],description:"Build the UI for your Trello Clone",duration:"00:10:29",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:aC},contentType:I,file:aD,folderId:aE,id:aF,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aG}],facebookImage:[{__meta__:{createdBy:c,createdDate:aC},contentType:I,file:aD,folderId:aE,id:aF,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aG}],socialSharingDescription:dH,belongsToCourse:cP},{slug:"crud-for-columns",status:H,date:Ar,title:"CRUD for Columns",lessonNumber:ac,free:F,image:[{__meta__:{createdBy:c,createdDate:aC},contentType:I,file:aD,folderId:aE,id:aF,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aG}],description:"Learn to manage columns in your Trello clone",duration:"00:23:24",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:aC},contentType:I,file:aD,folderId:aE,id:aF,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aG}],facebookImage:[{__meta__:{createdBy:c,createdDate:aC},contentType:I,file:aD,folderId:aE,id:aF,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aG}],socialSharingDescription:dH,belongsToCourse:cP},{slug:"display-task-route-in-modal",status:H,date:Ar,title:"Display Task Route in Modal",lessonNumber:W,free:F,image:[{__meta__:{createdBy:c,createdDate:aC},contentType:I,file:aD,folderId:aE,id:aF,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aG}],description:"Learn how to display Task Route in Modal",duration:"00:16:01",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:aC},contentType:I,file:aD,folderId:aE,id:aF,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aG}],facebookImage:[{__meta__:{createdBy:c,createdDate:aC},contentType:I,file:aD,folderId:aE,id:aF,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aG}],socialSharingDescription:dH,belongsToCourse:cP},{slug:"crud-for-tasks",status:H,date:Ar,title:"CRUD for Tasks",lessonNumber:S,free:F,image:[{__meta__:{createdBy:c,createdDate:aC},contentType:I,file:aD,folderId:aE,id:aF,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aG}],description:"Learn how to use CRUD for tasks",duration:AE,author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:aC},contentType:I,file:aD,folderId:aE,id:aF,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aG}],facebookImage:[{__meta__:{createdBy:c,createdDate:aC},contentType:I,file:aD,folderId:aE,id:aF,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aG}],socialSharingDescription:dH,belongsToCourse:cP},{slug:"nuxt-drag-and-drop-tasks",status:H,date:"2024-01-10T00:00:00+01:00",title:"Drag and Drop Tasks",lessonNumber:ae,free:F,image:[{__meta__:{createdBy:c,createdDate:aC},contentType:I,file:aD,folderId:aE,id:aF,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aG}],description:"Learn how to create drag and drop tasks",duration:"00:20:47",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:aC},contentType:I,file:aD,folderId:aE,id:aF,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aG}],facebookImage:[{__meta__:{createdBy:c,createdDate:aC},contentType:I,file:aD,folderId:aE,id:aF,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aG}],socialSharingDescription:dH,belongsToCourse:cP},{slug:"drag-and-drop-columns",status:H,date:As,title:"Drag and Drop Columns",lessonNumber:ah,free:F,image:[{__meta__:{createdBy:c,createdDate:aC},contentType:I,file:aD,folderId:aE,id:aF,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aG}],description:"Learn how to create drag and drop columns",duration:IB,author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:aC},contentType:I,file:aD,folderId:aE,id:aF,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aG}],facebookImage:[{__meta__:{createdBy:c,createdDate:aC},contentType:I,file:aD,folderId:aE,id:aF,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aG}],socialSharingDescription:dH,belongsToCourse:cP},{slug:"refine-drag-and-drop-for-tasks",status:H,date:As,title:"Refine Drag and Drop for Tasks",lessonNumber:an,free:F,image:[{__meta__:{createdBy:c,createdDate:aC},contentType:I,file:aD,folderId:aE,id:aF,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aG}],description:"Learn how to refine drag and drop for tasks",duration:"00:06:08",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:aC},contentType:I,file:aD,folderId:aE,id:aF,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aG}],facebookImage:[{__meta__:{createdBy:c,createdDate:aC},contentType:I,file:aD,folderId:aE,id:aF,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aG}],socialSharingDescription:dH,belongsToCourse:cP},{slug:"bonus-with-next-steps",status:H,date:As,title:"Bonus with Next Steps",lessonNumber:aS,free:F,image:[{__meta__:{createdBy:c,createdDate:aC},contentType:I,file:aD,folderId:aE,id:aF,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aG}],description:"Learn how to add more Nuxt UI elements to enhance the UX",duration:"00:09:21",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:aC},contentType:I,file:aD,folderId:aE,id:aF,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aG}],facebookImage:[{__meta__:{createdBy:c,createdDate:aC},contentType:I,file:aD,folderId:aE,id:aF,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aG}],socialSharingDescription:dH,belongsToCourse:cP}],lessonsCount:aS,order:M,parentId:M,slug:"build-a-trello-clone-w-nuxt-3",teachers:[{firstName:da,lastName:db,about:dc,image:[{__meta__:{createdBy:c,createdDate:dd},contentType:E,file:de,folderId:X,id:df,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:dg}]}],title:"Build a Trello Clone w\u002F Nuxt 3"},"1706132786678":{__meta__:{createdBy:c,createdDate:"2024-01-24T21:46:26.678Z",lastModifiedBy:c,lastModifiedDate:"2024-09-23T17:47:50.268Z",locale:T},category:[{name:af,color:ag},{name:au,color:av}],completable:G,courseDependencies:J,courseLabelsBar:J,description:At,difficulty:aQ,duration:"00:18:15",free:F,id:fg,image:[{__meta__:{createdBy:c,createdDate:ex},contentType:I,file:ey,folderId:ez,id:eA,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:eB}],isComingSoon:F,isDraft:F,isPromoted:F,label:ad,latestAt:Au,lessons:[{slug:"rendering-revealed-preview",status:H,date:Au,title:"Rendering Revealed Preview",lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:ex},contentType:I,file:ey,folderId:ez,id:eA,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:eB}],description:At,duration:"00:00:39",author:O,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:ex},contentType:I,file:ey,folderId:ez,id:eA,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:eB}],facebookImage:[{__meta__:{createdBy:c,createdDate:ex},contentType:I,file:ey,folderId:ez,id:eA,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:eB}],socialSharingDescription:LY,belongsToCourse:fg},{slug:LZ,status:H,date:Au,title:L_,lessonNumber:U,free:F,image:[{__meta__:{createdBy:c,createdDate:ex},contentType:I,file:ey,folderId:ez,id:eA,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:eB}],description:At,duration:"00:17:36",author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:ex},contentType:I,file:ey,folderId:ez,id:eA,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:eB}],facebookImage:[{__meta__:{createdBy:c,createdDate:ex},contentType:I,file:ey,folderId:ez,id:eA,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:eB}],socialSharingDescription:LY,belongsToCourse:fg}],lessonsCount:U,order:M,parentId:M,slug:LZ,teachers:[{firstName:cs,lastName:cx,about:cy,image:[{__meta__:{createdBy:c,createdDate:cz},contentType:E,file:cA,folderId:X,id:cB,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cC}]}],title:L_},"1715357634199":{__meta__:{createdBy:c,createdDate:"2024-05-10T16:13:54.199Z",lastModifiedBy:c,lastModifiedDate:"2024-05-10T16:14:58.677Z",locale:T},category:[{name:af,color:ag}],completable:J,courseDependencies:J,courseLabelsBar:J,description:"Vapor mode is Vue's brand new compilation strategy that will enhance your apps' performance. Learn how it works and how to maximize its power with Vue Creator Evan You.",difficulty:cK,duration:L$,free:F,id:1715357634199,image:[{__meta__:{createdBy:c,createdDate:"2024-05-10T16:12:32.250Z"},contentType:I,file:"Vapor Mode w: Evan You.webp",folderId:1715357243559,id:1715357544593,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FVapor%20Mode%20w%3A%20Evan%20You.webp?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=acy3jQmz60CjkwbP0xTeO6vNoqHXJvt%2FhZC3DGAIUMlKs8ozXLoDpTNe7XjYJz%2FszIh4r9mnDfpxot950w8mIYqO%2FaDPTfY7ICn383IH3VcSbCqi9RgTTDUHmtc2O7a1tn5Bv4bl9Ifxky8iB9ck0U1vP3Z1RNMPnjiWxB7RXW9UynQu2yJwDOGh9%2FLiU%2FcRgewmCFDAZuFdurzEDxrnHVUpYaxM%2Bc61egCLLw4DJH%2BcceIbA1GCsDu1vQKQOv9pJ5npAxPreeimzvp49dk0nCuHuus8h%2B8VZDwtPwr3uTl%2BhrJ5poI%2BeDARqTLG5GfRP7oYTc2NXKfKCfoID4ALxg%3D%3D"}],isComingSoon:G,isDraft:F,isPromoted:F,label:ad,latestAt:J,lessonsCount:J,order:M,parentId:M,slug:"vapor-mode-w-evan-you",teachers:[{firstName:fw,lastName:fx,about:fy,image:[{__meta__:{createdBy:c,createdDate:fz},contentType:E,file:fA,folderId:X,id:fB,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:fC}]}],title:"Vapor Mode w\u002F Evan You"},"1715975320926":{__meta__:{createdBy:c,createdDate:"2024-05-17T19:48:40.926Z",lastModifiedBy:c,lastModifiedDate:"2024-09-23T19:02:08.807Z",locale:T},category:[{name:af,color:ag},{name:au,color:av}],completable:G,courseDependencies:J,courseLabelsBar:J,description:eW,difficulty:aQ,duration:"00:27:27",free:F,id:eX,image:[{__meta__:{createdBy:c,createdDate:cn},contentType:I,file:co,folderId:cp,id:cq,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cr}],isComingSoon:F,isDraft:F,isPromoted:F,label:dP,latestAt:"2024-05-22T00:00:00+01:00",lessons:[{slug:"api-routes-introduction",status:H,date:Ma,title:cg,lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:cn},contentType:I,file:co,folderId:cp,id:cq,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cr}],description:eW,duration:Ls,author:V,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:cn},contentType:I,file:co,folderId:cp,id:cq,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cr}],facebookImage:[{__meta__:{createdBy:c,createdDate:cn},contentType:I,file:co,folderId:cp,id:cq,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cr}],socialSharingDescription:fe,belongsToCourse:eX},{slug:"api-routes",status:H,date:Ma,title:"API Routes",lessonNumber:U,free:G,image:[{__meta__:{createdBy:c,createdDate:cn},contentType:I,file:co,folderId:cp,id:cq,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cr}],description:eW,duration:"00:04:54",author:V,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:cn},contentType:I,file:co,folderId:cp,id:cq,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cr}],facebookImage:[{__meta__:{createdBy:c,createdDate:cn},contentType:I,file:co,folderId:cp,id:cq,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cr}],socialSharingDescription:fe,belongsToCourse:eX},{slug:"nuxt-server-routes",status:H,date:"2024-05-23T00:00:00-07:00",title:LM,lessonNumber:ab,free:F,image:[{__meta__:{createdBy:c,createdDate:cn},contentType:I,file:co,folderId:cp,id:cq,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cr}],description:eW,duration:Mb,author:V,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:cn},contentType:I,file:co,folderId:cp,id:cq,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cr}],facebookImage:[{__meta__:{createdBy:c,createdDate:cn},contentType:I,file:co,folderId:cp,id:cq,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cr}],socialSharingDescription:fe,belongsToCourse:eX},{slug:"restful-routes",status:H,date:Mc,title:"RESTful Routes",lessonNumber:ac,free:F,image:[{__meta__:{createdBy:c,createdDate:cn},contentType:I,file:co,folderId:cp,id:cq,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cr}],description:eW,duration:hy,author:V,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:cn},contentType:I,file:co,folderId:cp,id:cq,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cr}],facebookImage:[{__meta__:{createdBy:c,createdDate:cn},contentType:I,file:co,folderId:cp,id:cq,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cr}],socialSharingDescription:fe,belongsToCourse:eX},{slug:"mutation-flow",status:H,date:Mc,title:"Mutation Flow",lessonNumber:W,free:F,image:[{__meta__:{createdBy:c,createdDate:cn},contentType:I,file:co,folderId:cp,id:cq,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cr}],description:eW,duration:"00:09:04",author:V,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:cn},contentType:I,file:co,folderId:cp,id:cq,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cr}],facebookImage:[{__meta__:{createdBy:c,createdDate:cn},contentType:I,file:co,folderId:cp,id:cq,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cr}],socialSharingDescription:fe,belongsToCourse:eX}],lessonsCount:W,order:M,parentId:M,slug:"nuxt-api-routes",teachers:[{firstName:ed,lastName:ee,about:J,image:[{__meta__:{createdBy:c,createdDate:ef},contentType:E,file:eg,folderId:X,id:eh,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ei}]}],title:"Nuxt API Routes"},"1719962034994":{__meta__:{createdBy:c,createdDate:"2024-07-02T23:13:54.994Z",lastModifiedBy:c,lastModifiedDate:"2024-10-15T16:15:24.649Z",locale:T},category:[{name:af,color:ag},{name:au,color:av}],completable:G,courseDependencies:J,courseLabelsBar:J,description:"Learn the essential patterns of SSR authentication for Nuxt.js apps through practical hands-on lessons.",difficulty:aQ,duration:"01:03:53",free:F,id:ek,image:[{__meta__:{createdBy:c,createdDate:bF},contentType:I,file:bG,folderId:bH,id:bI,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bJ}],isComingSoon:F,isDraft:F,isPromoted:F,label:dP,latestAt:"2024-08-21T00:00:00-07:00",lessons:[{slug:"nuxt-auth-introduction",status:H,date:Md,title:cg,lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:bF},contentType:I,file:bG,folderId:bH,id:bI,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bJ}],description:eC,duration:Ae,author:V,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:bF},contentType:I,file:bG,folderId:bH,id:bI,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bJ}],facebookImage:[{__meta__:{createdBy:c,createdDate:bF},contentType:I,file:bG,folderId:bH,id:bI,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bJ}],socialSharingDescription:eD,belongsToCourse:ek},{slug:"the-authentication-flow",status:H,date:Md,title:"The Authentication Flow",lessonNumber:U,free:G,image:[{__meta__:{createdBy:c,createdDate:bF},contentType:I,file:bG,folderId:bH,id:bI,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bJ}],description:eC,duration:CE,author:V,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:bF},contentType:I,file:bG,folderId:bH,id:bI,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bJ}],facebookImage:[{__meta__:{createdBy:c,createdDate:bF},contentType:I,file:bG,folderId:bH,id:bI,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bJ}],socialSharingDescription:eD,belongsToCourse:ek},{slug:"nuxt-auth-server-side-routes",status:H,date:"2024-08-29T00:00:00-07:00",title:"Server-Side Routes",lessonNumber:ab,free:F,image:[{__meta__:{createdBy:c,createdDate:bF},contentType:I,file:bG,folderId:bH,id:bI,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bJ}],description:eC,duration:"00:15:06",author:V,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:bF},contentType:I,file:bG,folderId:bH,id:bI,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bJ}],facebookImage:[{__meta__:{createdBy:c,createdDate:bF},contentType:I,file:bG,folderId:bH,id:bI,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bJ}],socialSharingDescription:eD,belongsToCourse:ek},{slug:"nuxt-auth-client-side-pages",status:H,date:gm,title:"Client-Side Pages",lessonNumber:ac,free:F,image:[{__meta__:{createdBy:c,createdDate:bF},contentType:I,file:bG,folderId:bH,id:bI,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bJ}],description:eC,duration:Dp,author:V,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:bF},contentType:I,file:bG,folderId:bH,id:bI,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bJ}],facebookImage:[{__meta__:{createdBy:c,createdDate:bF},contentType:I,file:bG,folderId:bH,id:bI,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bJ}],socialSharingDescription:eD,belongsToCourse:ek},{slug:"handling-invalid-session",status:H,date:"2024-09-19T00:00:00-07:00",title:"Handling Invalid Session",lessonNumber:W,free:F,image:[{__meta__:{createdBy:c,createdDate:bF},contentType:I,file:bG,folderId:bH,id:bI,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bJ}],description:eC,duration:LX,author:V,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:bF},contentType:I,file:bG,folderId:bH,id:bI,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bJ}],facebookImage:[{__meta__:{createdBy:c,createdDate:bF},contentType:I,file:bG,folderId:bH,id:bI,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bJ}],socialSharingDescription:eD,belongsToCourse:ek},{slug:"csrf",status:H,date:"2024-10-02T00:00:00-07:00",title:"CSRF",lessonNumber:S,free:F,image:[{__meta__:{createdBy:c,createdDate:bF},contentType:I,file:bG,folderId:bH,id:bI,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bJ}],description:eC,duration:"00:11:29",author:V,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:bF},contentType:I,file:bG,folderId:bH,id:bI,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bJ}],facebookImage:[{__meta__:{createdBy:c,createdDate:bF},contentType:I,file:bG,folderId:bH,id:bI,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bJ}],socialSharingDescription:eD,belongsToCourse:ek},{slug:"stateful-vs-stateless",status:H,date:"2024-10-15T00:00:00-07:00",title:"Stateful vs Stateless",lessonNumber:ae,free:F,image:[{__meta__:{createdBy:c,createdDate:bF},contentType:I,file:bG,folderId:bH,id:bI,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bJ}],description:eC,duration:rt,author:V,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:bF},contentType:I,file:bG,folderId:bH,id:bI,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bJ}],facebookImage:[{__meta__:{createdBy:c,createdDate:bF},contentType:I,file:bG,folderId:bH,id:bI,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:bJ}],socialSharingDescription:eD,belongsToCourse:ek}],lessonsCount:ae,order:M,parentId:M,slug:"nuxt-authentication",teachers:[{firstName:ed,lastName:ee,about:J,image:[{__meta__:{createdBy:c,createdDate:ef},contentType:E,file:eg,folderId:X,id:eh,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ei}]}],title:"Nuxt Authentication"},"1731533869599":{__meta__:{createdBy:c,createdDate:"2024-11-13T21:37:49.599Z",lastModifiedBy:c,lastModifiedDate:"2025-03-11T18:44:30.227Z",locale:T},category:[{name:af,color:ag},{name:au,color:av}],completable:G,courseDependencies:J,courseLabelsBar:J,description:cM,difficulty:aQ,duration:"00:25:53",free:F,id:cN,image:[{__meta__:{createdBy:c,createdDate:ai},contentType:I,file:aj,folderId:ak,id:al,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:am}],isComingSoon:F,isDraft:F,isPromoted:F,label:ad,latestAt:"2025-03-07T00:00:00-08:00",lessons:[{slug:"modern-vue-intro",status:H,date:gn,title:cg,free:G,image:[{__meta__:{createdBy:c,createdDate:ai},contentType:I,file:aj,folderId:ak,id:al,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:am}],description:cM,duration:"00:00:33",author:V,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:ai},contentType:I,file:aj,folderId:ak,id:al,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:am}],facebookImage:[{__meta__:{createdBy:c,createdDate:ai},contentType:I,file:aj,folderId:ak,id:al,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:am}],socialSharingDescription:cU,belongsToCourse:cN},{slug:"vue-3-5-reactive-props-destructure",status:H,date:gn,title:"Vue 3.5 Reactive Props Destructure",lessonNumber:J,free:G,image:[{__meta__:{createdBy:c,createdDate:ai},contentType:I,file:aj,folderId:ak,id:al,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:am}],description:cM,duration:"00:01:37",author:V,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:ai},contentType:I,file:aj,folderId:ak,id:al,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:am}],facebookImage:[{__meta__:{createdBy:c,createdDate:ai},contentType:I,file:aj,folderId:ak,id:al,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:am}],socialSharingDescription:cU,belongsToCourse:cN},{slug:"vue-3-5-allow-hydration-mismatch",status:H,date:gn,title:"Vue 3.5 Allow Hydration Mismatch",lessonNumber:J,free:F,image:[{__meta__:{createdBy:c,createdDate:ai},contentType:I,file:aj,folderId:ak,id:al,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:am}],description:cM,duration:"00:02:02",author:V,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:ai},contentType:I,file:aj,folderId:ak,id:al,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:am}],facebookImage:[{__meta__:{createdBy:c,createdDate:ai},contentType:I,file:aj,folderId:ak,id:al,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:am}],socialSharingDescription:cU,belongsToCourse:cN},{slug:"vue-3-5-lazy-hydration",status:H,date:gn,title:"Vue 3.5 Lazy Hydration",lessonNumber:J,free:F,image:[{__meta__:{createdBy:c,createdDate:ai},contentType:I,file:aj,folderId:ak,id:al,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:am}],description:cM,duration:"00:03:45",author:V,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:ai},contentType:I,file:aj,folderId:ak,id:al,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:am}],facebookImage:[{__meta__:{createdBy:c,createdDate:ai},contentType:I,file:aj,folderId:ak,id:al,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:am}],socialSharingDescription:cU,belongsToCourse:cN},{slug:"vue-3-5-usetemplateref",status:H,date:el,title:"Vue 3.5 useTemplateRef",lessonNumber:J,free:F,image:[{__meta__:{createdBy:c,createdDate:ai},contentType:I,file:aj,folderId:ak,id:al,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:am}],description:cM,duration:"00:01:22",author:V,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:ai},contentType:I,file:aj,folderId:ak,id:al,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:am}],facebookImage:[{__meta__:{createdBy:c,createdDate:ai},contentType:I,file:aj,folderId:ak,id:al,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:am}],socialSharingDescription:cU,belongsToCourse:cN},{slug:"vue-3-4-definemodel",status:H,date:el,title:"Vue 3.4 defineModel",lessonNumber:J,free:F,image:[{__meta__:{createdBy:c,createdDate:ai},contentType:I,file:aj,folderId:ak,id:al,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:am}],description:cM,duration:"00:04:02",author:V,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:ai},contentType:I,file:aj,folderId:ak,id:al,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:am}],facebookImage:[{__meta__:{createdBy:c,createdDate:ai},contentType:I,file:aj,folderId:ak,id:al,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:am}],socialSharingDescription:cU,belongsToCourse:cN},{slug:"vue-3-4-v-bind-same-name-shorthand",status:H,date:el,title:"Vue 3.4 v-bind same-name shorthand",lessonNumber:J,free:F,image:[{__meta__:{createdBy:c,createdDate:ai},contentType:I,file:aj,folderId:ak,id:al,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:am}],description:cM,duration:"00:00:52",author:V,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:ai},contentType:I,file:aj,folderId:ak,id:al,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:am}],facebookImage:[{__meta__:{createdBy:c,createdDate:ai},contentType:I,file:aj,folderId:ak,id:al,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:am}],socialSharingDescription:cU,belongsToCourse:cN},{slug:"vue-3-3-typescript-upgrades-for-macro",status:H,date:el,title:"Vue 3.3 TypeScript Upgrades for Macro",lessonNumber:J,free:F,image:[{__meta__:{createdBy:c,createdDate:ai},contentType:I,file:aj,folderId:ak,id:al,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:am}],description:cM,duration:"00:02:47",author:V,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:ai},contentType:I,file:aj,folderId:ak,id:al,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:am}],facebookImage:[{__meta__:{createdBy:c,createdDate:ai},contentType:I,file:aj,folderId:ak,id:al,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:am}],socialSharingDescription:cU,belongsToCourse:cN},{slug:"vue-3-3-generic-component",status:H,date:el,title:"Vue 3.3 Generic Component",lessonNumber:J,free:F,image:[{__meta__:{createdBy:c,createdDate:ai},contentType:I,file:aj,folderId:ak,id:al,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:am}],description:cM,duration:Lo,author:V,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:ai},contentType:I,file:aj,folderId:ak,id:al,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:am}],facebookImage:[{__meta__:{createdBy:c,createdDate:ai},contentType:I,file:aj,folderId:ak,id:al,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:am}],socialSharingDescription:cU,belongsToCourse:cN},{slug:"vue-3-3-defineoptions",status:H,date:el,title:"Vue 3.3 defineOptions",lessonNumber:J,free:F,image:[{__meta__:{createdBy:c,createdDate:ai},contentType:I,file:aj,folderId:ak,id:al,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:am}],description:cM,duration:"00:00:41",author:V,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:ai},contentType:I,file:aj,folderId:ak,id:al,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:am}],facebookImage:[{__meta__:{createdBy:c,createdDate:ai},contentType:I,file:aj,folderId:ak,id:al,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:am}],socialSharingDescription:cU,belongsToCourse:cN},{slug:"vue-3-2-\u003Cstyle\u003E-v-bind",status:H,date:el,title:"Vue 3.2 \u003Cstyle\u003E v-bind",lessonNumber:J,free:F,image:[{__meta__:{createdBy:c,createdDate:ai},contentType:I,file:aj,folderId:ak,id:al,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:am}],description:cM,duration:"00:01:09",author:V,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:ai},contentType:I,file:aj,folderId:ak,id:al,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:am}],facebookImage:[{__meta__:{createdBy:c,createdDate:ai},contentType:I,file:aj,folderId:ak,id:al,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:am}],socialSharingDescription:cU,belongsToCourse:cN},{slug:"vue-3-2-\u003Cscript-setup\u003E",status:H,date:el,title:"Vue 3.2 \u003Cscript setup\u003E",lessonNumber:J,free:F,image:[{__meta__:{createdBy:c,createdDate:ai},contentType:I,file:aj,folderId:ak,id:al,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:am}],description:cM,duration:pP,author:V,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:ai},contentType:I,file:aj,folderId:ak,id:al,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:am}],facebookImage:[{__meta__:{createdBy:c,createdDate:ai},contentType:I,file:aj,folderId:ak,id:al,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:am}],socialSharingDescription:cU,belongsToCourse:cN}],lessonsCount:dN,order:M,parentId:M,slug:"modern-vue",teachers:[{firstName:ed,lastName:ee,about:J,image:[{__meta__:{createdBy:c,createdDate:ef},contentType:E,file:eg,folderId:X,id:eh,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:ei}]}],title:"Modern Vue: Latest Updates"},"1731534006781":{__meta__:{createdBy:c,createdDate:"2024-11-13T21:40:06.781Z",lastModifiedBy:c,lastModifiedDate:"2025-02-25T18:39:52.092Z",locale:T},category:[{name:af,color:ag},{name:au,color:av}],completable:G,courseDependencies:J,courseLabelsBar:J,description:do0,difficulty:cK,duration:"00:52:02",free:F,id:dp,image:[{__meta__:{createdBy:c,createdDate:aH},contentType:I,file:aI,folderId:aJ,id:aK,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aL}],isComingSoon:F,isDraft:F,isPromoted:F,label:ad,latestAt:eE,lessons:[{slug:"patterns-introduction",status:H,date:eE,title:cg,lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:aH},contentType:I,file:aI,folderId:aJ,id:aK,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aL}],description:do0,duration:Lx,author:N,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:aH},contentType:I,file:aI,folderId:aJ,id:aK,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aL}],facebookImage:[{__meta__:{createdBy:c,createdDate:aH},contentType:I,file:aI,folderId:aJ,id:aK,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aL}],socialSharingDescription:dI,belongsToCourse:dp},{slug:"configuration-vs-composition",status:H,date:eE,title:"Configuration vs Composition",lessonNumber:U,free:G,image:[{__meta__:{createdBy:c,createdDate:aH},contentType:I,file:aI,folderId:aJ,id:aK,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aL}],description:do0,duration:"00:010:00",author:N,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:aH},contentType:I,file:aI,folderId:aJ,id:aK,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aL}],facebookImage:[{__meta__:{createdBy:c,createdDate:aH},contentType:I,file:aI,folderId:aJ,id:aK,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aL}],socialSharingDescription:dI,belongsToCourse:dp},{slug:"vendor-wrapper-pattern",status:H,date:eE,title:"Vendor Wrapper Pattern",lessonNumber:ab,free:F,image:[{__meta__:{createdBy:c,createdDate:aH},contentType:I,file:aI,folderId:aJ,id:aK,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aL}],description:do0,duration:"00:004:32",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:aH},contentType:I,file:aI,folderId:aJ,id:aK,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aL}],facebookImage:[{__meta__:{createdBy:c,createdDate:aH},contentType:I,file:aI,folderId:aJ,id:aK,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aL}],socialSharingDescription:dI,belongsToCourse:dp},{slug:"transparent-component-pattern",status:H,date:eE,title:"Transparent Component Pattern",lessonNumber:ac,free:F,image:[{__meta__:{createdBy:c,createdDate:aH},contentType:I,file:aI,folderId:aJ,id:aK,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aL}],description:do0,duration:"00:004:10",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:aH},contentType:I,file:aI,folderId:aJ,id:aK,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aL}],facebookImage:[{__meta__:{createdBy:c,createdDate:aH},contentType:I,file:aI,folderId:aJ,id:aK,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aL}],socialSharingDescription:dI,belongsToCourse:dp},{slug:"dynamic-component-pattern",status:H,date:eE,title:"Dynamic Component Pattern",lessonNumber:W,free:F,image:[{__meta__:{createdBy:c,createdDate:aH},contentType:I,file:aI,folderId:aJ,id:aK,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aL}],description:do0,duration:"00:005:34",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:aH},contentType:I,file:aI,folderId:aJ,id:aK,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aL}],facebookImage:[{__meta__:{createdBy:c,createdDate:aH},contentType:I,file:aI,folderId:aJ,id:aK,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aL}],socialSharingDescription:dI,belongsToCourse:dp},{slug:"provider-component-pattern",status:H,date:eE,title:"Provider Component Pattern",lessonNumber:S,free:F,image:[{__meta__:{createdBy:c,createdDate:aH},contentType:I,file:aI,folderId:aJ,id:aK,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aL}],description:do0,duration:"00:005:52",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:aH},contentType:I,file:aI,folderId:aJ,id:aK,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aL}],facebookImage:[{__meta__:{createdBy:c,createdDate:aH},contentType:I,file:aI,folderId:aJ,id:aK,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aL}],socialSharingDescription:dI,belongsToCourse:dp},{slug:"logic-reusability-composition",status:H,date:go,title:"Logic Reusability & Composition",lessonNumber:ae,free:F,image:[{__meta__:{createdBy:c,createdDate:aH},contentType:I,file:aI,folderId:aJ,id:aK,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aL}],description:do0,duration:"00:010:18",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:aH},contentType:I,file:aI,folderId:aJ,id:aK,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aL}],facebookImage:[{__meta__:{createdBy:c,createdDate:aH},contentType:I,file:aI,folderId:aJ,id:aK,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aL}],socialSharingDescription:dI,belongsToCourse:dp},{slug:"component-organization",status:H,date:go,title:"Component Organization",lessonNumber:ah,free:F,image:[{__meta__:{createdBy:c,createdDate:aH},contentType:I,file:aI,folderId:aJ,id:aK,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aL}],description:do0,duration:"00:004:34",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:aH},contentType:I,file:aI,folderId:aJ,id:aK,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aL}],facebookImage:[{__meta__:{createdBy:c,createdDate:aH},contentType:I,file:aI,folderId:aJ,id:aK,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aL}],socialSharingDescription:dI,belongsToCourse:dp},{slug:"when-to-refactor-components",status:H,date:go,title:"When to Refactor Components",lessonNumber:an,free:F,image:[{__meta__:{createdBy:c,createdDate:aH},contentType:I,file:aI,folderId:aJ,id:aK,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aL}],description:do0,duration:"00:004:35",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:aH},contentType:I,file:aI,folderId:aJ,id:aK,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aL}],facebookImage:[{__meta__:{createdBy:c,createdDate:aH},contentType:I,file:aI,folderId:aJ,id:aK,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aL}],socialSharingDescription:dI,belongsToCourse:dp},{slug:"patterns-closing-thoughts",status:H,date:go,title:"Closing Thoughts",lessonNumber:aS,free:F,image:[{__meta__:{createdBy:c,createdDate:aH},contentType:I,file:aI,folderId:aJ,id:aK,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aL}],description:do0,duration:"00:000:55",author:N,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:aH},contentType:I,file:aI,folderId:aJ,id:aK,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aL}],facebookImage:[{__meta__:{createdBy:c,createdDate:aH},contentType:I,file:aI,folderId:aJ,id:aK,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:aL}],socialSharingDescription:dI,belongsToCourse:dp}],lessonsCount:aS,order:M,parentId:M,slug:"proven-component-patterns",teachers:[{firstName:da,lastName:db,about:dc,image:[{__meta__:{createdBy:c,createdDate:dd},contentType:E,file:de,folderId:X,id:df,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:dg}]}],title:"Proven Component Patterns"},"1743445943213":{__meta__:{createdBy:c,createdDate:"2025-03-31T18:32:23.213Z",locale:T},completable:J,courseDependencies:J,courseLabelsBar:J,description:"For developer advocates, open source authors, and managers: learn how to attract, educate, and build a developer community around your project.",difficulty:aQ,duration:L$,free:F,id:1743445943213,image:[{__meta__:{createdBy:c,createdDate:"2025-03-31T18:27:39.408Z"},contentType:I,file:"Reaching and Teaching Developers.webp",folderId:1743443988240,id:1743445652577,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FReaching%20and%20Teaching%20Developers.webp?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=mqBgdXXllvxgxKqBKuhdGPriIN600vzrF9QUbO8BALFAy2S2bvIuLCQ7aP7GDUnCKe6oEkBF2cazit3PYw3IxfQATnkordoCeeaM1Y5SD5vuJD3t7x7DBIPpNeNeZmdbZaZ1hN51u89aP%2BZwXB1E2Hco8MJy%2FUIb6rjyYeV6O5B%2FrZyPgwnBqAwwmG0VP%2FO%2BkjWCoQM8KNewrgFq4iCRGRcQJrTIpyFwrZmp%2B%2FIwxG3XE7Q8YHyY27dTvx%2FA0%2BXf7J6KrXM3tqsqKrybyD37oG46sjnJEi%2BBprybl67oeDd%2B5TccuG%2FGo0WPjE44ww6d1DYYcivE9xbJ1DBJSxaVgA%3D%3D"}],isComingSoon:G,isDraft:F,isPromoted:F,label:ad,latestAt:"2025-03-31T00:00:00-07:00",lessonsCount:J,order:M,parentId:M,slug:"reaching-and-teaching-developers",teachers:[{firstName:cs,lastName:cx,about:cy,image:[{__meta__:{createdBy:c,createdDate:cz},contentType:E,file:cA,folderId:X,id:cB,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cC}]}],title:"Reaching & Teaching Developers"},"1744043543663":{__meta__:{createdBy:c,createdDate:"2025-04-07T16:32:23.663Z",lastModifiedBy:c,lastModifiedDate:"2025-04-07T18:42:49.208Z",locale:T},category:[{name:af,color:ag},{name:au,color:av}],completable:G,courseDependencies:J,courseLabelsBar:J,description:I_,difficulty:bM,duration:"00:56:43",free:F,id:cV,image:[{__meta__:{createdBy:c,createdDate:ap},contentType:I,file:aq,folderId:ar,id:as,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:at}],isComingSoon:F,isDraft:F,isPromoted:F,label:ad,latestAt:cW,lessons:[{slug:"introduction-comp-api",status:H,date:cW,title:cg,lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:ap},contentType:I,file:aq,folderId:ar,id:as,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:at}],description:dq,duration:"00:01:33",author:O,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:ap},contentType:I,file:aq,folderId:ar,id:as,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:at}],facebookImage:[{__meta__:{createdBy:c,createdDate:ap},contentType:I,file:aq,folderId:ar,id:as,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:at}],socialSharingDescription:dr,belongsToCourse:cV},{slug:"project-setup-comp-api",status:H,date:cW,title:Am,lessonNumber:U,free:G,image:[{__meta__:{createdBy:c,createdDate:ap},contentType:I,file:aq,folderId:ar,id:as,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:at}],description:dq,duration:"00:07:43",author:O,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:ap},contentType:I,file:aq,folderId:ar,id:as,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:at}],facebookImage:[{__meta__:{createdBy:c,createdDate:ap},contentType:I,file:aq,folderId:ar,id:as,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:at}],socialSharingDescription:dr,belongsToCourse:cV},{slug:"attribute-binding-comp-api",status:H,date:cW,title:gA,lessonNumber:ab,free:G,image:[{__meta__:{createdBy:c,createdDate:ap},contentType:I,file:aq,folderId:ar,id:as,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:at}],description:dq,duration:KV,author:O,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:ap},contentType:I,file:aq,folderId:ar,id:as,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:at}],facebookImage:[{__meta__:{createdBy:c,createdDate:ap},contentType:I,file:aq,folderId:ar,id:as,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:at}],socialSharingDescription:dr,belongsToCourse:cV},{slug:"conditional-rendering-comp-api",status:H,date:cW,title:gF,lessonNumber:ac,free:G,image:[{__meta__:{createdBy:c,createdDate:ap},contentType:I,file:aq,folderId:ar,id:as,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:at}],description:dq,duration:"00:04:59",author:O,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:ap},contentType:I,file:aq,folderId:ar,id:as,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:at}],facebookImage:[{__meta__:{createdBy:c,createdDate:ap},contentType:I,file:aq,folderId:ar,id:as,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:at}],socialSharingDescription:dr,belongsToCourse:cV},{slug:"list-rendering-comp-api",status:H,date:cW,title:gK,lessonNumber:W,free:G,image:[{__meta__:{createdBy:c,createdDate:ap},contentType:I,file:aq,folderId:ar,id:as,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:at}],description:dq,duration:"00:03:21",author:O,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:ap},contentType:I,file:aq,folderId:ar,id:as,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:at}],facebookImage:[{__meta__:{createdBy:c,createdDate:ap},contentType:I,file:aq,folderId:ar,id:as,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:at}],socialSharingDescription:dr,belongsToCourse:cV},{slug:"event-handling-comp-api",status:H,date:cW,title:fh,lessonNumber:S,free:G,image:[{__meta__:{createdBy:c,createdDate:ap},contentType:I,file:aq,folderId:ar,id:as,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:at}],description:dq,duration:Mb,author:O,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:ap},contentType:I,file:aq,folderId:ar,id:as,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:at}],facebookImage:[{__meta__:{createdBy:c,createdDate:ap},contentType:I,file:aq,folderId:ar,id:as,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:at}],socialSharingDescription:dr,belongsToCourse:cV},{slug:"class-and-style-binding-comp-api",status:H,date:cW,title:gU,lessonNumber:ae,free:G,image:[{__meta__:{createdBy:c,createdDate:ap},contentType:I,file:aq,folderId:ar,id:as,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:at}],description:dq,duration:"00:06:18",author:O,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:ap},contentType:I,file:aq,folderId:ar,id:as,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:at}],facebookImage:[{__meta__:{createdBy:c,createdDate:ap},contentType:I,file:aq,folderId:ar,id:as,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:at}],socialSharingDescription:dr,belongsToCourse:cV},{slug:"computed-properties-comp-api",status:H,date:cW,title:eZ,lessonNumber:ah,free:G,image:[{__meta__:{createdBy:c,createdDate:ap},contentType:I,file:aq,folderId:ar,id:as,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:at}],description:dq,duration:"00:06:14",author:O,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:ap},contentType:I,file:aq,folderId:ar,id:as,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:at}],facebookImage:[{__meta__:{createdBy:c,createdDate:ap},contentType:I,file:aq,folderId:ar,id:as,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:at}],socialSharingDescription:dr,belongsToCourse:cV},{slug:"components-and-props-comp-api",status:H,date:cW,title:Jd,lessonNumber:an,free:G,image:[{__meta__:{createdBy:c,createdDate:ap},contentType:I,file:aq,folderId:ar,id:as,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:at}],description:dq,duration:mm,author:O,lock:F,twitterImage:[{__meta__:{createdBy:c,createdDate:ap},contentType:I,file:aq,folderId:ar,id:as,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:at}],facebookImage:[{__meta__:{createdBy:c,createdDate:ap},contentType:I,file:aq,folderId:ar,id:as,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:at}],socialSharingDescription:dr,belongsToCourse:cV},{slug:"communicating-events-comp-api",status:H,date:cW,title:hg,lessonNumber:aS,free:G,image:[{__meta__:{createdBy:c,createdDate:ap},contentType:I,file:aq,folderId:ar,id:as,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:at}],description:dq,duration:LI,author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:ap},contentType:I,file:aq,folderId:ar,id:as,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:at}],facebookImage:[{__meta__:{createdBy:c,createdDate:ap},contentType:I,file:aq,folderId:ar,id:as,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:at}],socialSharingDescription:dr,belongsToCourse:cV},{slug:"forms-and-v-model-comp-api",status:H,date:cW,title:hl,lessonNumber:bN,free:G,image:[{__meta__:{createdBy:c,createdDate:ap},contentType:I,file:aq,folderId:ar,id:as,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:at}],description:dq,duration:"00:08:12",author:O,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:ap},contentType:I,file:aq,folderId:ar,id:as,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:at}],facebookImage:[{__meta__:{createdBy:c,createdDate:ap},contentType:I,file:aq,folderId:ar,id:as,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:at}],socialSharingDescription:dr,belongsToCourse:cV}],lessonsCount:bN,order:M,parentId:M,slug:"intro-to-vue-3-comp-api",teachers:[{firstName:cs,lastName:cx,about:cy,image:[{__meta__:{createdBy:c,createdDate:cz},contentType:E,file:cA,folderId:X,id:cB,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:cC}]}],title:"Intro to Vue 3 (Composition API)"},"1751041483349":{__meta__:{createdBy:c,createdDate:"2025-06-27T16:24:43.349Z",lastModifiedBy:c,lastModifiedDate:"2025-06-27T16:42:29.799Z",locale:T},completable:G,courseDependencies:J,courseLabelsBar:J,description:"Discover how AI tools enhance developer productivity, streamline workflows, and empower innovation in the tech landscape.",difficulty:bM,duration:Me,free:F,id:Mf,image:[{__meta__:{createdBy:c,createdDate:gp},contentType:I,file:gq,folderId:gr,id:gs,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:gt}],isComingSoon:F,isDraft:F,isPromoted:F,label:ad,latestAt:J,lessons:[{slug:Mg,status:H,date:"2025-06-27T00:00:00+01:00",title:Mh,lessonNumber:a,free:G,image:[{__meta__:{createdBy:c,createdDate:gp},contentType:I,file:gq,folderId:gr,id:gs,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:gt}],description:"Explore top AI tools for developers to enhance productivity, streamline workflows, and leverage AI for coding, debugging, and prototyping.",duration:Me,author:bL,lock:G,twitterImage:[{__meta__:{createdBy:c,createdDate:gp},contentType:I,file:gq,folderId:gr,id:gs,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:gt}],facebookImage:[{__meta__:{createdBy:c,createdDate:gp},contentType:I,file:gq,folderId:gr,id:gs,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:gt}],socialSharingDescription:"I'm learning how to use some of the top AI tools for devs on @VueMastery",belongsToCourse:Mf}],lessonsCount:a,order:M,parentId:M,slug:Mg,teachers:[{firstName:gc,lastName:gd,about:ge,image:[{__meta__:{createdBy:c,createdDate:gf},contentType:E,file:gg,folderId:gh,id:gi,sizes:[{height:b,path:r,quality:a,width:e},{height:b,path:s,quality:a,width:f},{height:b,path:t,quality:a,width:g},{height:b,path:u,quality:a,width:h},{height:b,path:v,quality:a,width:i},{height:b,path:w,quality:a,width:j},{height:b,path:B,quality:a,width:o},{height:b,path:C,quality:a,width:p},{height:b,path:x,quality:a,width:k},{height:b,path:y,quality:a,width:l},{height:b,path:D,quality:a,width:q},{height:b,path:z,quality:a,width:m},{height:b,path:A,quality:a,width:n}],type:d,url:gj}]}],title:Mh}},slugIdMap:{"intro-to-vue-js":"1516789793545","advanced-components":"1516791397640","real-world-vue-js":"1517408682678","scaling-vue-with-nuxt-js":"1539806977174","mastering-vuex":"1541609602991","next-level-vue":"1541714005156","token-based-authentication":"1549646151774","watch-us-build-trello-clone":"1555089048381","beautify-with-vuetify":"1562174576131","animating-vue":"1566238243912","vue-3-essentials":"1569440715969","unit-testing":"1572364356774","vue-3-reactivity":"1580505553365","component-design-patterns":"1580506143374","build-a-gmail-clone-with-vue3":"1586804506353","vue3-forms":"1586809150749","vue3-deep-dive-with-evan-you":"1586809309649","intro-to-vue-3":"1590162495205","from-vue2-to-vue3":"1591114915649","real-world-vue3":"1601408947893","vue3-typescript":"1602188119249","touring-vue-router":"1603733909103","real-world-testing":"1613431598005","vuex-fundamentals":"1613432834650","unit-testing-vue-3":"1613433075593","progressive-web-apps-vue-3":"1621292371094","querying-with-graphql":"1621451470893","validating-vue3-forms":"1624916198717","lightning-fast-builds-with-vite":"1626279936310","typescript-friendly-vue3":"1635274544299","from-vuex-to-pinia":"1646097700549","nuxt-3-essentials":"1646262044365","pinia-qa":"1651863360466","coding-better-composables":"1654196889860","build-a-blog-nuxt3-content":"1657822793111","utility-first-css-with-tailwind":"1660325997345","pinia-fundamentals":"1660858428616","proven-pinia-patterns":"1661271290287","quick-tests-with-vitest":"1661806293450","vue-for-react-devs-similarities":"1666919626046","firebase-with-vue3-and-vuefire":"1667946700127","vue-for-react-devs-differences":"1669662242047","real-world-vue-3-composition-api":"1672173306000","5-elegant-ways-to-use-pinia":"1674599921955","nuxt-3-middleware":"1680548438382","nuxt-3-server":"1681168217158","touring-vue-router-composition-api":"1685997153867","qa-with-evan-you":"1686855549025","programming-an-ai-powered-app":"1687992511586","easy-interfaces-with-vuetify":"1695076097636","pro-nuxt-workflow":"1699550011467","real-world-nuxt-3":"1700067828878","build-a-trello-clone-w-nuxt-3":"1700067963566","rendering-revealed":"1706132786678","vapor-mode-w-evan-you":"1715357634199","nuxt-api-routes":"1715975320926","nuxt-authentication":"1719962034994","modern-vue":"1731533869599","proven-component-patterns":"1731534006781","reaching-and-teaching-developers":"1743445943213","intro-to-vue-3-comp-api":"1744043543663","top-ai-tools-for-developers":"1751041483349"}}]]}}(1,9999,"dggLL26ybOgv15ss1woHSbmslDQ2","images",120,240,320,480,586,640,1024,1280,1920,2840,800,960,1600,"120_9999_100","240_9999_100","320_9999_100","480_9999_100","586_9999_100","640_9999_100","1024_9999_100","1280_9999_100","1920_9999_100","2840_9999_100","800_9999_100","960_9999_100","1600_9999_100","image\u002Fjpeg",false,true,"published","image\u002Fwebp","","image\u002Fpng",1516642352143,0,"Ben Hong","Adam Jahr","Gregg Pollack","UNKNOWN","1516642352143",6,"en-US",2,"Andy Li",5,1653431006510,"2023-06-15T18:58:36.954Z","Q&A with Evan You.webp",1686855481149,1686855509952,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FQ%26A%20with%20Evan%20You.webp?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=u4aylA8o8ARUYsoZJcDfiQbFZ%2F1fcnqHDu6bRGi1BOWsKWiKG3YQPKl%2BttSpHmDVVDT6%2F7C0qnTn6Fhy%2F2k9aDBE5bguKYpIZBJFyMgWhHIgVs%2BVjXPm0Fp%2BbSW7PYl0IMZ9orPQf4wFaRtGN647gObqu7Vt6I4Vgl9Gf%2BsQWhHAIP%2F6SM%2FyZaUvAYLXPJ%2F6NlTjAkwMJmwo2EhSpYmMBJnqgw6o99r6R2eyXYjXDQoxPeNta9kePxHt8JmuQEyMrJJSy0cwhlNLzOzi0jgDKyWdjARIux8MmIsbynLRDTz21DPDegijc0mv5Z3%2FsJlNJ8T2bX2VQM8ZzuijBAw0pA%3D%3D",3,4,"null",7,"Vue 3","#835ec2",8,"2024-11-13T21:35:52.088Z","Modern Vue.webp",1731533722861,1731533745554,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FModern%20Vue.webp?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=sSttphnqFDd3ZJmoOT9cnohhv%2BswFdbxGxY0h884DA1eTTCDaOoPVLhbUeJAFgg7rE%2B5qqTqeofdaHsl2Vw5siAnsYxwipzM7oR5t7YqR1pIniltW6uaNkroBVueKLTZM9jH4J7sbnYYda9yuS5jFiDD%2BTEX0OZgk0Db2BdnovrUiIMuvqKifFHLZEjMWC8c4%2Fw6uNJbpQs%2FwsVEJUmpY%2F%2BrF%2Fu0bVUMaLBNg1bArRLa%2F6mXnkWYAr0EmlMoIwozsD8DdEs24S9KULb120I3w6ZkBuPS3%2Fee8TAgRCLVApSS%2FEbOmrT1yhVdhimtR8ZL2GAEq%2Bfh9WR3m5iJj9QCeA%3D%3D",9,1548447975697,"2025-04-07T16:31:41.586Z","Intro to Vue 3.webp",1744043356055,1744043495513,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FIntro%20to%20Vue%203.webp?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=ToQjO3PQJIe24PO0E4INXo%2B4xJ4d1%2FXMw6njnGy%2Fn5oStCEmVYnfmE%2F3HxlLlOsHazYrZ0Aywar9FRRIl4cI%2BnWEc89RQOltw5Damh74TXDnYmeLXv5ANN%2F%2F1yle5CLl6UAA25RVHHIv0JuMRx9%2FTMikZ6jc7PiTwnuWVgEkQKb2rB%2BA9%2BK8wmX06hsBCgcIY5K2VFxirm%2BB58%2F4VugHNEMe2qk%2FebIsCBI%2B08x7nGc6hYk3kL2R52qdPnsHZOi3iSsgTKHlA6g6D4tFDZCw0v2MQ7vNJeOw%2FYP10%2BiZ0oD5GD5ERwllHm5%2BtozQoXtS2iOBSH1egQrNnYrR%2Fh%2Fhag%3D%3D","Composition API","#00cf79","2022-11-28T19:05:37.377Z","Vue for React Devs - Differences.jpg",1669662287610,1669662329635,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FVue%20for%20React%20Devs%20-%20Differences.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=ITKyzDwlRqM6zRLFEZH85i%2B4kQnZxu21gpCEkDgWJp3Ofs9GJTShJAfod3N6j45iU2iNB3G%2BEIGLt7v29JL3ldDINWUtL76g9pPEbJXdAWNJNFUUX%2FlhVw7%2BP00O6D8evgOLMAVNI4RMUj%2FDPcRA8OJuZknKqySGYhFF1J9CbUEIN%2Fi6rpcKYUpbZ7G2mMJnrediMIiOM3fOkDbjWeL9XJ2LyFmzqJXU3A53ushmoS%2FpMqRCQprkvOBkFRWy69sI9Ft6CUlBNByCBqjIIKXeHuk3fmfMZk0D9eU2OwIS4eZWP99BTtSobNqqgRCODli2Y9tUSRYigEzqp7m6w85PBg%3D%3D",1680548395000,"2023-11-15T17:05:41.123Z","Build a Trello Clone w: Nuxt 3.webp",1700067897389,1700067933738,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FBuild%20a%20Trello%20Clone%20w%3A%20Nuxt%203.webp?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=IvlO4yU0RnZ0gTVkk2oX76Orftvf443zea1PV2Z7xHH9cHOeumVypsHiH%2Fo%2BPBH6hRZs1W7nUitWTX4SrD01P0QxPU1qjsZr4RCaFelsSHtIPjZFvqEpBM0DbF0GgWmhZC8EBH280ZjPf7CNZRcKf6qyLG88FFdLKGBq89yajRIWL103fXXff95vBfN2PZhvlgp3NVSuN%2Fx4nwxX%2FAp2rTHrIy7q8fVD2E8GKVwnOOoITQ3GUJ6MmDY0jq9azmRND2YtcasR8CrM5nJ3NKMNTNpBNJCD1Kp0ZfMvTxAC5RPXTjaWG45wAoC7iy%2BXkMjhys44ZPGls4l0mthR%2BB56ZQ%3D%3D","2024-11-13T21:39:19.513Z","Proven Component Patterns.webp",1731533913282,1731533952373,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FProven%20Component%20Patterns.webp?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=pDhjV7vOBVoPZZtUi8u5%2BrqRGxsVnKmCpw%2F1vwXknn3hpObiNjpCHAGSUK9S7stHc8t2RauxS55IgNz0UeVvQNYhY25CIC1Oet1XAMf%2BHs6yKXkyM9WFjUv62IZyglDiW68GblPX6Pu4GPHR7go4LyXKwwi1q9HsYXtO%2FpPa7TEThptSEP5AXkKbWvib7ToSKlMkdNqmOJKLcAY6KmPU2O9VwxV422o96fhhfruPvP419ytAO%2BwE4iwXeOmD5vEokuKYgX%2FCt2jLFhniN7oNAEklIN30KBE6wG2SEGuKhPxnl0ERm5Y8FcquyyqjOtREFV7dnNbAEdaP4MlxczhWXQ%3D%3D","2023-04-05T16:19:05.082Z","Nuxt3Middleware.opt.jpg",1680711535348,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FNuxt3Middleware.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=tsPD9P5C8myh6wITAQc4Rrr9DGgQ%2FIzaPWyWYcbqpvX45PVImCc9af6N0TXKJbdfriMdXjbTvFVRsHdtPf4ntnICR2JzuJf7TvW66A%2BgQUy6dLf%2BaDCiVk2TSjvf7JthV6eJp6p7RyFWHfLnHWvPAOEbgxw3gDZl%2FVZIoPFh1LO7U7If%2B7TTFsGnPEv4dIBRbtBp8pavKnSYI1o0XuGhAEGOm54b3qOX9OfgOb0P6vb8iUUkmo8pkxFbZaWDDW%2B%2F%2FOuOqlmKejKWdZ3AazUeDOMvRpMO1MGVgcQ49ClTch%2BbVGJdcSuoebSJciSspbWIXwRON4F7m9ElzdLW5mYubg%3D%3D","intermediate",1652278737228,10,1621292222015,"2023-04-10T23:09:45.574Z","Nuxt Server.jpg",1681168147556,1681168178402,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FNuxt%20Server.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=rnRWC6rgxp1WxxQozX5VWQ4l2Q33gPa9q93EdKB6w3o0VrOuqjq2M72QTEXrrLvfvmVw6f37%2F7%2FQmiiAbzw6gqW2PpzV%2BJAuFpFqUrsTA1iSq%2Fzh4jHUhyDyCQ4Zx1g0afjfkB4Ea15WP4ZNxIdXaF7tQvL9LatI75WMcSDCM4UOraUIsBbze4g70LBTxQ%2BZIlMfjCmbdKv9WLfJcLGtxIgn%2FOEUU5tusX%2FB7HlJXlg52SxsoPnRzTnRgzkbeu1nzfcap1n1SMYYGQW%2B7u95C0giOLNUi8EjbsfnsZiNRByG%2FkWkavHBumPHcI8bbwNoevugrnmk84ARoYGQISOuqg%3D%3D","2023-08-31T00:49:44.309Z","Programming an AI-Powered App.1693442973876.webp",1687992408558,1693442973876,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FProgramming%20an%20AI-Powered%20App.1693442973876.webp?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=osDbbNRH%2BrkxONwFs7ndPK9ppL138vkEVdTVD7%2BK7opGJXQDmNc9s%2Fw1Bka%2FeHexBdZ6hx3os%2FiAiq7CpEmQ1UiJgZU9CGXfFABxAkWyzX7vh7oPc33%2BCyxJFXlH0bXMVf8%2BBlMIya0G040OSYMm00nC4lLT54cRHuQyaBFapcQ0F3W2Bn9nNefnITpTP9Te7scIi9TRvqNLcX1xM1rmZxMxVPND7nsMCUOtW04OAztkLmh5g4zd%2FbEhwZJ%2BUTj2vW5a5YEFkezGfa2kxLlyoDRO3nbg6rNONOYGZiyNcqEF1k%2Bmy%2FQc0Sp4TqqN1Kuwimck7kzpnpJFOnLoAdAhhg%3D%3D","2023-08-01T16:38:08.903Z","Touring Vue Router.webp",1690907720136,1690907882236,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FTouring%20Vue%20Router.webp?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=aaujGJfGNt1M2lTgTc2a31pfk3MzeAh734tCB1p%2FGuZ9K8bF1BFegYajNI1742fATeVe0wyPMxMhkVA9FXRCvHlV4YJU7dQSu9ao3clUACv6Q%2BuLX8UKp9giH3bfno%2FQug9KN4hoOa2ul3atlFIxvaF2PZ0r%2FzjnwdU4%2F43MDaWmcpUSGKiq80mMBufkYbcoowlK3cKmDDrm4fuX%2F1htFXiGE9T02X9meGlSQPuEbwet1bt184h57uvGFb%2FRKB2iO7mN3P9LAiu%2BxryhBFa4MPaSR58t4m9pEvfmIOtrhjfQDUrEtMQAgEPmCTJPih1ZJeGW5kpKLpgk8y5MYXFGlw%3D%3D",1657822693354,"Evan You","2022-11-08T22:31:18.153Z","Firebase Foundations.opt.jpg",1667946649772,1667946669256,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FFirebase%20Foundations.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=duv3ZPH9KtkxhvUfIhcpfkZGCR0jc%2Fyb7q4PTuN9C4XsIEdOHFl99YevtN7dVuE2sYJMCcXQbR12gAfVXE%2BF3sbFLxdPNdALf55MosgMl2zam1TJFAkWzSRAY8B%2FndMgF%2B%2BNVG0WgCiA6YvViEl4dCADAqXDmxfoXYaeL1ZbbXYvpcGphZ8YHuwN4XxYdUOX4cnW84Cz5jCGdtfHB4IxIK4T%2F%2FwhwSMcIXaodNJF37zBRYc%2FANkMmZireUqpXP%2BZtJ%2FVrAqJFShyf5iR9IborNE0bRlmoGmnOZl9dqGFU5TIPRvRw60m9oT%2BZX0hR3T2xF60zvXQi1rhWG%2FnEFN4vA%3D%3D","2023-11-09T03:22:55.316Z","Pro Nuxt Workflow.webp",1699500136255,1699500168257,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FPro%20Nuxt%20Workflow.webp?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=K54WHkX0fvJiMsGKa2rvn6qc7gnyC2%2B361LIcyXW4wRdtRmWYGGY39C7SxoxGbSkmPCPbSi7%2BnqDLY9kyBqjCAPEtF%2B9rtXvIGRAdSTvUZV%2Fgy9pEGeRhjYbNPpC28S5PUyP%2BOR0YW5KnMLFnJUb10fyrQk8B2Ezkk4DXyLVqg3yg0pJCy27d%2BEV9N3DnvZcxjdB2tqe%2FIub0z7BiinyFybjB%2FBx0Y8qTtLo2MhFkNafrczWsJ9ZfIbXHn8c1vFHd6953J%2Bg8ZdeSjsAFqAmb%2Bq1m9U0WvyaZRtsCuBqaPLSdJbw%2FHGsEY%2Fcj5nZeHpZ8eVY76d%2F1ltIJBJhG82K6Q%3D%3D",1555089892818,"Marina Mosti","2022-08-29T20:49:59.371Z","Quick Tests with Vitest.jpg",1661806169955,1661806191040,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FQuick%20Tests%20with%20Vitest.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=TakSKsY8f8fd7p4aPDf95XbEVs6zhezrukfWWWEuJpWQk1%2BC%2FDxFV6vi%2FQ%2F%2BpBPZCL8bGrj2puus6IqKZA5MtJA37QTbsKVg0Zz2TjegfLZO1toBes%2FFaNEEmX%2FCxdxGKxZX4TLffL7h6CeN8j%2BzBEURuk3bXiitvdCUuOZc3PCIDFuCeZXsQ4YrXEmBrii%2Fg6YsgaMcD2B%2BwYaJ4FTaTEKSaG%2B%2BMNvJdjQ3J5MJmMfUyef%2FMM7CS0gYyHQeEd5tdC27sOv7hhFiGq430UB8w2y0uF4vUNhwhoQeR0cq4Bom9Hi%2BIIGxG1tQzoaAgXSp0HnD%2BII0ad2kfI6zWzUlYQ%3D%3D","2023-11-15T17:01:58.334Z","Real World Nuxt 3.webp",1700067672557,1700067711439,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FReal%20World%20Nuxt%203.webp?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=YvncLIAQCA56b6IKVF8dQ0t5d1YeLvZZibzTWlOKQzR22z1pHFSAgqdJ983%2BzF5es%2BZi7Bxw%2BXjuiK9F5Sy47BWk3VhyORjN9kVgC9UJdw%2FyQB%2FO9Sud1XNYI49o8hzU3yKV8EE%2B7R9ealZbM690P1lYP9GZbi0Mj5xvikHBhbmVkKTBBABE%2FhfYs2qdFlNVjvI7FJIOu%2F4QoN3SMbHdw6UcZh4gijDyR4gUuL6TscHo9LBOWqAOIIYLxp7i%2B%2BXcI51KmfLtwQ4o3yxNGDdGK4sv4Y3sRuzrEURVjNFT2oCijUNSit7yWwR99DvLlfdyezfFpxnH%2FrYV2KAp5g5DNg%3D%3D","2024-08-19T21:48:18.885Z","Nuxt Authentication.webp",1719954930968,1724104091881,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FNuxt%20Authentication.webp?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=UlRJJ8OC0ugCGA47%2BL5hswlEJRamHFeBlEJFh2cFfrWFTQ9YJDqWEw7i713PfmUSLbOiu4lnLxKEG9LvzwaHGzN2oTITV9D7UveBRyb3BRjwcGdvzOo7yVU1hWyMVQbEfeI3DbIhxrHUp1hdhK3oAlIMLptSSdnMXjGjdewSl6GyYWCNYXVv5cUN6mxALFiZPpeQDC%2FiYbvqcwP6sa4qmLQbbLs53KurOq6fepHwJztrdAUjoi3XJCyXmROJUDxXyy%2Fx3ydRiM8K3SmhXm0Obpb0tSt0xHYqoz6XDolpOnBPBPsF%2Fmjphu0zQt1EIp3s%2F2Z1foeYEV9SZaa9vRFBvQ%3D%3D","Sandra Rodgers","David Nwadiogbu","beginner",11,1686855549025,1613433013848,"I'm watching a great Q&A with Evan You on @VueMastery!","2023-09-18T22:27:41.994Z","Easy Interfaces with Vuetify.webp",1695075978421,1695076056581,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FEasy%20Interfaces%20with%20Vuetify.webp?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=RjYk03RTeNB%2FzS4SGlQ4iq4KJXsOjc%2BEbSzZpR6fzsKXsegExnizWsAjZUTE%2F%2BZ7qmbBo075NQdKahVFjSUTXk4Km7kM9TKuHu%2FanLnz%2BqE9817WtX8Zc%2BoDK45aP%2BoRebQEUvdj1vExKEpoY9gpdRcphGdfAxG%2BhK6jN%2BKlQcrcj3Vfe8NXBvdgcCfix0%2Bei%2F040dI1pN0qKFFLHoqQCV1cEpMjhOLc0dp3PBp2ZISkCBgE2cB%2FdRnSlzkhThqv9MeBP4sMjMovQnpZl6Y2wuWztdTc20HdJbhqjTUExkhSZUuUg6S%2F7DXA1aTwUhpVy1bfR4CiE4Z8PpOjggD1wA%3D%3D",1586809309649,1586804506353,"2021-04-06T00:45:43.270Z","unittestingvue3_opt.jpg",1617669926703,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Funittestingvue3_opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=PVK95mHtcyAdYNUV5w3Bk6LteKec%2FAIKBGZr2xZFigU9BvlcHEDIoji2fHHyEh4i9pirAqH3a%2FSztpfxSRPe3fi%2BDpujDbDSzbS8hNTZXqnQvsrObBrBT82MwFOHdtJLEzIB1UQwcGE7Hgq42wAZL%2BKgWxAsETi357P9amuvVCrFao8v4TJaZ01%2FjimvN70Xk29mEXnFTImZPzZCQzoSZbI2aDQxax3%2BY4EURJeyz5aWNYJ1WClozwYgRSG33IaHQ9s38oazQVNk15ocsSqTlJ%2B4%2FPsx2Uzn6%2FCKqe62dBaFd%2FH7T9JDRSgVjEsHiPjegF03P7uOcNQ1lWcpF1rUvA%3D%3D","2023-03-23T18:44:23.946Z","Elegant Pinia course.opt.jpg",1679596812210,1679597056113,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FElegant%20Pinia%20course.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=fJgHLHxuXZH7%2BAuE9xb3f1%2FGgwwBSRuyPGV%2FTvBSBHlrAWSsY9fDo0uc8gIuiXJx3o0ylZ93BIfI0S6JB0Gme%2FZWimzujoNqYWzpMrAaRETvojXHKF%2Fc9ehzNIodwhd7Smx64%2BtaBmBsnkEBo8VwIk9ZTzOGsk%2Fx9tnUqjv4OvGu3J1haJr9JoG9RZK%2FW91BBTb0vtnfZiz5pGoNhfsUtj0Ck2dReY2%2FfamQc%2FwizWSrHzDdc3cV9v5DDz2gO5Ls9USeFKvNuD97FHeBiSBmoTFWAWlijnkHANETQU7QEE8KIW3zafE8ht%2BAhwqOhRph0GJUv7sqKdi3tDGsg9qhPA%3D%3D",1517408682678,"Introduction","Jeffrey Biles","2023-03-01T22:05:48.828Z","Proven Pinia Patterns image.opt.jpg",1677708325548,1677708341374,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FProven%20Pinia%20Patterns%20image.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=BvsTz4ElenBT7j2nWs1vZooYdRwLDQ2mhDZyoJXaI%2BAuLhXmLwKp%2BD45Y9Ih4qgHwZF9DuMJ9s1df88ncB%2Fd9OJzv%2BvBRcV2xdmWy9Q4ftbyir%2BsjXT04bKrYfVr3K1mNdZydrBc5jipWG%2FOnk%2FkAd1sicdn5ZCv8C3uM2UbNO2ctKphoBZv6Xcj4vPoDYdlsXmY9Q3M7dzXdipgLHBJXs2bXVosMnL%2B7ezeYSIdjSK4nkcpPiWreub0h%2FhT6YhTIt8ul%2FWdQaZQtp0VJLKqRkW5CnMjaBgTsFfB22%2FPOsFDrlJDyHE8e5RU3xdguUtz0hSbsRdkvHOaUhUBXCRY9w%3D%3D","2024-05-17T19:48:04.319Z","Nuxt API Routes.webp",1715975228940,1715975277598,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FNuxt%20API%20Routes.webp?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=FFurxMHhc24Z%2Fwqm0xizbz4inodLomkOJCxwVsnc%2FAH55hlDsKjdK3ttS4MhWxoitjZCVUQh1TfAxwLd6hvG5sheMitvBXrjN7sN%2BoTH6y%2FfNyjhFbsOXuNV%2FPlUcYXtpgvvdA1NX8pBfEeesdxilCWBXjkjV6L6N8TJkJ8FJnRBdkKf3AW8BTpA9H7LWf2hYxuahldwWkr35bolOSFXj0hUR1GRjMuSsHI759tnlrw6y%2B2s40GGBLqciaAjgR4%2Bww8B3ebxzUTSPOo%2B08XGRtSpST6XzDIArFUKVz%2F6n6zwg4vBfKgetyQM1LuwUZ33JZTRaD23HgiICaDa%2BPfG6w%3D%3D","Adam",1590162495205,1541714005156,1569440715969,1667946700127,"Jahr","Co-founder of Vue Mastery, Vue.js Community Partner, and JavaScript conference presenter.","2022-05-24T22:33:32.928Z","adam-jahr.jpg",1653431602583,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fadam-jahr.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=JM1VgCjOt%2B2kM0wxPRjgbbOZ0XWimAtNfWHh4F75maLhGm65L202sfKBk7MkgUlW4kopZDVgCYm7cFRjsax9oTxC7UFEoYpPVC23N7CqQ4voEVpD9nyjQFR2lCDesZhbPjN379gOPEhQBk9%2B9sbKltTh9vizVSnCy1Jp7tpOUMRUVC91JT2%2FKaL968BxuabokwFu9sYOB2qZ5LZLQQ54OxV8DrPciUJdy3zU9q9nMSB5auipH3daJaMe2k9YNI75vnIRAaGG4YJfCBB2pGOP%2FCN%2FsQVNkDDgKJvCa7tiZcCc90xZh2qo9tfLkUJXyWMgsW1UN77pG9eUawUl3NBrMA%3D%3D","2022-12-27T20:34:18.816Z","Real World Vue 3 - Composition API.opt.jpg",1672173137841,1672173251786,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FReal%20World%20Vue%203%20-%20Composition%20API.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=YTujPqgx5fYbth5q0ZDpfZjcRyHnwtr5F83Kll40kRMBbRvEHlxXIZrnGWNjHzOlxP%2F8vpM6BxRSVx3ffXJ8j81TjDQ0UIjfz8uLCuGPLpdN0mLTQ4snljIwm%2BfMdgB1%2Bl7NHT0Ef8pAhNQMObSm5ksZrqaaRVwhSchhRI%2FXQCgAMillKau%2BuNGTUa60cly8PnPSdm8ZT9Z7VHIPZgpSgJiNq2gOKJsGOTRgIkeWtxlYcLOcghvx%2BPOLLFapmloNkXjAqBbxscQ0o%2FtJ8uESBOChc4tycF7H2HjVfAH255OZfQe7WPZ%2F8luA6CdY9zEwPTvSkRynjbv5Y2lQvj0BNQ%3D%3D",1621451470893,1516789793545,"advanced",1516791397640,"Keep up with the latest syntax and features of Vue’s evolving landscape.",1731533869599,1580506143374,1700067963566,1602188119249,1586809150749,1680548438382,1603733909103,"I'm keeping up with the latest syntax and features of Vue on @VueMastery",1744043543663,"2025-04-07T00:00:00-07:00",1681168217158,1687992511586,1685997153867,1539806977174,1555089048381,"Ben","Hong","Vue.js Core Team Member, Developer Experience Engineer at Cypress.io, and Google Developer Expert in Web Technologies.","2022-05-24T22:29:55.789Z","ben-hong.jpg",1653431219653,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fben-hong.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=slnKhELL0RBsvErX4n2EkgzFnCUWKnFn2w%2BTUWbI5E0Ciqu5Mr9NeBMolESgC98%2FifgCBcHRf8CPPg0JzDeswDgDFWPcsfpaSexoiU67NE4o3IwKNaBMSVdQl4eQjs5HUliaaEjDiNOf5MO9HO9KFxf7hcBzvdbVsujVEiumNF7PbVsSoKqet77eslEaix2egXu0m8BP3aYpfJitWpsCl1x6gwEl38I58WeBaG65qrcqvneaWrZvZ1ch1Eg%2BC0d6%2BcOR9VeWm%2FhhiAx9i0FDThWxfLmSRZs5MnLBBHr%2BtFxfQm%2BCRBW2EmNQuGn%2BsVWhMMYqeWBo3dz6op0ebFqXGg%3D%3D",1621292371094,"2022-12-24T16:12:28.544Z","Firebase Foundations L1.opt.jpg",1671897868096,1671898340272,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FFirebase%20Foundations%20L1.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=DUmDm3eYdgIOo0iTRVuK7802AEvAnYZu4yYGcYzAW1pm7UfEIY8O4fS6glHr0zg%2BQDHAW0WwaHXJhfZAugMtvp8nKBAa0ZOXik03brPnvX%2Be86OUL%2BPWTX3iPfhNWWhgrytgapW5qAhc7YxKAwWjZ5Z4soqZXCgJioLopmwecyKYA3bWMj3IsBflF56a6Ek2IglWxO899DJvoJvexvcOS9lTkVnkc32%2Fui7zaVmrJv2RYV33UC5o5MilBdPIfPxPQRO0mbPKZnYBVgRm690cjPNzEusst1%2FsD9Y1KrkrRrLtjy5Bm54e6fre0M81rjKeESZ6E6jEksREvaNMPWwaIA%3D%3D",1669662242047,"Explore the best practices that ensure you’re building reliable, scalable, maintainable components.",1731534006781,"Discover the fundamentals of Vue.js and build your first app with practical coding challenges in this comprehensive course.","I'm learning about Vue 3 in a free course on @VueMastery",1672173306000,1699550011467,1657822793111,1601408947893,"Gregg","Pollack","Founder of Vue Mastery and the former founder of CodeSchool.com","2022-05-24T22:27:02.711Z","gregg-pollack.jpg",1653431209284,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fgregg-pollack.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=QKF7a7jypwiWYQup0BY1FiYSByTAt2axAjUlhulKy%2F%2B18kHDZIg5bIPfnZwyBV9aOTQB9Y1bvI%2B71pjc0GGXFe8LR84QPiGoXiyYBJxgJVRtcA6F28QZZZ5BMurwBxQkyXmIRH4ZRvXg7e3BPwcOjEqzaOU39GGCZ3aWv5z0EzPG7Tpk%2F1XXUvJoOQPyPNXD1xfK9hCN9qGLcQokPccvAf%2BPLtmt%2BV1tyv7o%2BFj9UgE9cieqQqDGky3%2BDdQ%2B48zVBHVcxhzohTZIJwGLSvLbb%2FgZ3UEOBDVYqPTQBXLfVaPgEtSr%2BC5sx889Sknjt87UfNTKKRUYe8Oz5df92Zrpog%3D%3D",1562174576131,1566238243912,"Natalia Tepluhina","2023-06-19T00:00:00-07:00","I'm learning how to create a Trello clone from scratch using Nuxt 3 with @bencodezen on @VueMastery","I'm learning how to build reliable, scalable, and maintainable Vue components with @bencodezen on @VueMastery",1580505553365,1661806293450,1661271290287,1700067828878,12,"2020-08-03T00:00:00-07:00","vue3",1646097700549,1660325997345,"I'm learning how to build an AI-powered app on @VueMastery","The Nuxt ecosystem is full of tools to boost your productivity. Level up your workflow by learning how take advantage of them.",1674599921955,1646262044365,1572364356774,1624916198717,1635274544299,1613431598005,1591114915649,"Vue 2","#39b982",1549646151774,"Damian Dulisz & Gregg Pollack","Andy","Li","2022-06-08T04:09:57.699Z","andy-li.jpg",1654661383538,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fandy-li.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=aGjXuQIY5JZk1wA9nKMVJT7GXjNE5vl7PeH5m3TwYkdmzYjZ3sU85QaWtNzOWxLCtJoU8OqhAPPMQcbwUFftJWKKgQwP%2FfhIhsJ92D8Dkgr4kEXx3XkH26nbjZ8KwvHnKBSLnflzyExiUl4rebRz39NUB9ZsIDir%2FklLTNAh0DzjiofwA2e0iJ3AFn0WSS9u1kN4K8mKadr3F9aLlkMMfmL00d1EAdXFzik43UnEK0c6y3sF0UioIAwcMC%2BFvxSMvtqrfJISoux0cNHxEwewq3BGeq%2FsOfyKrV%2BvTWX1g6a1ti7Z0n%2FijJqGNM5Kw3fpdhXRsHYOBahFaGQUyq2wZQ%3D%3D","I'm learning how to level up my workflow with the Nuxt ecosystem's powerful tools on @VueMastery",1719962034994,"2025-03-11T00:00:00-07:00",1660858428616,1626279936310,1654196889860,"Next Steps",1613432834650,1613433075593,1666919626046,"2022-12-06T00:00:00-08:00","2023-06-20T00:00:00-07:00",1695076097636,"I'm learning how to build web apps using Nuxt.js on @VueMastery","2024-01-24T21:44:07.628Z","Rendering Revealed.webp",1706132540361,1706132637939,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FRendering%20Revealed.webp?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=XTI4ieDeWygfwg52FSfXn%2BG0YeFkuESM%2BJ1g5rIPELn1N9mJmqDviVxsIefCC9r35mezCrQHRqkK4Aw0hiex6FCZEPHcdG4zohy79ywBudCt5wB0%2BGwRUefsvcm58optfCT537qep0Caz1i7bJj3mnSIawoV0%2F2%2BQtyr%2F0OO1RVFAWTeseUMBCjABIDqpstTefqdh6AhfyAm%2FtSevI3kuaKKmNsKtDBxY7N8uLDhRivzDus0UL%2FwhFdZRCpXCh9ENVoZ7eqb0fAsTFYa8a4kE4SQE2E8UypxhCw9R0zk%2Fv8kCB%2FdqZ4BYYVyT4GBsaaJ3sb%2FyAm2K8sYX9AM4eFUsw%3D%3D","Learn the essential patterns of SSR authentication for Nuxt.js apps","I'm learning the essential patterns of SSR authentication for Nuxt.js apps on @VueMastery","2025-02-11T00:00:00-08:00",13,14,1572381803907,1601409807387,"Jessica Sachs","Steve Edwards",1651863547262,"2022-08-23T16:14:28.004Z","Pinia Pattern.opt.jpg",1661271220245,1661271259520,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FPinia%20Pattern.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=haRz5zxGHEdj2SHYrEMK%2BSjEGx4G5AzuWU36K9MN8NE6R3yl26bjoWogGK0Yk%2BLUX2RBtyXuRjevvZwc1YDOWHMBClkvcmDo4qEm%2FXPgZC7hdmfNoVGWFYFX7VOfIMTdJnzjrfonktEftZdR1aNAgb7ymZR5nFHE%2BRA%2BScgX586x2zP8EuBKWfw%2FC3MEvPro%2BMKxmwU78sBjoNzQ753AXuWkCUklB3aNXYQK60B5nVQ8%2Bf5QD8HhVOlXe7Nt7TRhvwPqKPipshWbSn5NoyFE%2F%2B%2FJjle697xGmQekJNoXlRm9%2Bv%2FZpn40BMzsCtqJbv%2FtnQPTEWVT1IscfC4mLwHZsQ%3D%3D","2022-12-28T00:00:00-08:00","Eduardo San Martin Morote","I'm watching @posva demonstrate 5 elegant ways to use Vue’s state management library Pinia on @VueMastery","Explore Vuetify 3, the latest version of Vuetify, and learn how you can use it to rapidly build intuitive and accessible interfaces easily.","I'm learning to rapidly build intuitive and accessible interfaces easily with Vuetify 3 on @VueMastery","Learn how to use Nuxt API routes to handle server-side logic directly within your Nuxt application.",1715975320926,"vue2","Computed Properties","Dive into how to use Pinia, Vue’s official state management library.","I'm learning how to use Pinia, Vue’s official state management library, on @VueMastery","2023-03-15T00:00:00+01:00","2022-11-15T00:00:00-08:00","2023-03-06T00:00:00-08:00","2023-04-12T00:00:00-07:00","I'm learning how to use Nuxt API routes to handle server-side logic directly within my Nuxt application on @VueMastery",1541609602991,1706132786678,"Event Handling","00:06:29","00:04:08","Learn about the benefits of unit testing, and what you should and shouldn't be testing in your Vue apps.",1579559072511,15,"Marina","Mosti","Author of the book Building Forms with Vue, a Vuelidate core-team member, and author of FormVueLate.","2022-05-24T22:35:56.761Z","marina-mosti.jpg",1653431743768,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fmarina-mosti.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=CO2C9%2BvaY4HAphJ%2B%2FDQ6q9ZKB5TbTL875Xl%2F9KUerdicWaAJFEJHI4LNPXrrGA%2F67a4kse0%2BbZEWJ8t65sXLAfwDFwpBI3KMdcjEgzzE2AWrrJXNCrRLrbJjkWrxsTTCAZaLZkrfEJr8a%2BZ16KFYUpy2%2B6vzZKn6A%2BFH0kZs6SiomhXjP9mEP8nPmt7JqCy3s2uuY4H4kWfMyj0Od1gSbd7IXK8d98SytK71vGBPom%2Fm8e3eyJXSfTB0lht%2Blrjhk1U%2FLsbrVuT6PtxHdVsqDD2G1K4dvz6hYjUioGSLmAhuIt4zFcpYkUDFuU8OBYuMkmY3xJR7xjLyjYsAr9f%2F2g%3D%3D","2020-05-12T00:00:00+07:00","2020-05-19T00:00:00+07:00","Evan","You","Creator of the Vue.js Framework.","2022-05-24T23:46:54.111Z","evan-you.jpg",1653435993195,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fevan-you.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=FUcAb3jANamZ2h7axm38YOn4FZAAH%2BiCr4Fjnp0h1KGEmhP%2FpZ%2BT9oXCW2HJ2MXiqMf71QFVd4X1rfogjAlPQyGGUsTx1sPdIgzCkF5KeL1qqISzllJ36KrXmX3w098rHBkDLEvgJ%2BSv9PaZGR2WtZzM%2BRsgSc%2BhrNO5ybTcFQGWB9N3R1dGE0V5yUvQ33FpLu2VHGHsEvIipG5CH%2BcPEoQg9CTh0xI4nhNwQWGUMJoYGaxNRLT4Gee0rVkrV%2FJjKfFkjdk%2B49U2ivWm9VEoSjBfcqlo8TPPqvEkrKbEw9jfu8SY4e4J%2FllbkIyx1mqm2pAQHnRE3J78dEHTHU6Yiw%3D%3D",1601407450221,"2020-09-29T20:04:16.609Z","L1_RWV3.001.jpeg",1601409839494,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FL1_RWV3.001.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=dL9cbxnlmRHadl%2FLpI7HbYfIdaD0bkc6Gg6j2nmqbwRLXM6hTwSWsFAzalMLsoseEZF23vbGjWoNy5yEQhvTEljLVUH5ln5SVxM77bqBqPfTxNtN8BAgisbsMaKIu8kV0NaifG37kn1yfythejH67i48gIrWeowux8Kq2Y9WAe6jUj5KE4I39vHD3jMgmqU6wjdF3QrTWnRcddZfNlGzxGMTTNymJzcoBz6HQxuZd9Bi6bsKkcMPEUmd3QQOcGSsI5JCtUfuuU4Qgh5sN%2BHHCFCy%2B69P8evFSwBaGz7zPPIlKeDqPzbQKin5idgagqjbShi4NzKri4%2FLn9ZjCtSlrQ%3D%3D","2020-11-10T23:44:45.144Z","L5_RWV3_img.001.opt.jpg",1605051851720,1605051867591,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FL5_RWV3_img.001.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=tGNulc8ITEOF8%2BEHgOmSLPvab4WJigf67wrFkQsv2Dp%2BeBndzWFsgkyBDOZMaByMR4DUm92XrHQOTp5T1rmsxzgW0fleOMN6N7q1KpZwrSP5l5nRIIGuMClOgE7%2BQEaWCJoPdvtgk9JrI4TMIBZRo3TZPAVwkLG9yfJJFrvW64j1Em1J35VjRf5uOpQsTUkKwOyoBtS9KajucUrxM8Hx8V8wnCOXYQOKzSGwCxUcbd51zjoCy0A09xZvDqrDL4MaVIEb0utWsTPxzQVg6wiR6IWPxecE5ZVjXMR3ySyFyZEkfwFQnBM6A%2BEm0IghVE9DyMs%2Bvee%2F1y07ICbZFPgr3g%3D%3D","2020-12-08T19:03:47.064Z","L6RWV3.001.jpeg",1607454186290,1607454212167,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FL6RWV3.001.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=wRR7aMile8UHTQLa6hz%2BXLe0Hxp0%2BVKLaTRxaXY8Dl6xiJr6QovhGbLDlSYogF7u%2BSQUzMfVIbolBskmfJ20wMCeq7xjRAN1DcpJ3jNml2OGFXAX58oFvuaFn%2FDiNGBpxADsm4ksABe1Ov1wlWwHvlfcwDTGptAKS%2Fc28EgkthUFqUbioGczlElRIx%2F0LvAXPONztgxuFf4NoFhDEFLzvfDSqHoXYXLvp0UrsgHUQLJkTocxW4Bd2agU%2BcAg0ihbP5qLrqvrYZ87S8Evza4P%2F0%2F1t60xxQumgnQm2CFAt98KDvqXhxD8zHtr%2FAxqJXRbN9tMUU6X1F7Tr%2BDfSmxnOA%3D%3D","2020-12-15T16:55:26.948Z","L7_RWV3.001.1608051320093.jpg",1608048810252,1608051320093,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FL7_RWV3.001.1608051320093.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=Zldf44mKXKnSHIbU6ctcxqipXwlnF8qkKL63jawjzzxAjzHlGluNb6wD%2Ffh6azFqxlykrqOT6CV5mY1BW0QcOOzqbEmFTG3t3bNktogTYGNWbNa6ZaVIRicm5T4khsF3%2BbEM0iHWsf0qGSxXEEaND3IlwU8WzKUoWNQnvixK9QQLTXdKXXJqQ8rYqYWYGnQufd2RtYgqc60JaLIdD9yjNpctxNd%2ByRVFU0hOX0zw9HpkzRpq5wxTghARTSbqdoKXZxNsnsSrcdQH7oVrBmHCVY3UJjL80ituAtPH8e7ppAy8JoDUoL7tHtEA9290WU5XjKmOpqMiFcT%2Fne4kCzXYNQ%3D%3D","2020-12-29T15:31:08.798Z","RWV3 L8.00_00_32_20.Still001.jpg",1609255839349,1609255860967,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FRWV3%20L8.00_00_32_20.Still001.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=qE%2BM3gCDRzOlNFBINP9CAAQaAJLmSWYYXNQ5qpasNrrwzbWmWaiDDuUpyn54eiJEAnAe%2BxmjZS2VQxMgxLQLDcMMW8iBvOn55UJ5Tic%2Bqpe8vq7p%2Fb%2BSSRLvoMjy1x7r1%2BW0Ulf2OL466dpKH43VFAEXuhWmqIHEG6A7yjSG3KqalYK2ZO%2BoNU8EWY2fGGDduUcpXZEKr6Rj9K7o4iOzsA3abo4u4mq1lPhQOExbun7gdnlC6qCF7pS0%2F7GpaYA7PYK2gdFW13xmtlE7%2FLEjQFudUAymRsfKRyBDUivaMkejNGs4YTAPC3wKm0wHrRGMYdDQVD3DHlrYq6NUrzHSMw%3D%3D","I'm learning how to code better composables on @VueMastery","2022-08-22T00:00:00+01:00","David","Nwadiogbu","Software aficionado, technical Writer, co-host of Inside the Techosystem podcast.","2022-06-07T01:26:54.413Z","David Nwadiogbu.1654565206837.jpg",1569450184549,1654565206837,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FDavid%20Nwadiogbu.1654565206837.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=P8PoyfzepJpVXz9fWZqiUOZNVxMIRDNphwLRlzRa952vEYIPiZFo51TvGY6f0Kol5UqxjZrF4t8XwzclM8CzGvbjDkev%2Ba%2BDfN24po%2FY0yUp%2BH4rknnk7fqnkSPdmq4TLTjne9aZ5Dz9KWgiVbu039WO6YON00q6EZd0QUGAlgmfmpPnWWxgxb8RLj9cgRAWOd9RT4ZiD4uOy6JwSlkcySw8DJZIf8owNpwr%2FfUHEFE6cAV4m3oQsADQe5ZR6JmoA2aIZxTHhVolZcd4EIliDnWN5OwMzElZ9kVEWCggCLDbnT4QUlZOv52ztOVUpDAazggqGKy8rExxXjAYm3%2FcOA%3D%3D","2023-10-03T00:00:00-07:00","2024-03-12T00:00:00-07:00","2024-09-11T00:00:00-07:00","2025-03-06T00:00:00-08:00","2025-02-25T00:00:00-08:00","2025-06-27T16:24:11.493Z","Top AI Tools for Developers.1751041444259.webp",1751041255839,1751041444259,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FTop%20AI%20Tools%20for%20Developers.1751041444259.webp?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=LfVPbFCCp9lkKlWH0b2DwJQe9cQLGH9Nn3y%2FFbpal%2FTfSD6bBpBJ3dgT1a2TXyrSwWU%2BndCUVCqD%2F4Dx3KNE9izMuzAEXd2IjbJxB0rp1iKODvLFaGiet%2BJESJHqzR%2FEZFUx%2FA2bCVdt8R7NDbtL7p7xE47EFEKkN8jRvVaK51XcAKSeWfx72uAq8CKF5JL8UYzm1y2e8qEHjgZLfnNwpn0oxs0xpFXSORYnCtXo4BJSdx3PqXRtL0QHpSHTO6crMNFLx6ADHY59a015f0Al55lPmII6RTG%2BdUJeKSrZZ1AlIPt30AGnNFluHJlls3AnTh91sI94NlBZc0n35UXLGw%3D%3D","jWatLG9La8TDYjr3JgUI1PxBCJX2","2018-05-21T18:55:20.834Z","1526928912677_Intro to Vuejs_Lesson 1.jpg",1526928912677,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1526928912677_Intro%20to%20Vuejs_Lesson%201.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=SEFvmaIo3ncSYPJSC%2FeAMuegIXHgNQ8%2B3OrS5FdQwLcA86XC7OegDiiHWJJCTnOBde5SPADawsy5H%2BQ27TY8Nd%2BB0OjNbCGkNnJG1cAPJrHWvnncddyS5ipED8ia3pcuw7c%2Bq0rch0%2BpcZwZQSabeQ1CJCXtC70zeVUYcRTzokJwnh%2F8KmCgprZ3%2FCrcIDBaG%2Bz71U3V4uDp8iXe%2Fink50zhHU4u9TJWDtbi721zQnbH%2Bl%2B4puXQIDcfAi9lm8wTZ5aV8Q%2F3QYDLiPsn0bTTDu0TmoaSVh1X36JII7pMhbf%2FpJRWJg7z%2Fz5dEZbclkJDUi59UwYlhsbKWw0aOvozMg%3D%3D","2018-02-21T00:00:00-05:00","Attribute Binding","2018-05-21T19:59:57.447Z","1526932791087_Vue-Mastery-Intro-to-Vuejs-2)-Attribute-Binding.jpg",1526932791087,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1526932791087_Vue-Mastery-Intro-to-Vuejs-2%29-Attribute-Binding.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=ROZHwVZNtFwFKw9ErA6aN0gKrngmZAAR1iJ57oy%2Ft76vei0tHfSg2XvtNIPc97Gpv4P33a4gRJ%2BABnQ7VsNL02ZD5LsNuZa%2FwGJ07W12ZyHfvbEilbIt7lsnP%2FEorTis9GBfJET3Ky9dQ4%2BbaC925Sn5rjgerKAKy0jGX56WEzfM2yE5P5GuTCXV9vMzprgmOCLnZ%2BNhcPW5yPqagHREHBPhBWrpC4669rkrtCRV9i3JD8lYCvQItyg8PwDs9zLmU%2FjJGL3RJy6wo303DaBMX5P6XkWctbmo0dZrInUm6smevDOO6Yl1SPeyDulk7oAjaFuLRoGKuNrqojn2ICS2Tg%3D%3D","Conditional Rendering","2018-05-21T20:08:35.239Z","1526933312801_Vue-Mastery-Intro-to-Vuejs-3)-Conditional-Rendering.jpg",1526933312801,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1526933312801_Vue-Mastery-Intro-to-Vuejs-3%29-Conditional-Rendering.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=sKXfrb8Ow0OnYJmvD%2Bx5M4B5Pkcw9Wo9eUUkIlZlSQ%2B0aMWR2PfsJm9SMcmP2oUj0OYa7cl9%2BL7iTT0S%2Fuk7FdsxuWtqqOCet79RXQPgKdJiIA63Sg1rIlW0q9vkGqIYi92ZT7Tv5%2FBqlVyGMzqyym6%2FJ74q6CmkT8ATLgRofvNBAE4Qx3z%2BYWQNGlNqNJpb2cowziRxbu8sk8xURP3G8k6yAgy%2BSl2Z8V%2Bj0nhNR0sBU0YbC%2FvpzKfPhAuP3tTnf8yTVyPHHZgaFveWdXl49%2Fmwk5V1Gh6ZFRqGLSTzUI5FmIZBEHaFdefCrlhizjrzkVq%2B4oP8TB8T9vd8QAOQ4Q%3D%3D","List Rendering","2018-05-21T19:49:44.121Z","1526932156444_Vue-Mastery-Intro-to-Vuejs-4)-List-Rendering.jpg",1526932156444,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1526932156444_Vue-Mastery-Intro-to-Vuejs-4%29-List-Rendering.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=T%2Fkc8Rxtl7yOcbRUjDUUkr2rR2wrXy8Wpu5AaxBk3JqIYzirOL%2Bz7JzLzOo3m7Mdx2qxXE0ZqlreyoF0FxYNl3j3k7cvv6RFlDdrLqApmoBHbeR0PDIqp50H1lIBVWp1yix4eXiIa53WD9STxhMO6Fn9lRSNikvloj1s%2BdLlRveU8Tlm0UFgzZb1swa%2BfoHCW%2B7jBajnMfis3I3HiDm0UlIOe1U%2F%2FI56gowaMZB67C6n%2B6ciPBEDSOVwjfFbfvcQVp5pWTKzmEuqyGRXDaKQrbXrGQPfXQM9rAxuBzcKjxipq3CjjGu8jEJ%2BfEg9e6fxaFVDaKCsB90gvGrFUBbnOg%3D%3D","00:02:16","2018-05-21T19:59:55.841Z","1526932791089_Vue-Mastery-Intro-to-Vuejs-5)-Event-Handling.jpg",1526932791089,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1526932791089_Vue-Mastery-Intro-to-Vuejs-5%29-Event-Handling.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=px7YA2v%2FoWnCW8lBd8uWCnDW3Ns0ig6iKZyU8gIFc6O4NCisXx6f8KX19tw6ZyTZPCybnrSOfnCZhZ91ssX1H9XbF5UWyjGqgDdPpPBlm7gjnl8RCUi6TvSvk20ko%2BleLx9eyUXJK3EnU%2BUpX43hzjQREK71vJElxdSf3zP5qMtqrKO54PFpHuIezY7Lx1Soh4TgUTDrXI4W5ttF%2B2ktb1IaTq6sFO64Ue2qv8y%2BXEm%2Fsyph21xs8sdYvi3hDeIdGHZQF4tOSSskDidnb%2Bt8FdL%2FXndB%2BTiFHXeJP49gm9WENpMOvv%2FmSQpEWCAifpmAZJXakpMv1I%2B855pXVp7K1w%3D%3D","Class & Style Binding","2018-05-21T20:04:02.203Z","1526933039746_Vue-Mastery-Intro-to-Vuejs-6)-Class-&-Style-Binding.jpg",1526933039746,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1526933039746_Vue-Mastery-Intro-to-Vuejs-6%29-Class-%26-Style-Binding.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=NGqUE1BvUjR3em2DlPLrfB1LrXV5mYoTf6e10Q0KFjZj4TIqr%2B5%2Bk9tdCgq6r6PBJDm%2FK2kVXnpvKGydMg2XHR7aHN69OiaLZAWfpo7hHONFq5lDqsAf5kAP8OixeqZFu%2B0VCKEATPfwzFP4HeBOB5VfyO%2FEHEAfTtEZETgJwWhUGPohqWAoRRPZ6mKM7ODvdttX4HAKpUgI6ANmo8PyXavjKS%2FmtlL3IwDfhcS%2F6ISP1%2BPwQ0gexR%2Fn7cS%2Fc1q5fcfjCsZLzA5sESSE9R7mOXxSABq8lNijUhC86SIcyIcXYVAi%2BgASj%2Bi97PQc8WmfQCwBmGE1%2Bov3Wp7Lapm%2BOQ%3D%3D","00:05:06","2018-05-21T19:49:40.931Z","1526932156445_Vue-Mastery-Intro-to-Vuejs-7)-Computed-Properties.jpg",1526932156445,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1526932156445_Vue-Mastery-Intro-to-Vuejs-7%29-Computed-Properties.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=LlXGUc%2B2ZPPxFfPgkb8CDdo1Lb1lAEghcwuMRa9rFzXzdx29c4PnY36GgnR4TuyceCFe86O9l8jbzLCBgQPWLUy%2FMwRlkOpRal3OMfWDWJK7vnNFQ8GEcLNKpaWGV9xgpW%2Fo8rJGiL97B2H3K%2Bw6DmKhjbb38WZLFFKv9Dg1wk%2FRyTTAPYyhqHm42i79N7CIFP6BY%2BI1SSLH7rCvBSXxAzlgD2Hs7%2BdTpx6jRlWClUsvfM3Ohmo6FvHlQYF5u248LUH1eg8iz%2Fim50pXuUo6M%2BqbKN2TOsd4NgrNBTnLL5hGLJxl9vrc%2F6hX1HYcT9QDPgFW6pICV1Fjrz0svuaFVA%3D%3D","2018-05-21T19:35:01.003Z","1526931296175_Vue-Mastery-Intro-to-Vue-8)-Components.jpg",1526931296175,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1526931296175_Vue-Mastery-Intro-to-Vue-8%29-Components.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=TtXG7zMYxH3wvRra0QezqbU7VSi9bsuF%2Fi1jE%2BCqQTjLbJN8YlEDwwGButU%2BblFq9pbrElo%2FDidwh6Fx0fN%2Bqap6GxF8mSyAz5zNKkAFANxUqRNVUsKmO%2F2yYACEo088ALxxQ2Sb%2BA%2BfejJyWrxiBdCrFSorVunQMnOeQEG3wwAOEyOh667uwLFQ%2BhzuSR6%2BgykRppBPw3CPaPO4lyOSFxJgSuW6r9FQ9OQ69bQ5AU2%2FwlCz1HPlnNDv9An4fv%2F1twZS7PsJuR41XZDxADIPgxiUnOlm8t9jH4UhM3658BpD2KMhh3Nb9EeSz%2BDv9kQNgxBNEImsfmXBhOhSPFNziA%3D%3D","Communicating Events","2018-05-21T19:49:42.115Z","1526932156442_Vue-Mastery-Intro-to-Vuejs-(9-Communicating-Events.jpg",1526932156442,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1526932156442_Vue-Mastery-Intro-to-Vuejs-%289-Communicating-Events.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=LJQQSBG76IUoEkxW0TTCk35ERd1%2F%2FmVLqyvi1VeQzJpzEsHuz9LdvJ7ayyiMsFVHJYKHp1MNkO4YT0dLtiDPCmhGrgd%2FAq2O7d0qlYv9LOn7sl5H%2FE8VnjLrjPb4AbUFhXSLiOXjvIgYMc8YoJCNsQfC%2FO7sXy0oYC1uSK3sbqbhwXx%2BeXVp%2FcvJE9Iz0uMkAWGJD5vxIFfgw%2BJB0Skgg0OwXDF0R3CCSd95dZ3pgz0NWkbHgGdbgmsUcQnM8fcISO6KXpT9UC5zn4zVO7uq48JXEEc18b4F3m9QXsF9%2F%2BGVlS7KwfiRi2sHXNuHsIbVCkTo0OnxTyWQhlLKc9ioIg%3D%3D","Forms & v-model","2018-05-21T19:49:43.594Z","1526932156441_Vue-Mastery-Intro-to-Vuejs-10)-Forms.jpg",1526932156441,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1526932156441_Vue-Mastery-Intro-to-Vuejs-10%29-Forms.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=qwCm4ypLPulQxYSQdj30lzNsSzEESjR2Jnbqe5YOXdkOLM2UDaSYKv5nA9BSQpLdZ%2Bj3UXaq5cqS%2BlPdLxn6QDR1YTOXiQDze%2BHg4dPVaF4tA%2FE6OWPQjXVMe9MvK3UDMubgFK2joKnindl4GE%2FO5%2FtbA9azUqjdhZk0F%2FkSgRKLd0Cx9vqrlzUyQdJVQ4m5DsFvLDoIb%2BbsIVU0Grvi5MOXuqz470QFQZSLZYmOac34unrJDIOA2EcjEiXa4O86L5Ec0BtbZR%2FEm42c3woH5d%2FbWjkqWcvQH2o0nQYP3KYLQVv2ncM9jbwbsq4Zg%2Bh9zUW%2Ff8%2F8azWfUVqgucgXlw%3D%3D","2018-04-20T22:03:09.207Z","1524261787622_Screenshot 2018-04-20 18.02.47.jpg",1524261787622,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1524261787622_Screenshot%202018-04-20%2018.02.47.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=pJK1zuVcKBHfiD%2FYKGaEvPc5zdyhDB%2BNwg1hlXDnZjZBs2DllIYDnQ1IJNwtOQ%2FSuhmCb6JYpIDWY99nZqqrz5ymVvNPbv1U5VinRbuvcdyzTpsSr543uncgd5XkMpiSI7EFKMWgMczAXLfbknnTBahcSD7Wj26yQNK4zfqPM1k2gCKtGnzGxkl67Lj3uS3jg7c0vJSb4fdq96Kbv8NSRbhOflWHMe%2BkXVwARD%2FPnVRTgWRd2wLaJr0XeiH%2FlBcPl0GajHAiXJbB4QQ%2F8gSgewNzE22ggY%2FZtTkcAJJMZlQeBkhzOLMVkaIjChLtNpM0Sjd0iHT8xU2JR05AjuzGIQ%3D%3D","2018-04-20T22:12:13.860Z","1524262332139_01-Building a Reactivity System.jpg",1524262332139,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1524262332139_01-Building%20a%20Reactivity%20System.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=LD1bG7u5x6NHto0uwO5VijlIpQqlom121WULO3ST0m%2FQL4JpNxPFAYssCFnWGQO%2BQkJHszshAsgubQ%2F9SfBmK9wKiwlJn3XKJxT8O6C%2F7KyQvZU2W4HiLcAqxsdRRl%2FPwH7b6GrD5KLTli3oXE1J2XB5QJuugUVLrspWtvZe%2FZYiQAIctdUt1SkgTWMDT3Z9Rbo9himpje0KQQQwyz%2F1YTKsgqNiMJ1aP6mxe%2BupyCnnjAjHfN0cJdnirscj5UW2LMC6NXHQUFTZ4TCtDPqFQUNqyzJM3w5SS62Rn9ecU6%2FyTLjMSQ0k3zZygiyUdsdqPpqfDQC0R7aZPCoTn%2Ff82Q%3D%3D","00:05:05","2018-05-18T17:06:00.207Z","1526663157424_1526495784134_1) Intro.jpg",1526663157424,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1526663157424_1526495784134_1%29%20Intro.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=UURuKkTNDSgAI9GKfCKkP3cdBpcu9axKqyxZic5AfrLzq%2FiyW%2Ft87m8QcdO%2B3ab0pq22RVEZ98y87puqV5b1jxsl%2BSKy24u2z7OREMe%2BZR1nXBDXr1lWyQkuhbrIbA4bcujge8WZS8fJPA1Gd%2B70c7QdByUrY3G7P0Ft2%2Fqfbzc%2Fe0yn2lE2dnwaG%2FbDdZus1m6H5vmwsEiEsN4IhYUkzvDJ9wgAk0NXqBrxlZlPwxpkKFplzRtA%2BoG2d5UvybKiaY2cV%2FKvKA37K6Hj801G4Q9B2HAx58Tf5Z8q63SHOU09OnregbTRFTbZN7ccXdOdYxs3YE9HO%2BAQpM4m%2BBnDJw%3D%3D","2018-07-16T23:48:57.831Z","1531784936324_social.png",1531784936324,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1531784936324_social.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=JQ7O8Whb2G7lPPH7Wt5FtK%2FTSw84Tj7cw7G8Tl%2FG7uVZOErJOIo3oKkh2j39NhaJh4ICCtyJ2YPUiUWzauRDjr0SaA7SrCeXYY23xSk9g0j6Du5g3BK36Sn2VxS2P69wHPQ8oM5vCvbaRqA6LM0pUD%2Br%2FvQDvaizpXK9u80WCINStRt1BRmOc%2FLjhW4EJsLybcM4XC1FKBQA%2F62NLdhwEofP9yv%2FEyLGQg586PnJ2wb0Hqyi55eFpjfeNis3vhhVa0sxcugxeZ7JhllbpNsRu%2F4dgBMW1QCUM%2FfFAYtGPPX1AdH%2BN00HfN0gWDW%2FhrvFsSjrPg9vKRvFsXnQ0V8%2B9Q%3D%3D","2018-07-23T18:08:40.448Z","1532369318194_RWV3_social.png",1532369318194,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1532369318194_RWV3_social.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=P3i2mB%2FC7yv1s1hxQ2qs7u19cSD%2Bq5SLJQoyxKuUP5SlmraNeoU1IdeuOOxo0oPcePatVf%2FE3hxwxSZeo9rpWPWd0kRwpF7NtnISYhV7mhjzXL5kwv%2FiH9cGev9cpYwirKEvJRhZjyfCRkS8CMX1LoqfKroBKw%2BW4Qoouqq5ejN%2FMcf1CrH4TLb%2BeSZwf4rSls1a3e8ULgSfLd2AOVV67f17m3C0u4EyTT2BkfrIKROpfdvomPYxqyzd%2BcXW0oQ7c81akMcyI7yb740PM4BDpfj1474HSVI0pDwAiyjihD2aTZAJkErqJpOnHva%2FSihlxNImI386A6YWde%2FHYocc1w%3D%3D","2018-08-13T19:32:30.173Z","1534188746839_social.png",1534188746839,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1534188746839_social.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=mJn7%2BA6cTWQoZ4gxw2tnefAulrEkpNawJfA96kWIqIWrS%2B%2ByBowBEfX5IlOQJO5fc%2F7eoFGqik55wrR2imXXanstZYQzEC8UBS%2B6ECyAkArwd0aOhNDdDhfOPbFzSmGwfQ2hMRWlY%2FyjtVnRi2Ima%2FMRd0njoXkpeBMmlvoIwL%2F6KtJsUAHMV1CjuYqbuvNwMvmiCZ%2F6veYevt%2Btm5cvdDmig4BgRSwTTo6O180Uvka%2FkhC9E%2B8cc%2Bcrji6xeFahswq4m4%2FKBLVnwvBpZmeS2ZzLXmIjA%2BrXixlQCVjCpugpLzaTSp9VTChKzmGnvoU23EFf0VVt%2FkACYeVeDIlnsg%3D%3D","2018-08-17T18:38:13.898Z","1534531092182_social.png",1534531092182,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1534531092182_social.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=Srg2438N3KFezgQtY9w5jUe%2FExr7ENgj9iCYCAGoJarA8LXHEpn2vQNQD55RvkBovFnB5CNa5qibgP7cp6iHPALHQ9udy4yLVb4sL8Uujhgtvt9koVzpdAZCm9Rww%2FqSF5jP6OqJa1Kbh3TcYiH1V8SLfjXueHiB8n27KfREbp3cJpFja0DInkPD93Q3yZVDbrFTDR3dk87sNStteIr0UML11UNreq6pvZkr3GI4K%2FlyB3j4Bg8hoGZaXdwlv3Gs3mfoO68TvK8WC%2FYfYa3ZUHni8wfOUZVm6%2BUvna%2F%2FFQdkfZWtRnPCxK6njWioS7IrhqJxlA%2BqsBgklihBqkQsag%3D%3D","2018-08-27T18:03:46.784Z","1535393025695_slots_social.png",1535393025695,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1535393025695_slots_social.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=f2XyM8UrHcYQVoS%2BZXumL045Sjky8o0OtpqCyAgColToG%2FSK9V6GC5nQoU8W3xNa%2FvFWNsMavtRAEqEDHgRwgNulk2Vqs%2FWQE3W5y6e%2BqDIpNxfVTd34wuHRU3zfYs6usswl8gLwpIprsmEJGI7C6y%2BK94v9PQzmVls%2Fv%2BCwSbw%2FUE9ctgBC%2BDLq93QUyNYXJweBFEz7BqdMKDmXbV%2B0WtElxmQjxj%2FMpyh0AmwQMDYD3h3ED%2BiZ101xB71jm%2FSldMPHMOpEQnEqn%2FZvwwaKrZbQVUj%2FLiekaPmqNRBRZKtmRsEsUCfbE6Cu4wPuQCpQRi7WmELGgvkiXmYYlhDG9w%3D%3D","API Calls with Axios","2019-05-27T21:36:37.001Z","2018-11-09T19:10:30.332Z","1541790628567_mastering_vuex.png",1541790628567,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1541790628567_mastering_vuex.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=N0sNmk%2BZXvuSOkj4VhQCnkdXAkjKkEZk9sJ%2FAq14LPmdKAs451sTLMq37qoTR8Cd%2FopKIBr%2F0M6ePvBM5TJtdvJGXHA8A7KRyQaHToAW5MX1nxqRlBbohqDPnnfFd9HQKowjpBfm68dv0vqGMUb2CjLw1YP666tZEaQkH4mnu7z4x3VF49i2hhvWjYowHXY3V39dB%2BeeDkA6JUmJBYL%2FBJnGWW8ggsq1Tb9ztOPWGWFaS9gwLkOERvDQ2NfYunFCCNJDp33Ax%2B%2FH7jgoxdJBNArKDO8l5CzmSPCFRXnzpyFpn%2BtrX6Tudby29NNq9thA2tQtdSa5vuWnu3tiAwjQog%3D%3D","2018-09-17T19:07:28.476Z","1537211246443_2.png",1537211246443,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1537211246443_2.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=GoTDrt9mTlsCDAAxT81S7VsACYtRs9rbu6TiS7myTubJ3iKvP9yS6flU9yRVLByAXs%2FYTZf0jpOX2J0FbBbClsykluGJOvB4ZRQbK7VqamJGQPDnEJgWFZ9RQKXIOYf%2BLmckGyyG2EzfkHFbHVkd2i9G%2F074s%2BZSJaPoUqDPe9K66se1ji9ercXWS0TFaKdWUVFUHKfax15aNTz0ROsxBzlukx%2FZ%2FkY7IC3HMSJwDz%2FLZPUkSH%2BGwrgtcJaG%2FsMCH1JQJdpatlROHPqdSjXtNmNXSR%2FACo1ikOPMCRDItgsS3E0wjmwdNTxXoVfjIZufsNWIoBm%2Fw%2B1wBNZMGJy3Sg%3D%3D","2018-09-30T20:23:15.467Z","1538338990394_actionsMutations1.png",1538338990394,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1538338990394_actionsMutations1.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=gWQnxCnQgZU6hCtnKXLZnsGJr6RttlFiExIFYDnHml%2BAdqecs172Dmp14iSlC0jL%2FEY0b%2F%2FOnRg0aYupkR4abJe37IRh7T1Bwy6OHsZxD8uTsUkzXI9Q2H1i4xodSAQ2nl7NQPy3QISGoSnF32T3aJYpe1KJCLsy0wqQ3SrWPdX3Y0jbgPjvYZFIhP%2BDLapZduh9El7W5ci3yjytVpSynf19%2FsWpRaruAwFSpzA20TazN4TNl0CKxvwhXuKHIwTvTbfWBI0I13Jk1k2Er481vpGCedl4EEzY3zVj1u12QHuEJFIiADUPAE31uBB%2FfbMELm4g5kgkuk1H6Q84C%2B1Fbg%3D%3D","2018-10-22T20:27:39.787Z","1540240057517_2.png","blob:https:\u002F\u002Fapp.flamelink.io\u002F6edc9bc8-1405-422f-ae56-daba3f098ec3",1540240057517,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1540240057517_2.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=pHKf4oBISMHDECeLv5tnkPCGMySq2uCyS0iPc1JySjUkO%2Fz%2BbwY4qHtr5%2B5tRU%2BohK5DevvRaVTSqJMpJUce3bbSBnxiSNAvopw1eLWKPkqyJY5%2BejssE1pP6FUVx2CWvRYlxY4GGubC4aoY%2BkDtdtJEmpslzBdre6AYeTrJ8oTzFZAjBZSb6XjCUUJ0pG3GBwWDKvyW8c%2BZz3DasR1Edrkk5Xx6fufNV3%2F04kKR6sHhYrZ6wJRzRKyZVt8Jq%2Fj0qgoxY3ZoQjy3AJDLsZe46ZM%2F7hCy9Cil5bCfI70RCiiGhgPOtBrfuzOjtMI%2B7A6z9hbuizSWUhyQX9MEmaa1nA%3D%3D","2018-11-09T19:04:27.922Z","1541790266131_5.png",1541790266131,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1541790266131_5.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=vp1IhoGpYk7KF0cv8xn1ATAX18lHb7ouQP1Dcb1t07k4oVBO6Wvfxf7uMsTi%2Bze9tEaHWsWwsjxsg9hY5gP0E0l6pWG9r6M2TEAONeKYJmoG338tym%2BsOGRZ1kK1B%2FeAogGoLUJGfMLap1gFVCocvcfDq9C2eXKL1e%2BuWQijG5lz8oZACQlcdnR4Qt%2BPgmgcOIHVjg7RjtOhyjg8iKttAq3DJolpG1FZq6XUs1b7rdUFvvQuT8pWD6XIztJn2bDfBcs%2FenqWwM5ehuE08fbvxZAbPGv5B4zyN5qFCOOvET68mynNG0qaWpKWZ7hWRj1yfYSCATFbQqlW8opDa90A2Q%3D%3D","00:10:13","2018-11-16T15:44:44.749Z","2018-12-10T22:56:22.266Z","1544482580573_baseInput.png",1544482580573,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1544482580573_baseInput.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=npkXgc%2BIY%2BZkSHr%2F%2FrjuEHVjNCkVT%2BUWxCnujeMqS9Z2wDVbyN8HwN89zJYh1h08SaOFmbVye1Ro71331n3idoAfJNQJK4WUpugNdSTVd5y9f1eSzbzsqWIf%2FilCbYQCUCpyS%2B%2BdLqeRctMqyExgS%2FsGjMHywPGZeP1W6tm7niAx%2F5zWkK%2FZ88rlIs%2BJkiF%2BbEDEY7ZxCiD7WejqxpUrzpRKV2h41f8baH969TEZdN1QgUPDpbI3d8pKvJKSS43NzmoSkEqL24T%2BtH%2B5iPSjOKpijiXN6KC6hJEThfFS7cCMCPcYZ7ekE2J1OmZFdg%2FpCc8m02b1ewMXCrnQVWEkxg%3D%3D","2018-12-17T23:37:21.868Z","1545089840424_2.jpg",1545089840424,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1545089840424_2.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=l%2BA3zamBFjUHwfv2wR%2Bl72zxhe%2FI3AASnp%2FuiQt3HWHHqFIwfkkuTrSmXcjRH4jTLgxtld8G%2F%2B1jlKsnKjATYUqtV4jpQI2s6jPWZGD2HW2ybWiWZVV18oHiESCbQhKHpSkVJT%2FXle4prqN%2BZdDjZyIk3ghCli5shriZ7ds3xoQsybX6QP7s0OWhP3cxM3H0inw6E4pbDE78LK%2F%2FacRveRvtOoM%2FjKr4%2F2BxNcUpyyy8eMRBu4YTeblB%2FcBXu4s6fPXvYDROy8iMcDAjQjT1QNlwVBMI7AfUgk3CNxbNCljX6B6OQkC%2Fuit%2B3j%2FVV80b7YdmeVVzNm04aSepF06N%2BQ%3D%3D","2018-12-25T01:47:31.388Z","1545702449058_social.png",1545702449058,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1545702449058_social.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=XZ28fAHjGyZOHcj2u0Zs1RLAWc0KGixz1O80XRjIJnHtljlIAURC3Yi%2FuhboRydvaAEfKvi3BgVNBXIvReFhb5XvwpeQPf5LONW0Y9jKwnKICYPwcLJz1yvvoYoo6WOETh4aI2bfgM79fZfQDS6WHp60kmYdLLSXmslED6WMucR18UK9ZZU5tjj337vsjDmc5sKnGv8JEu4slBt3y7geStIZfkFB7%2F1GwZj%2BOzRlm5PAoBHSOSrkIWP3Rp7ptyssPWS%2Fp6evqg%2FJ2Hb%2FrfViCOGtSCI%2BjXWXD3rIeFpRFJpP9TeyQm2oRppN862ex2YJWiwiLA9JcSvPyxsAxh6loA%3D%3D","2018-12-31T23:54:25.781Z","1546300463935_form_validation1.png",1546300463935,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1546300463935_form_validation1.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=m%2Fi%2FNHPocqrWndebO7LeDyBkI6v12sTtWVArh8KSDggB%2BsZg5AOEjRNPW2rjM%2FKOw%2B2gHQhdImtYzFIlCrv5BvLnYyCjEErDNLdlRjiXp9rgKnSIy8YiOIzfPRjLXHg5puuzngb6KONixfmYHqnwQcjtFb9UBkLnoNqmVj9oWUfugObTvS6aF7rqlrNY%2F%2Bju%2F%2F99qelb7cnekk71DfFL9DLUTp%2ByUmFIoez3GI31%2Bxec0v0eCBhRUkrhfkykiRgGEJxkbbivAK49cA8UYtimS3hp%2BIlo78OIHaDK4aQ4VwiM%2FQ4na2GsN%2Bx62EbiJ3AUWRKDenvUTXyYIosgkknTkg%3D%3D","2019-01-14T22:13:33.534Z","1547504011617_promo.png",1547504011617,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1547504011617_promo.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=brKQt6obGQUCXc223ERdWur4ttWE40Z7LpmpqT7oBTOGw%2BSzTBWrRhlhzrWohaYvs66EIicJOZk3G%2B4fhPKgjCpbf%2F8Z2pi6nBIifWNcb1TD7pJ10aURwluyfSuKHql5o0ycI3WCTajoIoJ0XXNrTZPlXCVPI%2FW%2BMWrhi%2FD1ALZOgsBK5%2BZTEw9WbOxqylYZoT0CNp4ai%2FU%2BdJtiPjUF51iqNWI2S60Q5BT81CXvSKQK31siAru4dEi%2FJZ8KWk%2FeAZRFEGIshXUa5WJ4VOEegOnS1%2BMQwKe9H7EMwfVgU3ar3%2BzRk%2BgPu4a33bdLb58Cehcr3sTuPRIz5O%2F7ArZ9sg%3D%3D","2019-01-22T04:51:51.370Z","1548132709239_promo.png",1548132709239,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1548132709239_promo.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=UIZudGr901rQpZlgPoR8MgopS2U2R13R9AT%2Bauj3FNa0r6MShTD0TuklGgKSHJAeZN0nbxi1sDvygVeZI5ZUo6CJI86zGwX96UV7hDWRLu9N8sBf2u91jHVhTw%2Bygh9PULYU7onViEmL3FczW7E5zTkDytxZ9%2FiCqWcGHcg5PCEBPJhJI6GBOSAC%2F7opJGv%2FA46xxKcHpbTpTWp0Ev8lRGCkFAVjRwRhi7yITI7avLC27%2BTRcsjoc%2B9lt0mTBiasiLEgpOWOuLQ1FKGXoQrS38%2B2O1PmY8oZ%2BtTJTzHAFUbVzX%2B%2BeKi1WczKhdEreM7TpWN29EwxRaaa%2F%2FxzxmiGyg%3D%3D","2019-02-01T21:54:32.172Z","1549058071056_promo.png",1549058071056,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1549058071056_promo.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=nvgpooinOsA8srNgRGq8snIEdw4AcsL1tAoZsghfYYyalz%2F0FVRvrS4MiOlc8r2GktNuRrynvcEKv5EvSvuklomKrBaMr7AhGpffG304ofMVgJxFCYB6H9MpXGpDcEfCCgAVAVnlPur283X%2BC5gJqlMuyqVFpIStHOEVxSLStvAny6PEIeWKa%2F0vqQvZOV0TjbqjaTFDmjdGMY5VQ3JYqJAwwkC%2F94R9eYs3xRZ5PY4g4C5cs9zuRvqfA5ZhtPSbKNd%2BOT0AUfBHwRUViL806o%2BgElEgtLt%2BaPxQiCM1O2a0YyWdKtcujv5wGUNWbEAeaD3YwJeLbweA3rBnLoJYgQ%3D%3D","00:07:31","2019-03-11T18:58:27.634Z","1552330705903_auth_image.png",1552330705903,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1552330705903_auth_image.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=w7E71mWY5sNYzwNAqohmlzReawGyVJc1Nmwwqtdgm0GFCbKWsoTTPjobwFLpQKy%2BDnoB4N8IarR30D0LxzdV1qaa9GnlDZQ6eIUupVvtdltDdcHBeHs3sH5NG%2FKJZ9lURuGy%2B0XjIBZhUiFCW7XJwkA55NHRx6EUuseASXo9OPx6iVXE%2F5j4jAgQ1p%2FHndqSk9K9%2FATYlPbrpmmehRwdvSA2dkCztBNWMuiqDTWFu3Kajlxyk8W0WB%2F1KyqBnrr6Lbhik4qfXXo20Z4bCmuvEGe4nd9jzjhY7cj%2F1%2BNo8acpQJXDmEMqgBeEUzhZjaPbH7c9kFxYH5TsnScyL%2BjKbQ%3D%3D","2019-04-01T21:34:43.896Z","1554154481868_1.png",1554154481868,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1554154481868_1.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=uAmfFvt6KtYjIcJ8vfRUahirFEl%2FeRgfSfK2igOaGWnj3ThavCQ9c6aKQ1SkGwXLqzfV1C2TtV413Nw7Zn4n3AUI7pn%2FQiCg1rUe5SpUqC6vM%2BYeRkA1DUxpQZGYk0VLW3FlMQNx1Z%2BaIu%2F9r2TZxLaTSDRHIvuBY09gjvjvAuzdCCMnfnHocRoEpgLSKi%2FZxrOuxiK7zmkF7TQbCrm8TWNgBnnVcvD9AIrXvKBJZHJ76HE8dU9hf2gyWIYxbQtW7G8YYYHzZVc%2BH0xysofZO7tbQLyvZDptK1GsbfTbe3wE%2B4Ny8pjcUUjhZsB8yP4GF26XiOil2wIPvpwH22CbUg%3D%3D","2019-04-08T19:54:35.926Z","1554753271082_promo.png",1554753271082,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1554753271082_promo.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=Fm%2FZ41JCDRtdLvTG1dLBjIGrbyq2W3Vo%2B1b0l91nvVWRG2iNhu3qHA7qkLQJ5miQayO3LTUvI42zUIraO25kZLbv0KB4FtdP10t3mmY4RGdyRYsJjMxme83R%2BFxpPFKV6KQFrmKtMjvyt4Gfch%2BxmIsXK42mPI4ie%2FjwgHaJrs6KlD8e0m4vu1SMBlCedTr%2FEfn5yqQlJP28T6A2nol0GPuHDTVrzYrh5wmn79NSVRNiAVeVVGTxOhUvu%2Fyi7uYckh%2Fkwvos0shd7YYngbL%2BFp%2Bgy%2BmzWZIz4Z%2F%2F%2BPQXH994Lty6XAlOo8pezDCsSIReKBMNjNA3w%2F4u%2BYdLek2M5g%3D%3D","2019-04-22T20:31:35.405Z","1555965093432_promo.png",1555965093432,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1555965093432_promo.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=aDK9fXH2g3nnUkCLetmvH7rmGg%2FrePgVfq%2Bk5yGFrQyDZVsw0qLU28AkCF1XuSkscCH8Z4rZXZx368L485UfYuSDLYfDGIJYDZp9jfBC1SE%2BRvOa4hTO1Zzzs38JSj%2BykbkoA3T7mxcJ0C5ePmnR6JIDtGVpS99I7CmMW%2BACnKmM8%2F5%2F9G6XRrbvsmKcB%2B78IkwSqfNm5Ohsr5cTujVnC4eG%2B6TDBrK3UFH6d0lk887eE9NCAnEHAc%2FoiEPHcmbIP1kEklTz7q7jIOaz1J5lBnZ7Ri7zCbtgZUVQCwGxgwKoDakhOCvyELNewiUIblCFXv7T0cLhBW%2FY7SzJ4Dyq7g%3D%3D","00:08:09","00:05:49","2019-04-15T21:21:29.960Z",1564460108433,1565706872217,1567438930075,1569909906252,1575994092723,"2019-09-23T22:47:43.317Z",1571635823585,"2019-11-12T15:32:17.110Z","1573572719132_GSAP.001.opt.jpg",1573572691162,1573572719132,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1573572719132_GSAP.001.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=jhDmdyuJkYTsfsWXHXpphnHB5Ak32%2FcMnuCLh9Y2nM5hetW18nvMPjJ466rTZyL6vSSK30zGxzghpVSJRvAZr3EgwTLtjOTK16H66FnbVGokuo7mZabo3CqB4nvCiTQ619GElMuab3fClHIozMBAq9NDk4chUx%2FZW5h1y2RvXY2rJca6Bg6rwtihhE4Cj03WUuLaSmDw2mm3EbWqxLfVNWSU3gh82Hwxaf06qCYW6fO60Ec1AMEFHBd50jnCp%2FQpmCdWoE9JVnada3rV7EXbVxZtWq%2BOgGHXu4p7TerY2djGD53FD%2F0K6IJxWE5NIv40CL6ugohDY7yDgTToDb6khw%3D%3D",1571635788762,"2019-12-16T19:23:58.856Z","1576524207594_Social image.001.opt.jpg",1576523142041,1576524207594,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1576524207594_Social%20image.001.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=QSTbStIAcjjmFsgaXrtvhfsrDk0zcb9cDvC4A%2FkX9ZwXruZsMFMIA5lu3rclGzLmHjKG%2BzewWQefbXpTjYNEda9oK0mchc1cxb73E9Ak2Wv9prGolOv7eJ5FI6i%2FA7bzmks5jmfRA1J4%2BgOoxUh2ZcSwksmNbksh26sQKe3NmbRg8wAafX3CWo%2B6TEq7%2FeXlbtYseJMiJYy5fQT%2FPZs%2BEGQijbWBJSHoStk5dXqRLHPdL7qouDmkDQL%2BbOZGH1it8N7SNB7iqiETCSaJcOg3aoljOZJmg0nUbYsPWrZ43p3laWD14GBOfldBiOXyqKi5D9ICeSMV%2BFP5%2BKxkgoUJ6Q%3D%3D",1578952984222,1570465439128,"2019-10-07T17:44:36.432Z",1570469920921,"2019-10-14T17:04:23.788Z",1571072642583,"2019-10-14T21:14:10.698Z",1571081287454,1571763439293,1571766417068,1573922433932,1573923180355,1575326893286,1591049718236,1591052011553,"2020-01-20T22:25:58.382Z","1579559145609_What to test.001.opt.jpg",1579559145609,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1579559145609_What%20to%20test.001.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=msEohXLhi1psOESLVpuRXA8NOd%2FGc%2BlNG8MqyDVM2YhLbYxSlIabtwMQQMKSkvbo2FbwPhz75qrVL%2FH0iqP2nB09cND3VJj97n39M%2FUtDrBZYTXm%2Bm7wQHocS3X2qAIfs%2Fk69OpWbfuBGzpENaTb8MsN8VL8a8oEkv3pj0Ktm%2FUoTayzWkX5I618sjKi301NiCAcpFc0kKgpXW8yELwyEz551MGgxQtSCl7ydB2cErYH2pBHRXV5yKwYaxMjvGa6bqL4FBm%2FNq1fbEesm2Z23yYfl9m1eDaRTVCvY%2F0OKC6dV8BFdctVr6iLblEA9UQs2b3DTIFdyt3Ebzl7m7KEzw%3D%3D","00:04:58","2020-01-28T00:49:44.327Z","1580172568655_yourFirstTest_opt.jpg",1580172533688,1580172568655,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1580172568655_yourFirstTest_opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=melVZU9TQKkuVSzF7xpqK82qYqaf77Negcax2O%2Bz3gGom4nqqyC7FgW%2BT9KuojMYZTL2DOOpdMET0oxBOi6EpasOTj2bfTfzl956DpbZbRR8Y0%2BfdngPOZo7uqBWYU%2F7aoHGwmBLkovlpZF12i35BAyaCXnkCJFofmeAaOsqQ1X5FMp6cnwxukZfmhMxujItTay6SFMYoSsishJaZEoLBoglg%2BLhZhiO%2BqKwPhHqrfsf1PFBm78gbA73t8SyqvjAsr%2BBa2wtZf%2B1e%2FxvV4fwm9j6uIrNfV7sKq7VdXVbb00jN1yAbGvt7Uxrn%2BhPPPFLx2SeO0gPemZpShL3u0jxGw%3D%3D",1581975274102,"2020-03-16T23:27:42.346Z","Emitted Events.001.opt.jpg",1584401233951,1584401248479,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FEmitted%20Events.001.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=bo%2BSMPhEL%2BtlcijUoSdVRnGhu09bHr3S%2B4905Buh4Ha5yx5SAEvd3Wx1DMLPDYWmFZy9cnfyBYRSp6gJPfVgKgzi%2FwRqRG6%2FxXJTBl2Oce7NJteSHP3dbGthRk%2Fqr%2F5Yn8TIf227F4nhMv8DSunWNQ5ssp465M1tSPkOOEuOQ1ousRYfMTHfVfmNki%2F9U1SbxnumKOkE6g4atxZv65I01TFvIMYYr8%2BKyu0vdCtSiSuRuGs6cCn00AyS3RqeVS8H2OHaYbaWa2J1spzcvjst0zyFXJYYn7ggzmUlG5aZXyIAdNOfzC1eLR5hJkqhwXVs51gmqOefSNg74OIeu6IhFw%3D%3D","2020-04-07T01:12:03.643Z","test-api-calls.jpg",1586221872264,1586221903921,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Ftest-api-calls.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=B9A5q1MU5TOlSYRiw4lqAszBpTB0x2cHL%2FInSDiW8pG9h7RdV5JnsIz9IxCu5PppQWqufyjmdQ36Coi51R1klOJDhsLU567cEEDVNFsrufxCvdv2%2FFf%2Fvn9VYdlDrndNxWoRsaMojwR0wrSWRmy3pbna2G7RRRfkD8Ekd6t0z2XpW8nFot4xpm9DSm%2Ff50kriVlSL%2B2aCbIHJAHU2qGYxaCg2De5dPZk1K66k3Oihkhi9P77F1VapQrV2WBMo7Li38q94AVRyg1R7e4FMEi%2BmEQEtAP4zq0EapZIhJolEcaBwjb8VVQdYoRpQ7wiF%2Ful90UdvAqeKkDNBZ4%2FcHLL4Q%3D%3D","2020-05-05T14:21:55.313Z","stubs_opt.jpg",1588688478141,1588688502581,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fstubs_opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=BpsxEKSV%2Fyzk4BkU0ivWVtWmmH6TDaDIbIQYVBEwy8mGh9nFbyWNIChm2%2FOXbe4J2GQ4okZkpCujXodtZC9kuM8hnsksrZ3fkgm5Bz6fQ3LvYTB3I%2ByHbIR%2BPxZIIk5bga3xUQty1E1LFJGiuDAmc840q0asrPrMt6ctWXokPXMswPrGHz%2FbZoiTYVIhfw8p%2BHqzhj1AKzDEV09JeiY8Yz%2B%2BeP60lyNTVqUEh7yifPoumq7RDOAiKoLv15BChXq8N7ZJHws0gmRdQy5w57paS9vm3qlSaqbqtfpLSVwoRTNTlEvsTjHstuLDz243MDVjNKhMl5n%2F3c8Dmqeo9QaPlA%3D%3D",1580762988454,1580938426323,1582581577599,1585176688916,1586798443546,1587495608867,1583270312007,"00:01:30",1583271239708,1584994070313,"00:03:48",1587491900994,"2020-06-23T14:34:29.570Z","cpd-05.opt.jpg",1592922822085,1592922855868,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fcpd-05.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=FI8NB%2Fkk3F2%2B1NqeZE89vFQIsW9k9KWeU3jrNlCIod05xImTzqNlYrUR19BnikXnuFdovqFUWREjButksuZtBVf2v42pW6P94feKGFi0iinoyVfSJ2I%2BPcYduaOzj1Le9ZhgP5caQNdm4y0mB99PJ8RUUV1wHuZfEUOQ8UBtOej7nUXoQvaU4MqkAGTw8us1JsgKS8x0Yy4wR%2BgXamVBa5DfTSRdKg7d5lH1LkYy1dWwMtCigmwpgvn6gLBkQGrC%2FX1hLQihPLKsg0jtjs9Io4DGI8aZZOCssYk0mRgFqnhjCUQBq9RKcQtHIsf6k4pqS1ZpyvOQhogJckeuxN80Hw%3D%3D","00:03:13","2020-06-23T14:35:03.727Z","cpd06.opt.jpg",1592922830569,1592922890179,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fcpd06.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=UWNlNQ5ipV7hB0JAKt9NdmZNiGWHAD7alh5wtm0%2BV4HcR1LD8406PcbIzbPrZiVa9WqRismO3r7gMC8Wk3XDhfHMBvfNVZfXPUszWWQNn1HkhVcdtu11O5i2wSiYFAIiRSl6zBldBy1FFK8wqEs%2FGbWZXeecWILZ%2BMapZRgLzb4PlnkvEIOx7DrWzzU5IKyxWokZIuLTKUno1xGZ4C3pMILoVZyOFy2VCc50Y0lhdY89MaY5mpkNLSD3eRBunPH86DVTsadPcUWZ4ek%2Bl%2BGprzUOaQw7OO2sK1O6PJOyp%2BCeyGgBeoPpzPHQZucsf04o6LMQxWcB4CqolYElylDFDg%3D%3D","2020-07-14T15:57:06.320Z","featured.opt.1594742211902.jpg",1594742190194,1594742211902,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Ffeatured.opt.1594742211902.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=n4Awno5wWqXFnv18chuwSUk0v3iPaKiFkz1z%2BbUpPjhL3nJctGKj3k060X7ju1%2Frm0G4M0wEA4By9Ca6wV8dA%2BiT%2BjD27kJvKhmuK6iFtWlj54hxXJUzDvjPvmM86hDtHqMmtgQb1YbAynNh%2FPTnpbFzXlxrA%2FDdBncw1C%2BXqFZoaTzt3p5zlmWe%2F5GOLTKYio7fBcTNY37ErOBhkJuA8kM9R6RSS%2BlOZmQRSTpMjEcrxXNysS6cl2BOTMPKGDYkxko2ul3MIbMwM3DkBdpD79SDFBU834GvXU6kgTPErcIO80WUZq4Bx6jIi2wbSyveDHiaLmjv3cKG22sJ62qX5A%3D%3D","2020-07-28T15:42:49.082Z","cpd-08-featured.opt.jpg",1595950942146,1595950957360,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fcpd-08-featured.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=Y2vFuzKDW2Oz23aADxw88zekRPeY7jLFL4jOjPUxBJwoctGU8CtIGBcEIW6PyHwhv3MVFXbyhh%2BJvJSo5BDjgIa7r7Q1gxmC7rYIzGL%2BB4BWyITSJN6hnVzoyyDmeI6BIgOz5gTm9cQT6wabZUOVB0q1vHBTQcQcOZwJYpR8wcYtccwFa8ALDWQeu8wTPihdgj0tw0%2BB5aUZWC08Wuo2sPBYsD6WBPBlCjSU571m93i0%2F%2F1qfDiWFeMKFzQcHDj9RYi9ukkICMYT1v0CJO%2Far1UIs992Px4%2F81%2BxpEA0WWyfDSIDLzOITjjc7h55dgaxo7kRGpZQmo2UDrjdhae3Fw%3D%3D","2020-08-17T17:54:30.312Z","9.opt.jpg",1597686844777,1597686860406,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F9.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=T%2FrpI4pJpNJQdmqA9B0oTdH124fhAWS2%2F6jCTZ6IkzPY7slve2f6%2FbDPBWQyEDlr3YgegkFB8sXvgo1QORlwMZV3ri7S9lnk%2BIKr4ynwNs29m%2Bwjq7iUoPUIpBzotgfdRk9LkOUmG7a%2Fr4pCqGM5CIKS8d7pDtIlYPEqMaKdeCiEbN2pGMfCo8WxzRUYbdeHQflbk58p9bIHu7%2BJc4S4Ikl60sQJQdePAv5QMy2U4wMPH3zzn1PKSLPxvty25f79Fdmhp%2Ft0pbpGsMddF4zGkQkP%2F%2B5ylnxPQB2hGZS2O26OtMkASkQITHaSC9qg%2FRo1E7XSRlG6y6XxLKNnkzMxew%3D%3D","2020-06-09T00:00:00-07:00","2020-06-09T01:49:53.350Z","TouroftheApp.jpg",1591667326304,1591667378765,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FTouroftheApp.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=DZTYAN3SA4wm5%2FKUwIq1hwN9Pm8gCxb%2B8phAlAhnJ%2B6Qk%2Bo7X6hNR8qxNdcL%2FK0m0cERf9GM%2BXpNDHlgnzuJ2A26UuRNsM0szxlhmMHx%2F3%2BANWPsS2XMa9KjAaojPYxhVtbxQfXS6UP3Qus5C5oRPToOkktRltXBVVJOk%2BmczZmJ1u2tnz7TuqRSWtW4LGHNZvLRrpjRW1yqIou5N3bXkilxPlTGXnExgMs%2Flblbh0VUHjuURuKM%2FiiQ3t9vMPllqppj4WTVFsNcI2DUctDECnabI2QbF9FGsGsKOaj8Oz0TQF5w%2FmEkYTXmrDzj6y%2BjwtdcLIXWEWHulV%2BIyrNV8Q%3D%3D","2020-06-09T03:03:28.318Z","BuildingtheInbox.jpg",1591671765754,1591671798839,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FBuildingtheInbox.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=gknZgFsyaONeH5djKH3jE%2BmAzGB7EJzqzHyMS98aZh%2Fp8430J%2BzlMi0kZlzKCCNldjIzISa7C9C1xxZpTCJripgj35RgfJ17SvWBUw21jodw3yEucSWTJVZWV8PASid0Di9huukFhmnPQbHrcV6iAIf%2BpvuRXdpa86aTrnV50Xa9qWA2p53AgiVZfBRzTaG9AHdYPUnAXTtP8Jq78S3x1qFJPZxVb%2B2JVZdggviH8vRJD%2BY8wj4x%2BURXYHi8J3R9KEx%2FV0ndZsZN8Z8qPtnOqGDJ%2FuKUisQRi65IoIyVyJvKw40NLlYRMQ62pMtEDGFnJ7mPvcxiO5aooZGlLjWg7w%3D%3D","2020-06-09T03:09:54.692Z","Async Setup & Suspense.jpg",1591672149202,1591672183842,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FAsync%20Setup%20%26%20Suspense.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=Bfgks4mvmj6J4CMLOEw%2BpTcMsbDFMNsCa7nSs1wAGKjMMa7Bo5Qel7h4RAa5zvfhWe46twMrtS4pZB9ugHbQi%2BbILPra6ieHNL2eVBr5EpYOFegRaeR5%2FWt0JffsQQmIdK1PU4zs5djcgFqVrKMj%2F93VWL8gEfXFqUMalUdKoiDBY58NeOsU%2FnGQJa%2BivM%2FbPLnoAUiO8VIQzR%2FUo2LqcAcei2ULZAyZNY4iUm3nDNMNH3KTFeVKRlqk9bwSTLC56h1SYYi7YHWximuly0g%2B%2FdhL66fJUq9jeqntILmBF0qWl6V5UPKTGJlHFQB7wjsmY8%2F6paStbrnwPP4pFDTtXg%3D%3D","2020-06-30T00:00:00-07:00","2020-06-27T00:58:49.328Z","lesson-4-thumbnail.001.jpeg",1593219450296,1593219508880,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Flesson-4-thumbnail.001.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=FmrQEJrBOC7IWgEMvUoSMc5DHbXQiXtIofXVcJeBlqrPRj8Dx8NTeKvuhkObd6838lEeU7GSp1Xo6Z7E5pWjztckzGkxrtNu7jYtx69DFTjv1Rr%2FjeYDgI%2BMB5XtvdKxNc06CMBMJFAASADEnREsOGiL8S5f%2B1IPlLt21eIbUJW8AD9suXOuYgW2PePNE%2BEDeTSTMw2%2F%2BTRlwf5rLdm8pHupgshLbH6hDeYt%2BpjR2clv2CNgbh8Lp0u9NRwc%2BP1xW3CzWvY%2Bb3etDGxr4JYQsaZSnVQxQQ119Mdegf9GQFlcLeHdI0uwUz%2FJx4euW9p39WnuZZ008mLMTcK3wIG81g%3D%3D","2020-06-27T00:59:41.193Z","lesson-5-thumbnail.001.jpeg",1593219463014,1593219545483,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Flesson-5-thumbnail.001.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=m5YIQUHTFezCK0JmS2DKtAm8x5DMC5BmtJc8w9c7uaW7rVwGGeC0aT2Pjee2jgS84egnE1dSK3DR6T1ZmiNbCdkERHdx63Cy1LJ3jvijOmev0gzU3ndzQom%2FWL%2Bk06khG66spvgHotvFiOpAlvppQ49ZRd8obd%2BBJVZsM8ax1Jjp8e%2F8mOHiYK%2F8nQQqAg%2FqsdNHdJfi07AJGbqWTuBUi94OnLs8MnTwfh985JnSwAszVCZXZ2Eu5McKW45upMFbV2OoHm41Bbf4qZYjMWTUA1vFXzx1SUts2NaNzK6hepoAAxZgyZbknwOJcrMrhq4MSeBKTUvGbCXuXpV3DGjiGQ%3D%3D","2020-06-27T01:00:27.751Z","lesson-6-thumbnail.001.jpeg",1593219475211,1593219605077,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Flesson-6-thumbnail.001.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=ofNyZmGI9i4tTBkAdaDTsjY3PQsaGUM%2Bpl5YBSnfNZ3BMCXOf0R9CCy8ZVk43GPv%2BFayUMWgSEd7R8NVrIIaF1kkVxxKjcWFL6tufhGdehMXg6lnZ94URlaGgVL5Zk%2BaVhyfRzA2Q4MU6u%2FNcPNgUUp4fVYre0mrwGQhQqhQKPTNcxjfoS%2FWHHajFdg3%2BdwqTMuet8flFm8OL6Xswcs9D3uchnXkUmDNCaYE8pY8dZpvtSV7X%2Fu%2BKqHlnJhRjetaQ2G3FGnBg1QWHixr7h83QHy0I%2Fc8Lbd%2BFt9nSSki6xTbAJ5LvkxTWyZzoT4rl5PssDRUUgYtcsxLwA3kvcQy9Q%3D%3D","2020-07-07T04:25:57.169Z","lesson-7-thumbnail.001.jpeg",1594095907270,1594095944666,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Flesson-7-thumbnail.001.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=PtVC88LEEgwHlrFTBut9DhHdxiiIzj8O3cxIQRv1BO9lGa%2BgnVnXtsPh46asn5qow%2BBBQk4yZ71sr%2FyOocFaWk1utDypXm3gw0REdfEedhk%2BDHx8kwm%2BPHa%2FMktXBiLJ3HQ1hsw7e32ns1eI6YADZChdSyTMNn1TyTqnADPThdD0JX%2FoWuL9mjyt6%2BnG5cYp3wujctV1916iN98NMq7xZ8W%2BcaJjLQ%2B%2F%2F3bqsXYdbjRhDZIwrTxhoY1qDRcYdEU7NhAaUDZXP5OIqQBhursLBfJnDvPuRmIx%2FovoQ1%2FsuCcgoWEx%2Bi8crvqC0%2FP%2F1vWNiMkmWHJZTPdJsb529PK6fw%3D%3D","2020-07-07T04:29:55.556Z","lesson-8-thumbnail.001.jpeg",1594095917883,1594096181098,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Flesson-8-thumbnail.001.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=SP1bM%2FrKtiA6Q2lDAAsTrHrAtUdy0JWbQsa%2F8MwOUQ%2F8BJ0r4B0ng98KtKc3pSCLMjQZYwpRXdjZWzPT%2B3QD4sytONZVPFmvMirGmOTJ4jgQmBChj4qG2MC6tK8Yog3yIxmf9IWI5uuEmDBhSHITD4kbFVPaCgLbta8%2F2Nbqx%2FsAnUQZ095qaZgCx6k37GHRiSTigTASbCMmDL0hCJDR9zDPr2jkSWkSLxsYQ%2Fvffzpu2O6cbpdhQrDy3xdg0NGrnucC2Doyp%2B21nigRUW%2BQZwxdfPbS083xdiV7W%2F97%2FprvmcRi1ynWJVAH0OUgBBWc9CFkpFkuPdWOGjvesfUZWA%3D%3D","2020-07-20T17:22:10.197Z","lesson-9-thumbnail.001.jpeg",1595265680278,1595265718195,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Flesson-9-thumbnail.001.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=Z1x0IJXK0Va62eBN%2FswXklbmfYZYsmMHreJ8laVLE8zUt%2BDND3gXpjNv0nvJminnIZz2et9ZBbbEIWVdDx8y65SPV10PgfCLhqSB8Li2q8cNNDkCvvXUOGNERaZnFlkp79FLD48%2F%2Bd8XdnJrs8xA%2B62K1xmpZtsrGTRFPtoroqsoKRTJo4CRgH654Z3gMEQtnv0jaIhgu7Z3%2BMGhuhOaTMGruVkCixIeyXvo17MnKP7I638vhKkHUAV7Y9Pejzy0CMYD346xv9P8r380CvBinxsEG5Br2JrNwSR2f1zy4MRLyQBcmRR2QTz%2BnjqUD0AzaHnR8tKFe0xtAfxwpZl9bQ%3D%3D","2020-07-20T17:22:32.631Z","lesson-10-thumbnail.001.jpeg",1595265696626,1595265740085,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Flesson-10-thumbnail.001.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=AJXzjENqzm71Lzco5KuHfAlzu5HUGGOB%2F5A8vzXdlFKa7kkb1aMpNRw%2Fx882qYlLWYe3%2B7bJQdk7FbHlXIJMxT%2F%2BnwvsPukgig7nOHO%2Fd2sGT%2BSf1LLFMIZI2RVGgNxLyOa4PBGOjeYjYD4Y6P4AuYJLhUlyhsfBIQPR%2FqbIGgsZp4dEpexJrSha9oZNvAVpHQlJ3pL2NJIY0ZCG53YQqrWMIKZA4jaWOm1u1BbgQK6btoBKB6ePe%2BID8zapzVh2W0xAV17wrBNU%2BOCp%2BzWZNbk%2F3NIhHfPD0pby4u57aQmkWDdlAfYGPggzVkuEAxtd6RyZET4JS19vpz%2Fpxup%2Bvg%3D%3D","2020-08-04T00:00:00-07:00","2020-07-30T15:30:48.437Z","11.opt.jpg",1596123013092,1596123038349,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F11.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=cdPltqVdbvKKC3ZjpHAeTrXH96ixnwrKnH7AkCe6iG1lIBKuQ8uC%2Be5Z3wKcX0aMmTAzDq8CsGQ6jPEvpjaSxDMvpIXxgQV6ooTk45pY6jMiBojIVfljav3dDrfEahcZRMKr8OubBjitQPibQzmzRCSrDmNPRRYeDWlZ676uWT0z6fIMGF0JooFoNMWoT2Ln4ozNfh%2FBH%2FUdks3f%2FrZc%2FWZ1%2BJ%2FI7By5IMntPRxXr5x6pkBFxq%2BZSX%2FqthMV2R1Kb7vOsIEVrWOumO%2FC6JABJR2Vso2F9tdBwwNs7LiKgZ2COF263k6ngcweCIMBRELUM7H15awM4KY8TgU1wPSA7A%3D%3D","2020-07-30T15:31:05.419Z","12.opt.jpg",1596123021988,1596123054576,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F12.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=GWa1qBLPq0yYefDWykug0hW%2BNCL%2FEQHj0vh2WUuId%2FhgB%2FZUV8KKMJRyP5IdAiXfI9GeWNNsnXPNJY5m8OgASchSXzXF4jlTZlAFbcts9ZhjYvRxJW%2BMBzVqEkrg0Kf2brN0C2JIOCqBNWx8O35uSCC0DT4cIbcfilmpi%2BT41gopNx2Wtn5W3fPvoYapjEfjKRJOHS668%2BNn39AmLsbeOnHkYRDkIMca%2F1Dl9uasp22PaXvmnt3a%2B2sJZc5bNue%2BRajqp26GhdtFr1OzUOoE1BLpe7dK5oey7UzoZNqrxmi3U2jmOIG0lU%2FBgoHl56fFGN%2BYibJ%2Bsq8y2eM1hkmZMQ%3D%3D","00:05:43","2020-08-24T22:29:16.644Z","lesson-13-thumbnail.001.jpeg",1598308121360,1598308146729,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Flesson-13-thumbnail.001.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=Vnq97N4pUkUW86Gczrx0g3BBXqQlbZXPV%2B94cOvDoEpXGM4KeO3NaYP3YV7jf5uQXZyPwDp1jQHCxGoTwOVGSW0QrojhuGK8R4QWY0XnQF3Qa5Az2YnEmftJZ325uIWN0zAbBfYbjxw3wKw4wmCSWmj9HZXCCBEZ6866mK8HJqXXVgiGw4qcceNx6cPkwRmP2B8OgNoXRR62u%2B%2BdHscXW%2FQRz5W3dVLKjWDUVsjwWvc3BF4zqBhNGJO%2FN5hi14gVnAZ%2ByOnV9fb9OAqWGdbseCVOhZU6h38cyVx4mImZ%2B6MPqJRzY4yzedFCkkkat1Q8fzlIpc0ncMcIfmxLHIJZ1Q%3D%3D","2020-08-31T20:07:50.056Z","lesson-14-thumbnail.001.jpeg",1598904439280,1598904459980,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Flesson-14-thumbnail.001.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=p2Mofppx%2F1VLyZvXkIMWPVUisE9fgL2JSx2%2F8zT2cvhMhQBxcap9x4kqCZAfrf%2Fn%2FecKwGF78KLuCRM39xWdF7QGKpE6snibRA51e0QLtm3742kCWCWv%2BJKH7OLAaSrWIIUaw63Q9hpxQNThFR2oH8v99Cw6zRP37qF3kAPh%2BXRP3ahlMmmutnpkKlm%2FBEIV7Z2QcPawkJWORkylBCfZn3szCbAtSu6siS1f9VBCl2riaAbEc%2BIDYx9PWcSvb7X7NsTT7sOkpIThap7BuCGFaP0clWXp%2BcUiBLd4CpHHI%2F6qS9ImEqTkOjT27UQU08pCC4to%2BcUyT3XrhTJfmXW1tA%3D%3D","2020-09-07T15:50:06.160Z","lesson-15-thumbnail.001.jpeg",1599493749873,1599493794296,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Flesson-15-thumbnail.001.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=a6%2Ft7TfUraYGsp4XPeHD9U6Q7ghALzeYtH0jo5tvvAizOTMolIBJvsEXJa3u3s04Bd2eAPu3rgqUOty2CFeMB3%2FMn8iocxIluWUQ68oSE1cve0LBXVyewgfbmmNTvWBLoajgaRKDVAVb3JNBKK8r%2FE%2F%2FrbmRkJdbjyash%2FoT%2Bl9267tiTKI5EXDBG17LalZ64hodNVSYrJUVubhaSjJOC0e0vO9v8zBja%2FNngoYswXNe48tAH2nYhVSFf3SOrmNeH%2FJB8v009H9l7nfxroYnYKY3HbR4JVCgW7sBQcnfuL2eqYLKKYiB7hpnuBGv6Mt%2FNf3CkrvSiw3V2yra4PZrhw%3D%3D","2020-09-07T15:50:37.162Z","lesson-16-thumbnail.001.jpeg",1599493759809,1599493817461,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Flesson-16-thumbnail.001.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=QYLrS8o8fH96VC%2FT1xn1XR%2FxzEpqm8bWyYy%2Bkx2Mhve0wybEuFSFvtt6kdGSipM0Y%2FhaWkuO8fxiH04UUxJU0g%2FRcG4WXkO8QZXwOYjO7vcb5KT4T17CsUUN5GXDyxjqD%2BgnXUpYHamBA77pjbNTUxTINbXyK3FxKT9FP0dwI%2F53aEFvyhlwpgwhug7xPRU3OJjbOC6fBSGt1bbLdR3RlEWYGv%2FNzSvkTgsfRXjiC9g6Zi189Xwcfsph2Lg49U%2BP8WHqSE%2Fsn7Suv2IcfKzmMxWICp3RjenNTOtCuX%2BhaZe5wOXct%2Fzfsa7OYfTAtC%2FZFB1%2FlNfFb%2FZokKYjwZOxwA%3D%3D","2020-09-21T14:48:52.023Z","thumb.001.opt.jpg",1600699685139,1600699705594,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fthumb.001.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=eWhBBryaPPP4kry8D2MwCLyIpK4WLZIyh52yOlyb8um43fjBkl%2FRl7IhLw3K0X8N28ETD3a3YsB3XZyposDobdgZ7qIjYtVEA4tinP4Spxhm2HpStD01f8eZXscFHEGgjcNBUE3CdhUBHgsiyRwQa1h68VqTHrsRvpjPV1z8zfTdu09yP77AONEnEMzzC5oJDvfd1yu6BpDemy8PlrMPjN02NG7qdFSrgkq0Un%2BIFD88R1cFU262BbslszsiwdPhgySn5sKPubv8YybD5KolKS0gU9e0MWstIdX1XcJdd7maby4BeIHkMMEA0JywrT%2FGtx3gfmjc42Gc0ce8ipj0KQ%3D%3D","2020-09-21T15:00:24.031Z","thumbL2.opt.jpg",1600700299018,1600700408923,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FthumbL2.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=dnZrC5BtiMsbBI8ThIgz9Ze6SNRPp6vZcIENupCR%2B71HUvbAEscR1K84u3dbVuyaMJdR5HwFqtRr9U3me4zvJf7A%2BTuNWhAUxsNFfRdOdKmOU3gqAngk0GvdtejKOUH%2FuXhM5XDFojo%2BfSg0srZ4kLxCUXUKVCiJeRNY4hKtrgNkToeJFD3nXPNXoex2KgUUQCGqnBRc7sNO3N7kZux61lbDL%2FE9elhL73WDWmpsGL7b9x%2FQIRTYS3lzNgRXCpp%2BeSp3GtBuHKswunklJVHIy%2FaMkVKpgJsVR5LGflhKxd3CICWTC61e72poKroK3LIuOvaV7bz2CMlPBOR97Rc3vA%3D%3D","2020-09-30T15:24:48.160Z","thumb.001.opt.1601479476911.jpg",1601479459954,1601479476911,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fthumb.001.opt.1601479476911.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=N5bPLJzQkjzBbFAzs6GHlJzz4NTa%2BoTRjtIWYFbO4p6f%2FRr3l5Ti3g2KZ0yT2XA4YO%2F3KLLiJsbWegwk1pAsumDreInOxSVLe%2BDU1jICXNN8NRkS%2BWFlDhzCHRsGCAB1QvDS02ryG1rI8Y2uUcx7Jqzj9Hj9U6wcInWaFLkTSJrQhWnkYubghx6DgIki5bndcBRogOeRG%2BQ2DO%2BDw6FAytRGZWa020nIySLyrZjkoWzSqvTsHfXlKfb99V%2F%2FQkWhJH0y0RfZ0iN3%2BUlJTFzktnq2WuuIzI0EX60DlVm4GLJKd5YxpAZXFxwmDy99WhBxQDDVxzrK%2BNrEe3sAcXf3rA%3D%3D","2020-10-15T18:18:06.623Z","thumb.001.opt.1602785875699.jpg",1602785858681,1602785875699,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fthumb.001.opt.1602785875699.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=hRPdD%2FTlmiuvI%2BXtPla6eokY0NYlKDwqYncJSfv7%2FlQ5ZYGAWUTFffpeX44ZPjtjhT5tSQhhfBq94ithpnmNLElePljpkOfwKhW4RLrwSFrS6f9j6PlG7cEcyx%2BV5Vn0VIK0LuGVzE6Z%2F7vD2TAMW570rrtUt%2Fh21lmoWddNYK7hy8nhfEt%2FeWYe1aHctH%2FPGy0ecCpmcF%2FAJVUDO%2F2KnZsVQHCTqgwmWvHfuaWA6FvkI9mRv16WuNWphIr3ptepabJKuGeQxl2b1zipzF2E1z%2Fiek3RLm%2FAeZjDfe7cXb8majdChn8CBdeiwkK83em891pqGPWLxqFhD4Ul10K5Og%3D%3D","2020-11-13T18:19:48.631Z","thumb.001.jpeg",1605291563259,1605291578282,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fthumb.001.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=BZmk1OP%2Bw8xjcStOLPFcWj05n%2B6DdyxTbkPZuJXiiufTSvYu%2BxPFfdGUjngiQEPesLKoTnleSek3DsSh8f9LC7aqTu6aihOQmDHh%2FO3hBxU9bF9VzHQmjdKfezDS41d4Sp8qp5nDnkpWXDUARS0mvBbSRsezpQLiQRPYO1GQSXJdJk9UKqzBU0arx0nYBFtkae%2Ftu5VI5kgNB6BMPjQuiyRpQdik3fEe5okPMfUnP3u4tFpVltFC5epn4uVRJbjRmkrDeamAlrQEtpHy%2BOHTag7H%2FfrWEYK27qckmwdOhqFN%2B%2BkH2%2FYP81%2BYuhymb9J3XJI7pyIAPyWAR2mUP%2BwHJw%3D%3D","2020-11-18T18:34:14.393Z","thumb.001.opt.1605724443268.jpg",1605724337137,1605724443268,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fthumb.001.opt.1605724443268.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=TmUm5SkWvViCVS7tKtECZ1Vr9YR1hzdrTGGmsKwMNGQqun9WKABw%2F7gi0nwbXbwOHUQ3Mpn8a3SWIrTsQ0OyeaB%2FYoAqOsJmgxUs%2FWYpRvnw3ndVR8b9m%2BODy0M6rzzalfvJaT7aY95uZOHmxh8dahv%2BQBlf1xFSkbqtfZtIf8dIKZTr32VLCahPwxJo3M5RAnfWU7sksF1Y8sEXWcwr7FNI5MhczAoS3zFKLWVFlL3Sj%2BbdmDLKqcvh8iAK4UHF3XOdJzFTOYDZBdUajjycrJXMkjKtI1zsuXybENpI1MZKixKSRWK3FL27OEM0UMv%2BGtXoys%2B%2BwuCLsEAp39QLzQ%3D%3D","2021-01-04T19:00:24.166Z","thumbnail.001.jpg",1609784169107,1609786816725,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fthumbnail.001.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=mL1fACTuI5D1oam55jE4R761%2F1HE1%2BzV4tIbj3RFhuaqS3CH4n7XIi0ZLEYiF6GbLBZEUNNhCkdJF9Unrgu9f8j3%2BNA%2BAE%2B%2BzXIVvejxYeCFa6OQVQ6rkqJRxcLDQNyJFw%2BLwQ2wKPRwAlOCkxwMHlVM4hrLP6b%2FHrtT9ZYyTFSWPeMbJ2iFAO5hfxnxLkNTU2wrpYpLEYFS8dNNR7xbTufQMzlX5NK6DOuWDupTkNxIIgqQZz2P4db2t5xQWijU0cDGdbXdyz8WBczGyapaC8kSUrYztmp24Pn3U%2BK2ZioJcFP1gB3roQAHxajagjPX0JqfVkrgG8XBvMY5r1vcCA%3D%3D","2021-01-27T17:00:08.961Z","thumbnail.001.opt.jpg",1611766789785,1611766801812,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fthumbnail.001.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=agNCjR2Sg64D3txKSu2yFFe9gFlJVJRyTsCXoUPcvg3CGDWGth5tD1EnwKQdhSAR869ytkZ2zD8%2BsfS3uA8TyWuY3Vypz0JBacAksz6vFfHaELpv7eKPgzL4Ues8N91N4%2F%2F9kKvQX0IVd6%2Fh11rJ0d2R3ukJgDPpIuOLSxT79oEDWfyxJHCt29EnU3LWBeIzmKwjzjuzSrzfORlaNYEPgeFYDYo1Do0BIVCgveCDLYPazoo3%2F2RXTpGes9J1X9aVF4D2tqgux7vUKePha04xglYP96FvZ9cL2eiacC0pGDV7sWaQu5QPMkRgB4%2FGGLOX4jWu%2B7Lg%2FV9eNBQOm6jB6Q%3D%3D","2021-03-01T19:35:02.089Z","thumbnail.001.1614627293290.jpg",1614626761323,1614627293290,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fthumbnail.001.1614627293290.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=m8zqKPk8PG8BxoIryfu0dCJ28OO%2FK0bOpkcHxtlvm%2FGep3SLiKqXDkT%2BzrG06dCYxAuyOUHWBxlVf3HKAgwlSVTcF%2BbdmxddccPC4m8ZR%2B9VQyloQunVfJZCHg4vU2eAo7C0AV%2F21ascQ9hk43C9x7dSP6AsQ1HfThTo9qNuS5F0h4Zb5fMLAyOhGkr%2Fi8M1vf7ywm0jaNXdhUyEp7cDKxmWuy%2BNBeAPUG%2F7gyTYDdWYq26aR%2BlQxfeOiOcBmHjs3UQop%2BTRuBsEX1%2B0SgQXWcnwwUMOmoYNBwHwInHLQ%2FsKgasUMRsxqmCPj4GnuvUMNR0VtMQidXGyWfg%2Biuropw%3D%3D",1588636761196,1588643814737,1588690782732,1588691321311,1588691948963,1588692588968,1588693722822,1588694173789,1588694646104,1588695180437,"2020-05-26T00:00:00+07:00",1588695500057,1588695765802,1588696014032,1588696264419,1588696590333,"Options API","#0082ff",1596475490368,"2020-08-03T19:07:14.370Z","Untitled 2.002.jpeg",1596479241540,1596481622889,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FUntitled%202.002.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=HavdC4D8cX1S9HNAQkGQFvYu1ayTfIiTPwrA3FvdWsagWY5S04YynXi%2FlBBqAZYQ261LKtd0Zmhb3JcRSloEBrXAtDkuEVzzfVl6md7yxLTS5QLEoYwZEZBdteFh1cad%2BpZF04odTXcOL7XFu%2Bzt54znqf8TYjEAor654f1FDmQf1OHhoOXdrkwFUMWSl0Znj3XhW6wmMcGTyOdyMEGYi4cnX5kNrzuvxERGYdOuprpVOQ5ZWSGwszCA0Yk7DrWPQ6GRHnKrXiEJ6eJL4iRO0d0EEprZs585Y3hvvR07lzWGDW9%2FfiXTdLHankIFOCbU%2Bx11Z21kJEeUP7bonBNtKg%3D%3D","2020-08-03T19:08:44.304Z","Untitled 2.003.jpeg",1596481092724,1596481713308,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FUntitled%202.003.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=FuDCg4mfoeYLxFn8WPLw6HBzgDVCL73wILkh1G9C98oGJwL3oMbbhHvukd3Nf3kvVuAmzgOvB5HcpCPicRg%2F3g3VQmzk7P3u2ChNd9TLCK0kaAH6Je1lUpw5h9uibEpowrFe6PID%2BHLsJ0%2FX0KJPaosw4zBczYoztdFPp%2F8Nc%2FSTRDVlACQlN4HwSzH96Itu9aokIdR676uhGgcLZT0e%2FBdgSZjsT4B32rUOqBNjQQ3SXNgSJ8f2za0DvJI%2FEBLFNi5Njyno7gcztEYYKwwWELkfnzCv7qycXIJ%2FSxkiV3vrucgZY00zSj1gcd7xdUY7j8uCJFA9BAyDskLM%2BAWLPA%3D%3D","2020-08-03T22:58:54.923Z","conditional_rendering.001.jpeg",1596495488802,1596495514584,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fconditional_rendering.001.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=dXXU6i%2BLc7a1xXgZZKLeeNt8BN2RReM8p2YFs4Ax9SBz6vW4%2Bz%2B95DuLhwjJG2jiTFGjN4mmmcVT6dNYgQOMcGiuKPUwQ7qHqPGO0J1PMO9H%2B3pAm%2BARMMYm3OJl04pJKRUSB%2Bzy9P05u3wM63fpV6YHBvObyN%2FPPLeQ78GyuaQzB0igmPiVd%2BebKHmCypDIn8GtAv24vkfnYaY8sNpQyeEhm%2BTR2LUoO1nWuVVR%2BendNaktDTIUhRVrecMlIJEX7KaLT67XFlgWn09R3EJxo86IPe%2B6i3ZQfz9BQQbRsFIrCjOxHe8h052roIqFViM9oSqn8%2F%2Bokg4tD%2Bzi5cmvzg%3D%3D","2020-08-03T23:29:09.097Z","list rendering.001.jpeg",1596497320288,1596497337212,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Flist%20rendering.001.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=txyZr34RlMj4UFKuy31vhahJQkq%2BGxih7K7r4eEwj6NpN%2FJqZA4ECGxDRmeBVDFJm%2BMOgb%2FXUeeZRCYRXFgVhuNlT3wAlmnFZdDGsWJqxKgsxQvIrOtZB7VOSn6h%2Bowj6naUZpp%2BAmVE6j%2BNWXs5Q7c1XdOhF%2BcLE2pIA1rR9iP09uExiZtOs2%2FWj7%2BC0bHK8mwiMyRe3T0aysME7hXa6QJb2iaxxhrnKylVZ05hZjAKkbQIx%2FZwstbYoF8a0sGVglelKlfsSAj%2FYw2z4zArMlbEezV8EOqe%2FfQYEsVDsbBzmq3TX5FLUbbgDKiqMbrkgIFV%2Be2ympLIm6jxFcu54A%3D%3D","2020-08-04T01:45:23.326Z","event handling.001.jpeg",1596505488237,1596505508917,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fevent%20handling.001.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=m4o2y7gF1PlIMaPRFP9hs76AHwoZDDz8xNoBH2QPVWpn7ZXfwp%2FxnulaiYafjkpH%2BoVtxJZNHRaUYgSnW80Gavb7rPT%2Foo58BMuDMiM2YCX3GyAYLRaOWVYoBuUvU42cnkN22b%2FTUxwvIaSkUubn1KbOdFld2l0%2FOJly2cVCohN0I9EF8PCViq7EHEZ3H0tbt%2FvPR3fuiuLSvDj1eWTHCo4Ps4SzVPsQOQcsiwLlbsJO2UuLpRgGZVUI2CujvAz8vFkyCDgDYNIGB8olPWKR091csMKToKZo8qAqIeRwH15ppPscClmz1L%2FOXueAo0ezX36h7Mr8URJ37Q%2BvU6M9mw%3D%3D","2020-08-04T15:09:18.344Z","class & style.001.jpeg",1596508281508,1596553747204,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fclass%20%26%20style.001.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=dCnbGGepHE4qNjdhK1uvjKte897C4gqBr4tHpZDKCc90fAQD1q%2FmxYAA0aTwc%2FQ84gyB0aDl7qFpa4lMd6imFKuW2wf%2FgrPVcqEunBP2wcaGCZpMiwO7UqC2%2BXAStjX5pACpffBt%2BaWviSJB8OyZHZ6B2%2B9p2eBTzIItomQVbxqOc9HC8DzAos85wER8PW5wyF6GEzeeGwcTlq8%2F0hRoTdadvQ10hzp3%2FEvcd96X%2FvTUL7IQ16GXpkkCr6inWpYu47Foe%2B%2BLSx2beTTz35brn6fE4bvQvxDzKS0O7DvZekp0NhrKzprvQdJQYanN6ukAglR4RyOgESnFwWo7WDeUbw%3D%3D","2020-08-04T21:25:32.102Z","computed.001.jpeg",1596575709252,1596576320182,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fcomputed.001.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=HB%2FA%2FOigTofEKDOd%2FcaVZ7IHHkRn2AQJecpH9uJKArd30ECq%2FUFb7ftMiwxqT2Bk%2FGd6lugssjx8nbTFijsnArP4nU%2FkupXr%2FuPYz3cEYUTcFs29Cl9V%2Bnh3ImEHnt6E1gv1PZc4D0tXPdU5sQEVI1SWivV1VUJNjQB7k6PjP%2FIX8KULfC8bx52OrlzI3X28U%2FmFbXye0%2F3hKc5tPxzRZ0jP0096NK%2FTVxXlaPMC%2F0lBA3Xs6H%2FkogP%2FteieW1bkaTVtH0DakV5sjRvQMFqrAwiwIL%2BpbhDwAaObajPeX3CyBIi0S0LVIA5y86vm1tWDQeUG8LW4225t9ki4xCpwDQ%3D%3D","2020-08-04T22:24:48.848Z","components.001.jpeg",1596579857309,1596579876542,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fcomponents.001.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=LYwDAK5jD%2BsYuOmJHBGUrURhI38VK08yH%2BmVTjPEw%2FU0oJzg6UJCaXCn5vUMx3JM7088mU9%2BsvVhylPTrl2GAv9yNURiz3yUmun4c1uZ3G0GlFtkBVhFXFA%2FTvGBnvrLVn%2BxeZj87mKSbBVZoKAyxRDuLUmXukLrC%2B9zmf3Q%2FN5cTimxQ%2BXbVHhVvFnBNqopj5Qwnw26cp%2B0siI6ZA6TBgdlzW%2Bl2ND4SeTM8aVLUB6VAsCOQPP6G87xxHtcPFuHsNqlq5epNOeh%2FOhyKk3jcP0tfJX0P3coHXPZf%2FY02mU70shFs7GHT%2FYSYsp34tuQYfbAu5EZNxRur4V9F9sW9A%3D%3D","2020-08-04T22:51:13.576Z","communicating events.001.jpeg",1596581436203,1596581462245,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fcommunicating%20events.001.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=Owa1rIa1BaJyCULDhFBUZdZlGxWJJwgXEBHJGMcckCbloYp5CAAhsiqO2yg%2BQ0X10lFmJV64KUfpsS0cx6HoFy7SzIujIKZC243kuVZnFW%2FTkLiYvxslbmT11hlgFxU7GPTLqlxVPc%2FHbhhiGDMgRr86KlSac4lKujtKMZzUnPA%2BZm17XdmP3W1pg6ugxt4htzPY1wsU8hk43orOeofqKNSnw9VcnvgtKgywKXfl18SrWqgNDcPRP71l7cKvpp1UahdNgeoENIWHYFsDeOKrgbk2pBxDYsbCYGUD3ertsSqEroky%2B5y43aEf8hAi9ntXlPRzhPYez5dNP5QnWrq55g%3D%3D","2020-08-05T00:05:40.360Z","forms.001.jpeg",1596585904752,1596585925503,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fforms.001.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=JtPGF%2Fp7rpa3rVmNW%2Bm32J1xFOS86rfB8r0X5WSOD2uePPgSA%2B4yLgPK%2B132od9TfzWiJedg7Nx1zcXNlfvjVfws00P7gsMc3pwXXQL8OVf7%2FJyzrAbJ9HX7NjrWYMDPSspPvR6U4IymBCaZ%2B9crKn4WHw4FRhF6IhY22gkbSArGbGND559nrSDlLWI2cxnjCy%2B5qioaFMC%2FxyQPr3b665XXQjr2PkTIjjjJaaf9lT3tsAE7%2BIrc5QGYY7bvo3R4nnFkL3v0bODGUg1CkwCBHe%2B2g4b7ZHAhzmV%2F7xu0PU1Ok4Nd0I1GfJuO3K03Zr6H8qOwSwFoWHJMBhdOarxV9Q%3D%3D","2020-06-15T20:20:56.027Z","vue2-3.jpg",1592247791447,1592252443581,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fvue2-3.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=ow%2FyGWOhAPeTTwCqQ957K0BzFnjiM6RLNLR0LKNGSNt6tJ9LcdZe7q%2FdItvVUwFpxrYTRooB4s9JpdOU%2BS%2F3rg2H%2BfWu6JaGbHpX%2Be3xZm4k%2F41zFtOqVuvHzU8Ig37x%2B5xryu58NUSoOHGJq6dSH1%2F8dn7m4hrdRZcfjRpZSGuvPSBDfepUIbLHdnjed00xM1EGcuqfhdXCZ5ZLQGh0cTbIMaDv%2FErsn7LEciVBreW9L0qh1CdJKaL%2FtpNvHCGCRcrW327z90RE3gmPK41Z8NuWQd1gtEaz1X8Z9ycJreXN%2B5VfFoeh83yz3S%2BggQczV0sOynuV6ZMZKLNwHK9g5A%3D%3D","2020-06-15T20:25:23.768Z","thumbnail.001.jpeg",1592247802409,1592252640451,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fthumbnail.001.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=bBLakJt5bx%2BPsJc5bPg80OJ%2F7W7QgApr9pWHg4cdeFqp6UhcLd7cwaZ4Gs0hUV4eos9nlKZ9uE7KpP4JH5GErqejhcRR3%2F0yIjAANb6qbf3INa6jcKraohN9Jz%2F896bBjUZVquZ3WGPzGxjG9%2FmBbpAUFUC0diOSvpA%2BmmgaNYewZ4IAPUPcO89v%2BeygvvydSe8QAmLfYm5wg6%2F%2FnW6T46n8M7adqwwwYXfQFg3V2TyZq0plL5cWCei1n1jx3lEA%2Bi7%2Fn9gKB3eBgAKwPvpo%2BDjqcxQUk1xc%2Fq5bNaUdS7xCQO99nQFNtkuF0UxXUuWwloBU%2B4QpOdfW%2FlxW7fOnXQ%3D%3D","2020-06-15T21:14:53.248Z","thumbnail.001.1592255672972.jpeg",1592247808545,1592255672972,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fthumbnail.001.1592255672972.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=ieZ5yTqcHs7xTb%2BwbOMo14AG1c9yfRHbk059HnGZ9X%2B0ihYeiWOQv1Q2M%2Fi5iC%2BtkKQUBXaYdLouJLdO4kf8zog%2BRjWL0ZTsOVMNXuoZzzcANY2JZ74p0VUUW0kGkEgiLX%2B2NzrULpIHaq6x2lOfaZ1u0EyFRp6na%2BDu20lMY%2BdpYasiLn2kCpB7QuldyY1eSshfxPRiPWrrKUb1AfIs0wkoPFX2Y46mQm%2BRp72A%2BKVrSDdfq%2BdZPG31YKNAT3aJkUOVHXE0iSdgl2I10nDHN0BUFhQzZH0UiL4lt%2B3udx2pzofElfXTTu7KByxEmLkfTpfHBpzHn%2F%2BDaF4BQKFlkg%3D%3D","2020-07-02T17:33:25.290Z","thumbnail.001.1593711192575.jpeg",1593711168537,1593711192575,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fthumbnail.001.1593711192575.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=SnmmWeFeiwROa08MouPrY1ts8b1vdWVNAmCGJGMurYbpwGwBA0R49goUTm2TzTAnm9XyDuVEj2gbOykeKOhNA0GrdbZngnJ7Q5r65F%2B2KWJlwT36dC5C0JKiBn9Rz4yNCR127qKg4DS74fbRt%2FO2Fs7CWbZVHrgdUaAKSAEEri%2BLwuwee5AnyutSX2qbm2ZukdAVkm61OwUwTdez3eDts5IPqPaizM2dVobh%2BPrAl1bjK%2FZqqslePyIVbBtrKL6AWxKu0S%2BOQFyTfIxrbre1UfvE%2BDwMnuCo9O44awsNiMVRMimsjb4dUz8x43e4LkLy5KNMbhsiWkSJcnea7hGyKw%3D%3D","2020-07-17T22:18:45.500Z","thumbnail.001.1595024315182.jpeg",1595024281081,1595024315182,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fthumbnail.001.1595024315182.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=J1543wFhfy5UwSS5KQLZE96e1g611kmXI1DgPCloHJFPirIUx%2B0r68%2FcT7clhNdNyjchOhyJAPZvZtmchglMu9Skqt26pKszeT%2B81RBdfcHZJEph9jp2Y%2BGydmZn7tBNjEsf7C%2FzhuSph4gLOJdCRAYQhcThajL3tgy8SWVzTUcHqL4NnCujBBhgAV5R84fP5jUKjGEt8drhjWOMmM4xPZZ3sEZ1XGA9%2Fc3NF00P2r6oxUD66XntVa06jp9uLoUMoK5zQwAkgo6luDA8ooA8sFJrGwXyM8QZO%2FzvGWXmslvzVDF4vNaShaqutq0325vEjVaFqW9m1AwHOG4tF%2F%2FxGA%3D%3D","2020-08-03T15:30:52.695Z","thumbnail.001.1596468635385.jpeg",1596468600127,1596468635385,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fthumbnail.001.1596468635385.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=WM8ewTMlYQrexjoiCpHSdg5karAm%2BD8xsnI%2FkgDpjMRNxhWjmw3xI6gNjYguIGvQUcPk%2BTxvRNpFkpdj7zjKPtLUD1t%2BXhYcrBWy07HK3XznoC3rom6yvVhK9Ct4%2Ba0ZVCebbCDTCfYmQicPHAsesvpFzVzL%2F9XWXJx5PR3gSiTergb%2BkMUuL1cCiseaSBy1UMBAH5Tf8JXTq3HAUEfZC%2BJ3ftz5IDUyFIA7hlI%2BbcadqCpPJwDEVOixJrhGGu5auiy6IEK9tsyAjESBKAJacHUTIMKjMNVjc5f8QX3TQxnTdBcSEUeA8GLFddSjhfyCd4QtEamIpMhHCmQZPcxt5g%3D%3D","2020-09-29T20:15:40.757Z","L2_RWV3.001.opt.jpg",1601410170485,1601410522088,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FL2_RWV3.001.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=Ofe8IPZEiMrogfKfvedmsDxoQ2qhh3m51dbSAtbqY2iyB5sX6u%2BqZgJNiffen3wYD9HDmHWlBIbDtNfP9CCF8UhyxSwLp157xCMa9ixKIMY%2BtRPEy0sRhiHUqZ7lReJpg%2BKqZiTqPwdHTUR5DoGpqBMnlzkUFElNZq62yhWT2KfGJkHgztZEzgWnjvyOo%2BrGGacUXXrflk5mpdQGe0ucY%2FdFLxVMGU%2B6A01Z1BRYos0RiLJTC8wB%2BhGWx%2B7MoFkMPUU64u%2BJxixa%2BT%2BoIzMT5zrJskTSlai%2BYk0NL%2BaYqI6fZiXLfQ%2BBEPfx0nZNdGAKfwjh2TB65zIIqefOzjD1Lw%3D%3D","2020-10-20T23:16:04.609Z","L3_RWV3.001.opt.jpg",1603235734499,1603235750901,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FL3_RWV3.001.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=m4WWDTgbI%2Bma1ZQPG7d7E%2BvUxNdpGUqTQLf4Xq6tknSX3K1S6896V8%2BUFWq%2FIzHoLJZwaGLIXnmeE59TA4vuuUWKQqhjFZeQ5NUJnWh0QdcR76JFRCJE55DrX8Jxyvkk6x1yAcq8q%2BJr3TJcJZwEKo8XIX24czRcB%2F%2BrtBKzyftPdCv%2BC2jlefwjuL42N%2FoTwdSBvVAI8C8ojJXr1MT4G%2BccSOw5BhwWBt%2FcPeqc3LB%2BcilgGCWpsc1kwRhcZ22v3UAHptq9drVrrph8P8uUK9P0CQ3ZzyPzcC81LljQvGPI0E3GOfuM5uRXfk%2B0X7%2FHRPh4a17%2FNOcyBV1%2FAcqfOg%3D%3D","2020-10-27T21:17:09.792Z","L4_RVW3.001.opt.jpg",1603833391431,1603833412663,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FL4_RVW3.001.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=n7mkIhQVZWZts69PRslbtOwu340WZfVthY79mo%2FepDXiEWpgO51QJxm9oYlWI2eV7MP3GqLXTtuI5vl71kovLXP%2BHVC%2BDb9USKqnBMt2UATxoilo6Gbx4QyzHygIv8kfdIwCK%2BeoEeq%2BwFPmlXJ2B39XRDjpRb71zBBoaeo882VbkqgyuWQBwgLnN6PowMEuXeJ5PytxrfRK83hLny931XOuo4xwsWY3qLSQF2JxLb8zKTHXUBGDePbfHjZ%2FIiKExttzFR0IB%2BD7ifKdNkS6nY2nCDKasIWFyGBLhzv3TPgRrmuB6ZKbysqbNh99FEb%2Bz1j1bvjJAoENAm6cegTqPw%3D%3D",1602600328162,"2020-11-03T17:26:23.807Z","featured-image-02.001.opt.jpg",1604422799397,1604424369857,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Ffeatured-image-02.001.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=rr%2BPtLB7%2BdM6r2GiNDNngmmpRVyT5UdMzbGJj%2BnRDDe4kMN1hdrBSOrOxQ6UbzQzuqYkpsze0x6SCceugoGTUc0ESmlgxKKVu1pfJJyb4RduqRURGciFuQr9LZNWjIyoMeiQQzRsJpXlfClzlGpoaUzkKdss9EtV4Da1270KtFoPxRLnBQIa%2FbruCeXEO971yOufrIfGrxVSyJ7JisxhAsyAj3Y87idgCQwAJLCjnuhuvDcDfrkZKnXOxNqCkF%2FRqU9z3xUUrk3KxFtqRDbtGnOaXNoLnPitFA3VsNKQRik7dKBiw2V7YitC5Q7PKuSmO6EK7FYw4S4MiFZpc2K78g%3D%3D","2020-11-03T17:00:48.706Z","featured-image.001.opt.jpg",1604422809442,1604422829937,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Ffeatured-image.001.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=Q795fOb7gNb57%2BNx3weT3hr9KkTkNjpSrudQ75FBwjNudsqz0u4v7t0aag6hRtvSeFAqvcW7bvy%2FXQZ5DmoVyelR3pqLI5hsXo69fSwJOiHEJIff2kMPLpGpaSnhArbIYi4Is4gYk0BRBm%2FgGYAbpXNBayV4xuTtq9uWmUg80EE4QyIW8piEuPIWRI0v81eNFZxdk395wefkMG5LKdTM0%2FF%2FQUF9erXMGV3%2FBMIHMf6BJMd0nigvepK%2FuGEY2bgxc5%2FquFoSoxXG9w6CmOWb7evi%2BHro0KAu%2Bdsze0KxpNdWiufyn8LAlwT7r2AlC2%2BSfuGyWdTxWgDijAWCshnGBA%3D%3D","00:04:14","2020-12-02T17:18:24.917Z","featured-image.001.opt.1606929493753.jpg",1606929484003,1606929493753,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Ffeatured-image.001.opt.1606929493753.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=sNqv7Qbq6tR13k7Ppt0vwat%2BUWuhIgjz7eWzWbiI7V1J0H8kyAtQEavKODnj2t30lypq1sCJHqQTy7BexmSPLnZhvQwSzD7Bz8r2iinUvxIQQkQEc9mQO5iHAM03%2FfadQmGfGYf28ZMiyktThhY5KSo0zVl%2BYUb%2Bjn9KdAjwAtjIYqj0ynmOD8VCenBOFnxqT%2BMh%2Bct%2F%2FuhiH1EQwbX%2BTnXcSO%2FU92AokkE70z%2BGWVeBjjQw09e2FTC8fST0ImUN3sgR3vjQSaUW7C4O5PicMM97x%2B9Hp8pgzvrHe1y%2BoHG8OfqNxbtTAxb39T%2BKcDmDr58PBqCyLjSeB43Xki41Dg%3D%3D","2020-12-21T18:53:31.677Z","featured-image.001.opt.1608576799782.jpg",1608576785029,1608576799782,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Ffeatured-image.001.opt.1608576799782.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=Wk9Ph1Y6ktEwIrT0dS%2Bo0mG3PuQQSTWhnS5l883phpQb8J8Chb7M1tKfNgNt61PVj2Dhaq7kwdYQJKtRIK%2B7YDsXEp4eklPH8xy9IOlemaFl0y4fWHoIOHEIjFE79WxaHNDz2gnCV13wCBPZ974COxod85iS3Q2xhQDXwHtYYfUDUQ7t0tufAYp8OiprU%2B%2BVFfQfDRhfQBvD%2By1qH8GADldGvaHopt3EPGT3ipqQlYWis7g7%2Ffxqx0uJ0344bZmgthC6kYQRCm5mvDHAlt0kTfF4spwfiom6oejHIZsZfA6sOZr6irLGb05Q0MniKv4MmUMStt%2BJlsIGJSDQbAPSFQ%3D%3D","2021-01-17T16:00:16.434Z","06-featured-image.001.opt.jpg",1610899198521,1610899208858,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F06-featured-image.001.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=YOsAfAzZjwziuUWdk8iyAPNNHWPIMZI09jde4np9HlrMlqSyf5vPAaxKGqW5re14AAvgg%2BRMCj6IIdhRZ762BXDHpGXy5wVKFO4vrFwAtxRqBoy%2FWVzlnmtfXeC87kwb7%2B%2FRisXB5%2Fj5Ct5ygfV6OICVguYnrp26GDoOpIZ6RX%2FqrWRE%2FqnDznY3ewJTHyp2gsXpRl5iKAfiXn9HwHSq1FzWnDE%2BJ3ba%2FcKwppZOaxY4r%2BJC5M1ej6rIr2DQkjBSkwNyKY1YINN8%2BX6V7uTPCEL%2FWD%2FiFxQIy4XU9Fo7Nh5AcBt36Pt3s16RyrPwqQ0ifz4wd%2FIgvBwrz77N1AvH9Q%3D%3D","2021-02-02T17:22:38.471Z","Props with Custom Types.001.opt.jpg",1612286535230,1612286548458,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FProps%20with%20Custom%20Types.001.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=VjbHVxHOnEcDdhb6kvGlElezHNy19Ga%2BqfvQRUu%2BlT73KgSC009uVPcLTFWl%2BceFY1mV2ZyKcd9eovlqPb3Usr8sHpVwePaPA5xyZaDZzi5jy3%2Bh3FJKMNDUCfaIAIQa0JRfZhuKUCT0ZWrSpxYBfXyY%2FHUdvnpBcYxh1N61jzwYhHndzkjzhwi%2BngMW75qOD1dKxkDxR9hhw1edvW3%2BkLpuMMDLdw6iqiUNPNk7pkg5oq1W7ugtsXZZV3IOgRAsxfH4pV64K1CBIxmTbHxr5RfxwTZWU4s%2FAQejHSK%2B7fCM7kg8OQo8fFTtwHFmim1r%2BAcUYDttzzALrjgST%2B5FBw%3D%3D","2021-02-15T20:42:14.459Z","v3-ts-08-featured.001.opt.jpg",1613421683461,1613421720370,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fv3-ts-08-featured.001.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=Ujk7Td4p5FLxXHCKwdjNIKO0PwczV7w1%2FGviPshtESuV1Vze1dSc8J0y1e1Lcjsjd1E%2Fl7z7OtZtq0r1pAbDHbSpiDtjmECf9nwqdgug3SH87zyIXPl2BHf4RPE4v%2F8Zv0yB38zHpTJU0X3FbNlH91BaWcfcSSGrSfaCejD5fsLiLDkegGAy19loKGl%2Bhmre9N0vZjO%2BvoHrNF6kDCBzIhe%2BKv9JioHjrvpRlk%2BfVmwueZL6wIkK0ecQECZ6y3Dm0%2Fd9mp%2BPfPdUgfXTyLWXs8jc8jlsz80KS4VOF%2FOAjLADUcyuvI07ogFVhAF0mdTDf9RR5Ek8EprvqRKTpA8f9A%3D%3D","2021-02-25T16:12:32.424Z","TypescriptL9_featuredimage_opt.jpg",1614269533453,1614269544419,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FTypescriptL9_featuredimage_opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=ds6r6Ccc16GlmvnlHQGHdPKDCeDxn%2B5%2B5Bze%2Ba5VeVAxKE2C2rcpOv6WT7%2FKGa7PGaAAxcLnD%2FsXJybePhsXl9r4gq8end3D38ZnyHMSOEO326SFN71q7%2BnFxAJErYA24oHmmlvhDCxv8cD7RtX%2FcfObHZY8LOqPcoVXr4ngBK7zBm%2B7SA7eGxOwoDkkSYKPGDCkS4RY0OU8g89hi4si8FohuSEkTJsDBbJN3QeE2Xuw3KOIcH8jzBfZqxP%2BYmgt3WHF4yeYrhFruq9a1ylBWGx3bgzLattqa3KryCEbyNEyk9%2BXha0RgBhqO9MoezN%2Be6RTJ6KI4ir%2FXwczOXbxLQ%3D%3D","2021-03-09T00:01:05.476Z","v3-ts-l10-featured-image.001.opt.jpg",1615247329207,1615248058595,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fv3-ts-l10-featured-image.001.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=pcHmmFEHPkVfeDG%2F8aYEm2lZVuNTcnkmgN8YTHxHxIUKOtLD%2BOCJkbGVaSCm7nP4NeIupH1U0d9NmTIg%2BKgxE6OzuuKu0XpdK%2BVmzSdpntnpJCNYAYHzCSJ6KQUS2kEZykU%2Bgvdo1CQNF2K1pSvbxkWl6V%2FqVpOwiYnjTD1rGoogTJwZeSEdeDXe5LkNQ3%2F1MV6ayqFv%2FmlBWmqaLBJ0Eqp5Zx9NwiXhZoUu986J5k6cq%2F07j8LOTGUIrGdAQ3jcNmzZfr%2FxDEYZ2tI6ET89QxPPHUGfOMtfmer1lHj1LLttGJy12bvadXWUapqbIE7H%2FT7icdnZhk2DDvW8%2B2gyxg%3D%3D","2020-10-26T17:49:07.369Z","Introduction Title.jpeg",1603734502582,1603734530045,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FIntroduction%20Title.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=ND1KoaK28h1xhRKCLycWCTfqpoDJpY6nMTAfDr3MRPHBDtTrZud0jgoTnfn0k1GjlW8JItsJ0crtiTra4N5WUGCB4ktSxUjFVCwD1Qvc4q6DgLexPuVWJ6prfk4NXz8JLFoMqUwxfIzLS81%2Fz9UsJswZ0DhFS0Ny6Xhagp57kTMHwUlSZGsKKQmjAa67wwU4nJhF3uA1eFHfjD7l1xmwvKOzaglNhU8yeT1x5jbs8ZIR0iGZqal9xpptPHYw9C6yw56QQDhdV2zjx%2B%2FNrJS3%2FszQTA7STmPv%2FLbd3IT%2BaDqzvMMK7DTCpULPwIRDczC%2FJSCl0J%2Brnl2ZH%2BvK4zWTJQ%3D%3D","2020-10-26T17:53:45.907Z","Receiving URL Parameters Title.jpeg",1603734786861,1603734809151,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FReceiving%20URL%20Parameters%20Title.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=fmIQJiOrlIwb%2FweIxez2PZtRfhvBtBjfZQKgjB4RcNyIcTj6BHXTt4AOla9xDrGxiBn1ZDUxSDzVRxuk61%2F1UQhD7Xsom3Y4Z0acUzKXFzcKQPUDdeBXJlVdc16FnTfoY9Y29tBLgpYdvsruavqTUZF0GjzZ9oeqp3Gb%2BrSJqZV4Doc2oVxkeWMxgdQfdWqO71UNNKPzsJlYcbfYZ%2FxhqAVuc9GtTcfSFSTnnA1ivpy%2BfwD4AuJcIlrEIEbzGTXsYB2FXyzHQJgVdNB%2FozcapX4rzu8bqcaIh3jFeMfQRvyfPOUmG2Gh26%2BnoN6HFPXEhf8%2Fvscm%2BDYnbd5gBXLCeQ%3D%3D","2020-11-05T17:26:46.606Z","Building Pagination Title.jpeg",1604597177200,1604597196165,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FBuilding%20Pagination%20Title.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=lLRWYsAJ6Yxemc2LS0julO1jI5TChs9JHUQI5ZVAabsMdYCeb4KJfm04DokoCozv70RdyGVEi4nPpo0m0b7KD69bz5STrvw6b2iuf%2BG%2FKmE7LBQco8VJtC9GX%2FL8o09RMKNjXj97Y6%2B%2BNWcBteYeDH5BoyMOEHeNenTY0H8o8xb39cGVUWhK2b1udE2duU%2BGEi1vteAwWGkN2WnamA3BBE3uCTypCsujg3W2XVJHdTj7V0LTL%2BZirUCMDRzajAHAgThi8DRQm2%2B%2FLcgKG6pFMPFZnqFw6fwupUuhpb%2FCQf53Y9GC6KJ%2FW%2B2gRyNzq%2F7hQU8FzAbfByJXHFVzBepRtA%3D%3D","2020-11-24T00:19:46.500Z","Title Screen.jpg",1606177158752,1606177175736,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FTitle%20Screen.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=n7Vnzu53rX3hbMBHM1rCQ5zfEWdDXaaLOrI85dWdkM8q%2Fa3Px0QC92VJEbpbI2CZqf%2Fs1Kclvb%2FKybWbM5S1U6twfqahX81ScmUqdRss0LACKUuIk7rBgIyHU06vCZJgV3fjHVEpiuiiUQlb5ZWxGv03OTLtZ6Y6D7lSuJ4ky1BL%2BkcnAPCCLwexmuJab3nAs5ih5LcXKKb9MWyxViyf6WiNMtp%2BPn2fbF9ENB8QNGLp6W6cJzoQ16xRuZ4yZU45eYQ3OIMcgYG52ojqITjmebi%2FKbmdoDeMmFNoPxalUMdyyuCKYMO7cZBIJr%2Fwi%2FGgcdFU9MWKjrzlRb9w6Mmwdg%3D%3D","2020-12-11T22:02:07.963Z","title.opt.jpg",1607723853303,1607724120614,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Ftitle.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=FAs58y3oyzDRXHtHv1afj9JZc4dK9xp7V3HjQVt0kzLhfQVxdWhl6LO%2FHOcqzk9OzzhGn6Ad%2FqO8153iugQ36JcycpcMJklYYf4tNE%2BylwBSSMe5qvDSQQ2oJ6wvm3UCRX2eUqB1Gj1C0tuQz8fX0gQzegAdlWjvntCmVl168uOp8IZVanGd2wOayhSfd7aD2%2BAc%2FPOXyyiLebr6vmRrrMCZZuZVnPlcm9lDUGiB3CgTx5UBgbdmN9u8FTdoubztsrlKit1T9OqWmYMAXBAKHOVHy7e%2BFmBJs%2F45jKRqkQXirILeWRqE3gbmyKW7EhMF8QM88fwnyRypYNND8E0zyQ%3D%3D","2021-01-11T17:07:06.745Z","programmatic navigation_main_opt.jpg",1610384807418,1610384819205,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fprogrammatic%20navigation_main_opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=VjFzX6MJrksf%2FuvCcPqOcxCH2AX5t66JSEvn8MiwzMC%2BfHdTkvz736SjGFLeC4x5FwdzVtzyP1AS5SQZSNck3h96LEZxmHelbaYPs8djCD4eK0InXhzJX9S21zSo4KF0XNxXkZ%2Bk2ef066Lkz31MjAuCHRFuEcvOFOCWZQTGUvFuFA4VpBsh81tiiosuVAa3jKvh0o2fxeIQAJI%2FA7hTuBnhi1ACY%2FNflzX5xuMyep1lslOnyCoq4sxnpvE8lDN%2BhC%2BB0WqKTvsNeiSsvjnHOR8CYBp%2FMhzR1g0B6sMe2s8VTn1Jskh75PRjCYxA6RFwEV2hRvzMVog5AUNKHQA1hA%3D%3D","2021-01-25T18:39:32.549Z","L7 main.opt.jpg",1611599944503,1611599965286,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FL7%20main.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=ASez%2FcpHUswJSadt5G0AjzQ%2B4ube7RBgwJ0A9%2Fga6ruH36R3w1C21S7XKNnpLsCB3dCKKQVUHC3Vth%2BnhPP4eTILhVpfUPYwyvapQPEZeuA%2BVpIbY3wOr8NSnicrqPt9XMq%2Bv7tvselJVMqrl9g1TP9wHEs%2F34QgYfsEybTUf9dWCO48TxypB9mwEXLb1FkKeFOV1WBrforCpT%2B3uT%2FnsMyI%2BA2%2BdiwVB8gp202rDPks7VR2P4Yjetnvdcwsd6sBzf4nOuyoohYmisfQL7ZKM8QQkmJP6reTpAR95bDrhYbypD5DspqlKR8UwGcXM%2BoXsTeKggIiOHIPJ9j44E8SiA%3D%3D","2021-02-17T23:33:59.314Z","8 - Flash Messages.opt.jpg",1613604814194,1613604831836,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F8%20-%20Flash%20Messages.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=R%2B%2FVOZvfSzeHZwNB6K7KdxUTYaezUOc2UljUYfJGLODm9IeldlY4fQcIhY7byL2mKndhfPct%2BgdrR5qd%2BiFUzbRqPGJqQ9KUmhJWEOPYpxPc6uqr%2BxPYpDjzIGZZKTe9DQ%2BpyzmtKWGYp1VWAVC6FMZbyE69fBJMoQxbxGna7JE4yY6i46EAi8i7U9hDbaAVgkG9tb7eOpqQzUsQZVuUzNVKMqc9VpSifXQgxF9bJVvYzqknlfMT8SoiQKqrjJ7l69LBH%2BRvljDIejdZaDezclv%2FWZ6NgX1HzdYGKHAKHOrI1MRjAm8xurCaOlYyGYzddtPByMLZj%2FhWe3OX2YAyZQ%3D%3D","2021-03-15T15:43:46.914Z","9-InComponentRouteGuards.001.jpg",1615822989716,1615823019315,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F9-InComponentRouteGuards.001.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=JnjoyKkId7ARZeQmwJatd9wyB%2FHr%2Frke4Y%2B3NPSzRYkYyNivpn6ZwmFXOt24kCADeYrtwflKfEiamDib%2BoNx0sVNRG7Y5dDD0hUPI9sGAfFKO45iNOwLVyq3roJT56pzku1ZOZgUz9UezAvXWXsK0rzPjGn8dnVY4K3TZCPsCEUBYA8oiRxgpQviA2xti9GPqQYzI%2FXnogIij4SH9egfroitc5ikSSrtjvMkAQN8aIu1WaF92TPBHZbGOAVE7LfLZuAgc2kW%2Fwu679rgJ3PgDKPdiMNBw%2FOI4L79kq5wjNgRchAjgLuMq2RGDKU89xFSaEb237syn0WbgIhmIfKAQw%3D%3D","2021-04-16T15:57:48.490Z","title.001.jpg",1618588638674,1618588661038,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Ftitle.001.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=RVIaM6XK0%2BGs3UppkcZ1A%2Bxf%2Bg7nijMPrWmVbJ1SpwszG6ho38uhrLNycA7dJwU4c4OzyxMLFiAcD3loubwzd%2B25cr9MyHIRuGIOnWnjCqQ6MBkNcpBzt198T%2FVaGLK%2BklqqXkbhTxEnUPjTdEfsR%2F40197JIPxPYAsI%2FgHu%2BI9R%2BuBP5%2BTmmXJK569wU69roN3ZQnVAAX%2FD9Xk3JZmqLs1SEx%2FbQRV6hJ4%2BMA0Akhf67PsG%2BTgwy%2F9Pc0bP6fXydgJf%2BpMXkIUuKbZZZFa6jsuqMINoxICeztVZSs3jlxr2ygVNwORnQzu%2FZOce%2F5VFkjOY81Llh3aFQRqTuA9EIA%3D%3D","00:10:03","2021-06-04T19:31:01.255Z","11 - Wrapping Up.jpg",1622835040137,1622835053749,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F11%20-%20Wrapping%20Up.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=oRPq7KjL%2FYTihPB9sCkRwVWUAgDXE9wwCMl5FQdfZc5vJdATKOPJ1%2Bx16FVKXdTHENBu1NTL2cFnXSg4ZTBUIvoR1D%2FpbYGpfi3T1Hh5S9G0nHNMQ%2FM3%2FZGbJjN7XXQypL60bGLLt2zkWsUV8P2ZAQIFLuNfrB2K7U8JiHfiLbfnYQLU3cS7NJtqKg5qli8%2FoHdEV2I5NRXIKh5%2FJWANyWeiz1ddCJAQuYnaNrQnMAslhTfrbFlZTtcB8M725gjcv4SjYulAxTgiYIwkmVjIS9jPKGLtNkJuln41IxKVaXcdwkrNf4pI6gYvEynOuT4HdvWNO%2FSTpmdCk0OFt0g%2FPQ%3D%3D","2021-04-20T00:12:25.758Z","RWT L1.jpg",1618877513074,1618877538447,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FRWT%20L1.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=XyGvMurWYz8TVLh64anpklFn8qQhS9Nh3qWk%2BC1NKNUrTwnAhSbZBj0zZ2c5qF6UWReH8xlIOEA92X%2BX7z7WxknQQz9b5vUio0VIgKyQhPxyFIbp8cBHJfa%2BPytWWsYALas9ZhhFDzdm%2FEgHrfsydgxDYVmdEL4ZQFsOh7yv21GThtwIhs4%2BNwhMiC%2FMDBg%2FxZ4yLyrpGQco8c6%2FZ%2B6%2BViU0sjH6smOwvADRud2W9mYg2fai5daVSwSSd44wRl0xe9w63r9hVYqdvkEdsd8CMfkIp3iAyWjYSzj2b0iIVjnvZSCNunCriiUznsc2N6tJwiSFN5sEE98K2Z%2BniJrGRQ%3D%3D","2021-05-04T14:20:11.004Z","export.001.opt.jpg",1620137994714,1620138003577,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fexport.001.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=KiX8Chgk9hc0dkHk62UftJStVUZDqcFx%2FpUMd%2F0JLVPvtOESpIBmoD%2FTniQ2lImSi4gay3jr2JmB8wY7fb2OOHS0l%2BF5FhRkxoquYV65KQahoUYIO8FfgRr7ox%2F9dI5Bf3FPCWMgY9jQm8yhsuvrTcwKiPXfV%2Fdc2q6OF7Tw6rctTzwVZr9KHXmDuiVgEuE4xH9qR%2BW9DM4YMdbwHXOEmxABIsFJVBn8gALVSkIHJsIPbEf%2BTfudsQo9rMIqKfFPn5kd9haFtXwvKMvk%2FXNnvjRZdJtO%2BW7chRnR%2FwMV8W6wDrFgnYEBcteIaMRdmI8JV1xvJfuWEVn0OsEBmGNBVg%3D%3D","2021-06-21T20:58:55.583Z","RWT L3 Main Image.jpg",1624309101528,1624309126961,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FRWT%20L3%20Main%20Image.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=eTWz8P2ebOsDJgpRintTlJvBORxIZoWu7v0ZVV7ESWD09bAJycGIQoFCk6SJHXwO6hTqIKnZ%2FJ3uTUby2uV%2FgG2H3geFz0EQjtERe1cPk%2FB7IKXpeKGthFUX4CcBrUva4z2Jlx%2B29lK3%2FfgvcrFMbry9ECRDRSmjFW4LJmSkgqrJUzuhtpaKe5fHORV5RzJAH4I4BCpTb8HdoEM%2BNYkVhFii%2BbEtpBYnGsgwkaJ9suTsBma%2Bb7TtA%2FOXg8zGBcZW3THKW0esqiAtK1FhIPScJpdW8ToQ6SVQDDp0R7pSrhzXvifjQ5jdEI8QR9ssRLTVc8nPE6XXSHNqBSs%2B0BXvMg%3D%3D","2021-10-25T21:04:36.885Z","RWT L4 IMAGE.jpg",1635195801507,1635195869067,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FRWT%20L4%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=a0MsK2UiXfFUBsuBF9ZjruC5LtVhbyJhoUalY2dxyl3bz%2F3bZrqPBJG9OL8f%2FynGxhLUwLsn1CkGAd5LOqbC4Qgf3COZT3RkCRTllltlTU5yZbtzcGCVineXn11ghFbYsRhFDV%2BRf6uv2HhNWkxynQBELYUSsx9c2II1kotu0lfniqDE8Ci1FoamDhVcSsKB5SmZ13%2BVY8A3QjAosSS3K8gt9h1IdM%2BTt1UlOSHtZhy%2BJjr%2B7A7R2k4OxV2GjWh5dB%2B1pCsS68NENZut4V7Lr%2FeIW4dpC%2F1FelbhiHnBg4WnAuzBYRXYbQq15Z4THBWh3E9VVflv%2Bs4umQn7QYQeKA%3D%3D","2022-05-16T17:11:56.821Z","RWT L5 pt1 IMAGE.jpg",1652721083675,1652721109005,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FRWT%20L5%20pt1%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=YvUxoLGi6hG3kKBTIe0hmM98dLYvoOikE6vPfoVNDx%2FnWlCbbApBShKHVEFh4QRBDHyTIxgMtevnUhguNU8f0A3Nr3sv97CQ4BJZNKWz%2FSdfRCSPqzZq7HPJkZIoME0Q5Fq8bpW9NFWNEI7C9NBR7X9juCx0VzcyvC394%2Fyj7T3Vd7lyCS1w5JIDeR5JEq8%2B%2FIpLOuh6igHfWeI1ZJc8ei%2FqxViptjSDfO4MCXLrJAxOo0LZb77wOt%2F%2B3b7%2BJHUw%2Fzspp1XNBbepCbwuaTMkEJ7XFGT2nYqRERhZH7Jes0VdSYME6E1jxqj0beDG0Ar9uyGY9zGtPX5Dw7bHRXzfaA%3D%3D","2022-05-16T19:40:50.028Z","RWT L5 pt2 IMAGE.jpg",1652721091306,1652730041900,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FRWT%20L5%20pt2%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=SQbF4TP7RSaP0zUz4WAXye9Vnx0yaMRL1CwDahNsxCZlKtbcJ2qmVLROAT20BzswGC86mmr3ciIQKo3bW0S0vPoSxLCaAC8kZL%2B1tXLyd68ZZviwE1bz%2BwCZtmQcUxOOhLbbOPE4Zwt6eVUbjBCz7oC5vAV48ViPJ47V3m0L5vI6asHspfZy9NX9U7dfz6xG4ZAgRTdYj2X8JWTiDA7PAZHoz2TGfVziarRrTxapGPsUBflrikccTI%2FUwEIXIHf%2Fr1BACpySN0CnH6E9iqkvgvNsCr5cBuQVpuSQWEA2xugTwCxgqNlNGmX%2BT8Cma88ilHUBK9s42wE3QK0tUlcZjA%3D%3D","2021-03-30T16:57:05.622Z","1 - Intro to Vuex.001.jpg",1617123401168,1617123417866,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1%20-%20Intro%20to%20Vuex.001.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=vg4%2FV94%2BkbqV4UBrTM5YCuGzjKSJTLUCb%2FDlGc3DPCNmOPWfeF7H25SUl4ujglJREu9OJU2kmpyK%2FXI7lhSQK0ETsrP%2BVan%2FYhfeAE9khABFayTG%2BYHR%2BItYQBDn8iCiqYZlvPWoxnsHRyofjl0PBvHn8ohU1tRdAuOr8D5%2BbicAm%2BtSX%2FEfQNepC4uqOvDZ17S9g0SSqrHmWb1Ea%2BNzm%2FsunqoX1bBWiUVrTLMB13ntFh1WqjL1a4v9tu7Iu3w3vM9nI%2Fb6c3WWvgYyP7WyJ3pLO%2BcT%2BpPt8Z2x8g08XnZvy%2BYJSObAeu06Y44jO4e860CoRASqSnXrk8iCoB6ygQ%3D%3D","2021-03-30T16:59:57.741Z","2 - Global State.001.opt.jpg",1617118013355,1617123590803,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F2%20-%20Global%20State.001.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=hnaHs2BEHa5p0pE9Fda6ZuaizkQroKM4YrpHEmo2z4peDd77r8d8Ris67iHu6tGwTvVVs9zUbzy7Bcvh%2F5Q7XdDiQoQ518nqNdvuq6nuZEkew8H4vXkVIr7UK7gWiE%2FAFzGfT7Iu9IbM1zpog1ktE0Mm1llquddvZK%2BcVfp90CUL2WaCBUSqWyNbvprXtyofb9g5bNtpY%2Fkfzz8bPd6LJDWvfZqLDO5wosEPxNfqU7ggda9C7uRLG1a6rHh7eT1sPPbu5l0MizQbg1P8nzqhB69wkuL1SRcWqF1dz2b6wba2gU1rUxMUY0feXRW6GcmkkeIc7ukYtKp0C4hbSGEd1w%3D%3D","2021-05-10T18:43:26.351Z","3 - Updating State.001.opt.jpg",1620672188585,1620672197694,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F3%20-%20Updating%20State.001.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=loogr9Ms2UcCn7SpbQ3ntYAQH%2BGOtPPVSVqJAThpBbtJ6SKXQDnXejkGZlIgTH1JhY5ZaJUAEVR1KvSHEfvepE%2B30ApsuNoZnO8scG4JVS%2FnabTZ8yvOawK1lEwo4UHDfGse6wawtqGVwRqYWdgGmWDGD4707lG9SL3psPFEtw7iNgXlzd8NFvOw2uyW5AfunFICuaUT0JRKJAcapRBcZk6IHAfU33bQVblkNxP4JDn%2F66FTdwztyHIrf%2BX%2FMcOI26GBi14ZLCwoo3wuMvnvoFPoSz3kDagD0rm2kcg6I7%2FAPZwd6HKKkPvRyPCATe2iNjSqwP0%2FIq4De2YFCYqoUw%3D%3D","2021-06-15T17:56:30.856Z","Vuex Fundamentals L4 Image.jpg",1623779771954,1623779783553,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FVuex%20Fundamentals%20L4%20Image.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=nlJt849hDg4q0%2FI%2FCpS7I%2BXQguYWC4ELI%2B6LBDh4Qx%2BOQayFYF%2Bcud4ImVV3YrhmgRml8in6gP45Zjn74I4I2GRL4FwkYbzGrOTczi0J%2FT%2F0oM0o6VGttBn5%2B%2FSlMoFTgLpmwIMZ4NT1E5gQGvHhDm6fLINd4h5978TM%2Fzf0Ey9vDlQj1kH5lcu74GHiW70B18pK2fXJ%2F0rzNhJkfCU2jUk%2Fl2qfeNoNFXmvq5xdBytChoJWzGypXxGUH5uq%2FgxsIU6dOH534qpVdoXeY3G0IzsqRIqz8Fh9VmpeAbXVsEkYjAGpQg2w5sD29l74fuarRJuQOPXQwSbZ9%2BvoRq3%2BEA%3D%3D","2021-07-12T19:15:01.777Z","Vuex Fundamentals L5 IMAGE.jpg",1626117269816,1626117292694,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FVuex%20Fundamentals%20L5%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=iBrKzGDzIGAhWw3o1ZfSMJOGMqf%2B7WomYCzke7BrL6Hj%2F4fyBqLs6P1%2BwAxhBkLCNypL8Zvkw%2FVy0AcqNUeqNWVXdp55nyXd4v89sKiDQlTRTiWJyC81BtBVeunsympkF8NuiXdRy7C5EvLOlCK%2F%2FgxECFieJcmLifMpLYgkXq5uf%2F2hC19%2BqgL6BxGpEfVgMz9TeGGExLNZFnDVZkl7XColuM8hTzcC1gbD3kTULsk%2FfdAiLAwebwTKa2GjBEK3gjyRKdZNBHCKYr1O0%2FIdl8t6rVfppSOC5vLY9IPII26RRKBEduwAJo2Zga8Vnj8LHfa3nf4ORCws%2BKX5w4cHpQ%3D%3D","2021-07-15T21:53:08.300Z","Vuex Fundamentals L6 IMAGE.jpg",1626385966800,1626385980522,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FVuex%20Fundamentals%20%20L6%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=jmVRWd7qqNOhfs7sTVCIM2wcbOK5YQDkLOazagMwzCPZZqMbLpmqp%2Bh97QnL6obO7G%2FJwo3bzHrfB%2B5wLeHpq8EYCqSBHZLANMMtG68azNS%2BEogC0zWFz1iVF95GrrjexdQ%2BeSP0Z4Pr0qjxhnA1NsZkv3IjVvjSABzmKFChhJ2Uzx7htyGqWdbJJ3Y3LnDRPjH7%2F02faawWhB4uKuplqEiSXq7yIhU2w7YFB5e1V8HKtpyEqZY%2F44J4FUD6Rj4UKpIONmf%2BPkkgUJ1p1Yhyo2xPpxBt1b07LCbhxzphF6R3ZCC1DRxVnmFiTaxTB5xEZm9NUDvkbIuAgnnRhPsukA%3D%3D","2021-04-13T00:00:00-07:00","2021-05-24T18:12:43.882Z","PWA L1.opt.jpg",1621879956174,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FPWA%20L1.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=GF7JqYJQB3s0USIXFRS6YBFWV1r2GvBV9nFE957KWP6OOYGzBj%2BQHztArzWXkVeg3K6imfTA2n8MJXAlWAjAMDbwCm3pKipo598%2FFaJiskwID4KSNY%2BJlcxe8r1LlL3zjTp9aeZYz57PwxkYALnKA8pTZEjTqe20m32PFALJJ0fuCr%2FMu8e7cK8pF6fkABsvQGn8cbmo9U8IUQm5w%2BmYx8vTvYZ0%2BgyJ1vUskk41S3jj4zY9TZjZ8ju3Ry514lWDyVCrzUdhhrJ7Ay%2FHFy6CxXLyOs%2FROEcmsf02wteohIV6ubbHdOyGlRP4VEmtp5CacEi6i7w9iusErcbMDTIlaA%3D%3D","2021-06-28T21:19:14.169Z","PWA L2 Main Image.001.jpg",1624915143652,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FPWA%20L2%20Main%20Image.001.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=vXS5iIFw6nWdy%2Bbhp0IaxSx4q4IyUJrIjpuP5eiPNDfWD4u5PCk3QiHbyf1oaVnaXXXCwtmMU24pHZ1%2BeG5aZZ8QM0lfoNnAwNlilCrFoE06tOFFyjreS%2B4Dz1kRWmk1Oe5kQS6vpGJiQFtuQ4nnYxm01pUxpeDOkq5EGqR0lv1nXMfcf4mY8dc9NbW2kVrBozbep9Id0DLPQLw6LK6t6I%2FgJpnH88qRGrPZBeLHxyWHf2f0hkWKpo8mepoNQwSucXSFlIzJkwBvfGVBjYYk7xiCfAU6cXmJMOqDT7IVG0bc4gHa7sDkw4twYH1v639f6R2G%2BZLmY%2BPcvOdXxrcMzw%3D%3D","2021-07-05T16:38:49.911Z","PWA L3 Main Image.001.jpg",1625503120073,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FPWA%20L3%20Main%20Image.001.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=FrDgbeHEjH4I9C40qhtjrewhl8340AOssAPxuPBIY4DPr55woT69J7Rmrdmff2fI0AlYEg4cPLXO%2BGxRpl6TeAL51emvznfVwhB4DxUJ0Gv6xDEsdYyb543KAIrfv1na3t%2F%2F0RfJtlJ1JcOVlj1LeBbz5WmAXEyJusf1dg%2Fmuhaxb%2Fu23X5C2waxQkuZFXfiFI5n5TcHLnlOzwbkKR26WzFGnZ79VPwQONYxkWFeUx8gajJjUC3jXvKbVYUg8ntyfAVshSs%2BPa%2BuEnQDq3zEan9Z2663FH%2BRtAG09vkANN%2ByUmUGRuw8m3oV%2BfXjwmbn2bjBTbtjs9iX8GBh%2F7FD6g%3D%3D","2021-08-30T18:55:11.332Z","PWA L4 IMAGE.jpg",1630349703375,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FPWA%20L4%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=JxTW4Kxc69Zu25aqS7yyA5QF53dSV0g3SBgLgwDGasMEqOlCYS3Yjdj1sVoBceENTV8%2Bw9JI76HZ31ljQCwJocyMNm48fQkQuuYxC4UuUmFnJ9dUTVGjv53SQpXUh8pNk4qlBVHHmTlCIu27clAuFqZgkeo0mtV57Sdk1%2BVTnFE%2F8VYXQ3gA%2FcakmmN4iocQia9KG1aVB0aGy%2FMFN38r%2BO3LYaCKVi7NfmfTjPLB6Ta9AChelAysivI%2Bv9iJ0uiLdXnF%2BMvkGWVzo7pvUMrRyGlCcEXgAQEBXG2wxxQDa%2BYYA8yjQzRtTxiqiubm43YWbQ5ybYt8kaRnPjiKWFtZ2w%3D%3D","2021-09-27T16:31:36.338Z","PWA L5 IMAGE.jpg",1632760287953,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FPWA%20L5%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=IhyHGUSYMY0yb%2FflayfrYkBoGpFVVjGSxPHXef9%2BDzMVaohYCtVflzCw%2FpNz5pprtSrdJNfBG1meI89CEK1rZk78RfE3T%2F%2BPqIDjrxgHcBx7Hfx0lXw7adRDb93%2Bv6kanqmLwabaJwauTYfFNmOwkWHXgSylQ0aIQtqYnWoUWhkaXbpux%2FarfukvER%2BED7c5pJ%2Foxwq5GoKiivHjuClCPycrAG130zN0YTf7kKm6U5OLtHOKRbFQWQZh%2BCBGm1CS4%2B8uGEC269v7G%2FgU9A6Uw0Y2tmYSgjzQGxavD%2BhGUjg0nIzSnDsi7slxMT%2F1gSqIeyZGZX3uyXOPZi%2B4ERPvWQ%3D%3D","00:04:49","2021-10-11T16:18:19.034Z","PWA L6 IMAGE.jpg",1633969091999,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FPWA%20L6%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=uEMelcqademlqy8RjE42RZfSzbVcK1uEBvIhbCbpIHCVHO3%2FMNbSU3zmlqqRQje8SLnGc8ueygKaki%2F7kcCA%2BSPH5TRqRnm%2BcU51NZ%2F1%2BCNAF4r3mvAq2XfEGcp9VsBntUUbXwUkbVn8xAbHn6hrVJ%2FyjVXERLl59TlA2LlIjtRFBgUacUTF71J5WrzXDzsLq8HOAdwXdP1P4FNHtCA5Cn7swmbnEkIk17HmOERwlbxwyk7cd%2FBYKDuYDRjbMfW8NAg1qpBd0Ux%2FS0S%2Fai4xr4FiLDrAHwUNkrnesPRzl501UMpXGW9L97koacS%2B9VR2TqSL3%2Bry6hbOEaHaR7qG4g%3D%3D","2021-10-25T17:57:07.870Z","L7 IMAGE.001.jpg",1635184583796,1635184618508,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FL7%20IMAGE.001.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=QPTrBXZMHhDFeBlFRDEbq1Si5cu7J5P2ufB7OggqM77o46W3%2F5JBo0TJsBhZT6gSqE%2FG%2FFBYPYp%2BxUsABAxSAVDHtaVwLpMVDlQDCpI2%2F%2BsAE6KBvt%2B%2Bksp%2Fwy%2FvXQI5hqiPCSmToz2hziH4C3GDMI0SU%2FmC6vFne2GrfG%2F%2F5GrfuVBAXnCsgwX8QmYN%2Bz3PXR7l7rzytAxggfaIYkfA6CfA9tYjKjrcrNfvHPWWhLqS2OIFG5AjdrRQ1G0dIzdA7XACYT%2FDr43RrQTYYnHHH0lJlwRuW0fbUHEjRTjxhLZN%2B1TCYkM%2FUzvFKx4Ddc%2BbjYozBSCLYjyrL97KX4vsCw%3D%3D","2021-11-04T17:02:38.910Z","PWA 8 IMAGE.jpg",1636045351816,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FPWA%208%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=YgKJp8lKcAkZ%2BdMyKnpWX%2F3w7PV%2B%2FP8ppupW9GXlJ2FYpBOCKmc1pPI1Bl3cAqT0I6zXTGaQ6rgPSSPSGZGnmu7x2zR%2FrNKqEawYpA2%2FAcyXyCAfnXMY65%2Bc2B4GI1BwQO4fv%2FsC48HkotpziPmN198KGaPVr7Xw2Gk%2Fq7x%2FWKHLImuvrKDRl9urOGV8ALsWzfS2S4oto3QzxfekzWEOU1uphOrDF86tQFsmEIsEM350aRIgTOzrEICBmi%2FZyGl3Y7RdZF1tRhE1%2BWALISIAtzhZZ5LdwWtfOCNksGMInOMZXcj0cy3to9ucTIJxMNFkae2%2BtxlboMqWY4gjNmrrKA%3D%3D","2021-11-10T18:49:21.358Z","PWA L9 IMAGE.jpg",1636570152962,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FPWA%20L9%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=Rtjvzs90V8NfGdky2pZqnTyKNGyTFYRYPvOFWmsbyCUREV4pBoB3dxigdR5L8ugX8EqIUW6PSBeDTctno9e3Zuw4wKuY55XkMbsYlRDtTaU%2FYwfDlMnVD0dYmvCpflRsZB7qbRbVpkYf58kUxtP23nHQCEltKUh4h6%2Ba6sUfx8qV6EbGWx8yRCYlp6Uk9L3KJ65EJjRZ2cer0q0%2B3wbZxErgYLNkHhlKRZm06M%2BKkqx2TL2cixftPaZvGMQqBsLrr6X6POFgrCVKmAbt74kRY9bIl2cn2xKmbgzPW5sRrihbINc%2FAbcZ8SD9SXlRmIOGuYkIL51jUmbk4OjDxGqBNA%3D%3D","2021-11-15T17:48:21.755Z","PWA L10 IMAGE.001.jpg",1636998493507,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FPWA%20L10%20IMAGE.001.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=oQYPGUKmGXoEQujvSi7Ovi8Z2n0kSRF2JKlimdR9stNAL%2FYfE0uRLSRAMEYP5JP20QcYmrWlg6DhPxrrksostCnPQhr1kk6owFre8DsDa4ULGIn8d9jolDOfZjOlBgxlUCIWzJ%2BosMBiERMnXbvtHyyI8ppH6wa4NrJ8RA8g4LtDqJP5gD6%2B2IuuzjGRsg4Y0gJUVROTGCYyaRVIhgIpKsSzyFDXazHDiZ2p5SmsTri%2BZPPFGE4D4I8adqbCXOucIsxlByY3HJn1WUH6UXqAugmq3qU2TQUr1WtSqwGU%2BzWmK2z8MQgNNTj72bU%2BdMNfV7P3fdJgb4%2Fk7%2B8lX5kGuA%3D%3D",1637084140527,"2021-12-08T18:03:49.769Z","GraphQL L2 IMAGE.jpg",1638986603398,1638986622177,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FGraphQL%20L2%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=ebw6tOJ3OogkU5sP6ibZP0RupO8cECdK4BxkIiRPLQSF2xUEdlsjCpkdPYExSF7%2FYEbBslGrDcqaPs6X6nDyGTRJbTsQEEqW%2B%2B61%2FMj9myKEiN0VMd2ZUkZ5vyrv4yUmYqRdMFxwvqCvgTESj6Qur1gMLZjoR2G6Z%2FevgVmW9HtIrGvnhfZT3disBqmPEnrOxaF%2B9X4S%2B%2B850xnglO2P6jz%2BGdRXDNHyGX2SMMsI%2BMFGvbnDhcg%2Fplqxb381Nqapg%2BTW9T7oI2KaqI7h8mXNBZAUrP%2BQg5svBkIYmiqJTfMXa9QczFU3qyGdtQDOa5i1B4UkUiLlZ0DgtY7f1mUxMA%3D%3D","2021-12-30T17:37:39.001Z","GraphQL L3 IMAGE.jpg",1640885840094,1640885850740,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FGraphQL%20L3%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=tUA0rOLBxVdLHs5tYN7TdIEyxWOMXMaNqvMsf0UmyFtFFjgGiWum4NtgnBAxSJnKkKB71AujGbttBYaiVz11awYA6JERdjOoxnTqcMx89Xkj86iMCdd4ol62YQeR%2Fv9Aur8gYjN6Kv9FCu3T6V%2F2UQ8xRDPgdJmA56QgZG19Ra2ce7lO7O65N7xMlWHLkPW5L9uCo5uPFM6CCVeHQr0cpNBJUSSXtKDEQiQQkHUoa08T4cG%2BYb50f3XAJ3jQuphuZUdeksGj1GxULjfMbOSY9EJpnwFmNhViGUQ29mdamgK2441%2Fyh0rmt6iJbNQt43LncnFg9xLDvcb5P%2BwYliBCQ%3D%3D","2022-01-12T17:52:07.338Z","GraphQL L4 IMAGE.jpg",1642009902358,1642009917855,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FGraphQL%20L4%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=V1dM%2BVfAp%2FnfAXC2qtO0MEkyD6XAuUyZKUtShmTg%2FmWPR98TiUb%2FYLnHnNXVzHdXJmFPZUTOa2Qxhm3ooFxAJqoXFf6oelVOq07b6yljnCqHH%2F6Ju2G36KnWqASejalSI7fHyJ1YaxolYQ3GXTmuPQpiyO%2BrhdM6jikympjlpj0dUVz6b7JLKIUGYivlg53UJtX5Zq0scf1QrKEmZGxLIXF3QiwWnG46sjcnSrOKEzDL5NsWBaDe0bSHnvuHKU%2FBdE2FbjUsB5EqQ96custkqneq6hU9IxLDXLt2J7smlLNy4sw9hfCk5CIFc32%2Bt4s1jDjZbypjRdkmH09IXqTF0g%3D%3D","2022-01-19T17:38:38.275Z","GraphQL L5 IMAGE.jpg",1642613898911,1642613910730,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FGraphQL%20L5%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=QrhpWuzx8X1T4dCOTmV41oUfcGyb3wFsgWngLyL7LB0JIP44ZVoxcrPVUi%2F%2BAkIqiaUWCJd15%2BZ07qFsoYYxFmrxzWsCYReiGH%2FpbcFHLCJDHMOD0c4XgNp0fBvX5FkK4UGWJlhdg8wasGX8wK37lXFX1Q7xtGieQWIrautkQn7%2BDC7mddCEx7HO2YaxdNzo%2Bp36FkD9ONLdrZ%2Faypp3palTaSTw8bTY0SnSfkeG%2BaxR%2BMh7DJtiO%2BHPOi7gGkhnSn4jpkNfE3myRJzjiXGaTFn9oaHBghbq9OD3meFsxIxd3lsoB%2FFWRzU%2BkbiStMFqI5RYoz86PiI5u089rRoCpA%3D%3D","2022-01-31T17:30:26.161Z","GraphQL L6 IMAGE.jpg",1643650190415,1643650218402,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FGraphQL%20L6%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=IYs8IyVC14IN366ieY5UJ2ZtVlYNNXRX8%2FtLF97QKZ4oF9w%2B0aBr4jENsYK3uPoAmknP3snMWuzbfLIu1pvRjqRmhf02eNalV29NWwBuPkr8iF2GARY%2FPoqnQuuUQ%2FixRDCS9q%2BbvxTGgea8NGRXEgn8nxEKLNwGTpkKD%2BLmIE3oOR2qITcKDhPxrHDjTHQzOjf2BQ7ycAlHxrHPyT7QwDJQJWAaw44qNtTKUQeVtcFmuLHWm%2FkvLo5imCn0ZugC%2BtRTNSkN0ezZxWnNKGnksqQ3OtwoTpCj7u%2BLY2NfyNid8MYIrUBwvhtSiORWxmF6WJLgk%2FAUDLTtd4gyQj0u1w%3D%3D","2022-01-10T19:46:25.103Z","GraphQL L7 IMAGE.jpg",1641843966602,1641843977025,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FGraphQL%20L7%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=heQ02%2BTzqel7yp%2FaCHKU0n8wK5aCo7v2CKayRU3LIg%2Bu%2FYSPdAzuHXOO2zCB4l%2FYpzIdtjKJJydzekR%2FX5wfgbCcbjWJ8hgvFLtRFYtsUSVpcqa6gtyQ15pmBi8eVeDDrqgayhlpeg8DDrhTr3Mujej22ntNZuIrDFiXD3iKm0mJjsUAyc%2FDXEwxScqEeOhRDeIvHsW6BChb%2FH3lqBu%2BouEsanev4ThsC0Eesua5tNBth1Ej5ZUZwTXo91mxBK840jMwtgBCHDgl4RzreWnIYOXqZtPJ3PBtxjGD4dZuQypCHB8nj1UwVovWQLvh6kKpTuDuHcbX3ido0xf90q%2F7GQ%3D%3D","2022-02-15T02:10:27.950Z","GraphQL L8 IMAGE.jpg",1644891006582,1644891020047,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FGraphQL%20L8%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=tM3U%2FdrZ4jEKwjEBUufeQ9wZnZDkyCoLp8E1h0JFYIv0ueU5A7mDr%2BJT9CHGYwnXlMP5FPbgNOODND9DN%2Fffy%2Bs7IXWxlqsNmuYK74Yv8mybHjAgtR44w%2BdcmPcVdfkFL1EGdYHFqYrsPO8FGU0xI0ay%2BSo3YBqMGUO4be4V9tSRLQlNvjXDexQDM%2BWMVJOlUE4DKawP%2Bdp%2BoHRIWyqcHSW0L8R8bpUiqX2P%2BYSdEOeBLbRXwnFgdymqMQe4RsROTGweFPtxoCmzUnJ00t1n4L31F%2B56jWKiqZgaEGUxUhxCDl121ZjQU%2FzBHMxRLicg8NjaNw1AjsWFXiVyHkVqig%3D%3D","2022-02-23T02:31:42.176Z","GraphQL L9 IMAGE.jpg",1645583469127,1645583493659,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FGraphQL%20L9%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=Y0tFriRa4Ny1VNQUykjZvrHmfCNokdtf2RZ6d5VBhXgFqf8umcPxEMZ3p8mjx6d0OdLL6wzBmo7dpC63EefiRXuiL1b3B3GKYouj0ERlgOMm0PbUcjH0oI6knhPyX7JxdJSFycDmy68JCIPtZjz%2F2%2BontkkwS3i7z7L9uLpXup3poK%2BYhzMTvRTY5SAO53%2FO9kRtl1k%2Fg92Kxo6Ay%2Bha8pW8LmryJTJOQdU0OBKLOoaYPptQCvhACSS6jjo0RkXxOjSGHl07u8rH9gWDZE%2FtX1JIW3BTF5RAAj45e9e3QrJIIs%2F83XPWrUEuOQf2gYGoATmCaYjl5bt1vnNlP%2FgREQ%3D%3D","2022-03-09T22:29:43.993Z","GraphQL L10 IMAGE.jpg",1646864900206,1646864973406,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FGraphQL%20L10%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=b0k%2BW8A53dYARvgkasKlDA4jNkU6h4hlWjX7JG0ZIdh2S%2B9Swg9gYH0rjCQrSMV7DAtA8kOnsVqT%2BmgorW1fRDI%2BL2Y8WiyL8C5kpzcjU%2BuXwK1ZJfF6kJCHkJs2ap0jD1zg%2FBzIscezt5OzeJi0Vh6N2fW1pt4J2PsVC%2FhWzrQXSKZsADuUYqm7jQmnxGC4FHYYDYGAoNqpsKnm2UWWzgJjv7Tl6Rkzpx6WdtfmPjIm66rrnE6c7h48UJCi%2BKaTuYbjAeqmzZHjKE0U7j4RDcDAOUvzQFpy5T2F%2BMQ%2F6nKOUpRFDDKw34MkY8Ot68ZQbw1jbGrLvguWA7%2F804FAIg%3D%3D","2022-03-24T17:33:12.871Z","GraphQL L11 IMAGE.jpg",1648143160938,1648143182460,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FGraphQL%20L11%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=E0e6ptz1zLWPx49G9viDx5Eo2beaMuWqiYRatzNTttpjGxE%2B9FKaJvkpVXnUugSOYBebSYcIiOshckogaNgXQljMSfPvX46a1LflhLIc9Z9NInbxOvJJsa25Qeijpbvm0ftasPZRPFum19lfBkXE%2BPjUcR4X%2BRpVax4D6ek8PeZFZGAP%2BkKkAff7oHvFVctY3gI%2B9jM8oeOddTAq80nmsrDun7%2FOAPLmsT4lIQnBhNCPliWagzyn%2BWTttMTvMBr2DCmyLr1lhZRhXu4aBFSDNMmT80aZUbnFFLvt4EsX2Qtot7SKwQTW44zMvhfXDvVbrIYp%2BVlrUNBGvhMytBCVjg%3D%3D","2021-06-30T19:40:01.115Z","Validating Vue 3 - L1 MAIN IMAGE.jpg",1625081972301,1625081993294,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FValidating%20Vue%203%20-%20L1%20MAIN%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=G0lxPCw%2Bhuazp8qC2rXd7DJsESc0QldErzG9wl55Hfgn7aMkGq1kMXe8vko%2Fu6i1779Yuqgo6K3MXcWunRC13INx1H89kd0qkqAl215sxcGMUY8cRzD5uwrBqVG0qzF0YcTKzUdyTGwdSwR2DY%2F5SV6jlwgHsjunMJKszNn%2BDHOJ9it4AhmglWkNziqYaSe8ffQLUxUEeVqNqyNxpU7dbfGmBML4de2O2o6ij7wszmu96r%2FNtExiTTScroWnCXK9p4TrvkRrA%2FtpXUT0OKAi4x1l9UKHWZqU4KY05j67M1Lz%2Fqad3aNJY2lI4KOeOGjQ%2B6auVOJVsgyKVRN8ITJaVQ%3D%3D","2021-07-22T18:08:08.850Z","Validating Vue 3 - L2 IMAGE.jpg",1626977102800,1626977280810,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FValidating%20Vue%203%20-%20L2%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=FhGiynYi81tzG71TJRsx%2BUF4jhW0oThykhw37W2x%2BJ0%2B0xCBnuMUwQD8uWGosFGc2v6WWC4u6Px9Z61hzexKzlbcWYrzm%2F6lP%2FS%2BiU%2BNEd4TOkpzTfZEMXKHqJrlPi%2FvRf%2FynTZs8EbrkrAodaTkEnVF0GVlePxL4myG1rp6qrqpI8zeQj0g9ZJpv8M3W7nt5YT%2F1Xe2TxdrjJGsLq969ZcTRAcmbCeqO4uCK0Fh3JGo0kcYOAOnfh8i%2BIwXq%2FvJj2fpvSu6U2%2Bu3cO%2FCz5hvkwJfIatZCztAUGYRDVE8gTTaM7DSmb4tPX8eWH5BHwNbaIeySQD7iSn3ycmWLq5nA%3D%3D","2021-08-09T16:38:51.767Z","Validating Vue 3 Forms L3 IMAGE.jpg",1628527103732,1628527124277,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FValidating%20Vue%203%20Forms%20L3%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=mHEUlh1iwHI%2FbvdWVZndSAS4sq%2FvmE7ks%2FEc1Dcb2Fd9QCTjqNNhcdc5nEkMFrGvF2kqDfUxCcX%2Fea0oRCCYoyPNXyMW0NpaepEFdBemHfhiFDD%2B0FsFap8Moc%2FX6UbvQhXXXZyY4V0B2bfCSA2dIRYpzcPVQiev9luImZCItqeK%2BCjx0upLY5TnBcH23%2BUV7Zpz3BOgSESC9Y%2BUnyUcrMVVGiGzHlkFJWPcRustAevJvEcRAje7Zwb8CtDk9aiHsCEm9SYdOgeCb1FAzGRn9oaOwVGmr8%2F0PeoUJe7h1XFxBc53KWjNPXa3SrkVp0lQQDbslfT0AP19eHnPgcRJyw%3D%3D","2021-09-13T17:27:57.326Z","Validating Vue 3 Forms L4 IMAGE.001.jpg",1631553789080,1631554070222,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FValidating%20Vue%203%20Forms%20L4%20IMAGE.001.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=we6%2FmVj7ky98Q3QSGDlr1qK8Lkxb0JfygrlfDqLI1y77Equ3uJF9%2FAlzlpub7S2jOLa9ozQF5ViCoVSZMUEusok9YWd76Nx0%2BgDys43mGyGgMuBelqH61jLyn6DiMryF%2BAkhJ4t59uAgjzGvGSgDWALTUeA9GZhsTHjTRZC6ZoxWUg17qd8LKnFT0U16du9q2r95iG9hX%2FW2BYR7DYTMVgOlPXOgxTwHBrhdKJrIHpSCmG01WZDT9idKCu7nJlPIVRZcfX%2FuNFTTOZi9jAmsw3ksF3Cnqz%2BJuRIAbkZFH0373pscDtxKUHBFIyJ08YweLszhaKF7Vb%2BRXqr1Vcx1PA%3D%3D","2021-10-01T23:01:00.927Z","Validating L5 IMAGE.jpg",1633129236454,1633129252154,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FValidating%20L5%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=mIR5WZH1ss7mbaf7PvzbNwMxs3hkv%2B%2FIGGE195JdojIK9IRBLVQitJIncjctzoWi7fBSxVC8ja4dEXOQSurb0CIKSiE2iX%2Fv76QHogUmFa4Sddt01vqGquoJgk25sHNQ8P9%2BjxJxfd2ybnnjhZsmxSOTm3U%2FN01fv4KwDH5XrF5atDpeOWfht98txwrffRkllE9OqkKANSlvO63creCd%2BQjJd%2FI2APPH9a%2FTVIXXtHU5GNGseuH4Ij%2FZ6yL%2Bu8XzA0jEuRFskD5P%2B7jZZPByXLvrt1PLIJUYPXtlWFH%2Bg%2BoFEThzSJOd09N8GOv92RcLBjM4pFbBRdS%2F7UMElgsxbg%3D%3D","2021-10-15T16:44:02.182Z","Validating Vue 3 L6 IMAGE.jpg",1634316224509,1634316235331,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FValidating%20Vue%203%20L6%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=H4bZxqMhROXDm4pKOIJKJiilPCzlWEyxH5YCCYlzxiR7IKzS2dZRBKSllM5Ib2zP84T5ZfQYaVY0u6i78zzDFpA6%2BLR%2FxQQ%2BLcw%2FduLBWGxIte8WFu6bFepJNvxrPhKUWTjiZgM7PUK9DdYffYZ8wetqScTKmAnlsuEn55waCV4Kv4F6ngkpo2qvK7DiHFGOQxA3tVQMx6UAQwMdSrJR4AoAVYpOeEPYCvbH6pYxrUHUOk0F110uYn%2B6q6rY2qEye2iyL9cV58DMLLvWY4U9J5%2B%2Bk2zVXrKL%2BoeYMHdiHSFA0AFGxnKTg9Y3TvrRA%2FUzztnYiiLLuHixfgUVo5qU8Q%3D%3D",1627575035188,"2021-07-29T16:11:57.818Z","Vite L2 IMAGE.jpg",1627575042808,1627575110791,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FVite%20L2%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=rkY47Mvxm1J3Z2zj69KlLnNVoo3qMeA%2B4yrZ%2FLuz5od4p8cT2dJM%2BvUOgAf%2Bl%2BBXo2%2Fu63BDkPns6bNsEtwSXLhbWr2FAGTvv9kN32v30Y2PctAApKyf0tHq6oQljCQIxr830fWTPLwDa%2FFpxyvWDe%2BtJZbeCEys01DU1t3A8zKuLey7bhCHsggHSHBzyxeWKF2CzNmFsbUDcfovPmaDvd6bwWjgIMT0GgSptX26YCurRNpqoGtvIyRSY9ZIgyiLH%2B3md%2BfjxGw3HiZAfyTtmwNe5Gz8LjlzrjTbngAifVKb6DUnJ7h7LmZ9nGmvzTf6TGIj1UyB%2BhTTc894n4ICMQ%3D%3D","2021-07-29T16:12:12.585Z","Vite L3 IMAGE.jpg",1627575050262,1627575126045,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FVite%20L3%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=cUUuustrZWPTEvg2CuoJptGyBHIZt9Z4iBUaWkxj6PT9HiJZrfkCICSrBtEG7qiB8ma%2BjTCAKFsZHIX7emqv60A8te2NoArGnBUjJZ%2FS4pnx8dattoAmyYqO96BG1EzkX18BtlCGEtPmgIqgpKyezG7XWdgfWpRH%2F05vO40wd22uFj3iZYhLhtwixZkJGzE12vgwSSjKSmgk1j57V83AqyBA92%2FmzqKiuxwEv%2F5drXa8Wx7preYY5%2FIXU%2Bfi7eQv1Hc4rm1yQEsuq2UQeylopm5U2K51nkGJ9v4CRr8rBdpqSn5tJMdFGxBC3AgECB3pi4%2FN5oWjWWR9H9yD3cnB%2Bw%3D%3D","2021-07-29T16:12:29.072Z","Vite L4 IMAGE.jpg",1627575056688,1627575142500,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FVite%20L4%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=tACrVNA8nb4ib%2Fo89zM%2BPLmQ7BXWilzkfIwWTp5uc1z44Rg0wgiCa3iHoolvfyNuxFm0ylUT3mTxSsC9PmLp%2FlMgcj%2FOpILxkGaxo73Xm97mCSnpAms049NXJd4vvxeva3YGdSHZ68zAvjYmqFDih4wOqVi0Y%2BYfiW69s1rEFtG62PEXDCD4m79%2F4O%2BBFRx3IV%2BSUJQM9LcPUCS%2Bi%2BeuEp25oMbW24pFaqHeH4UYavifHpj6Uu1yHMoohvNa9KKz67WU3U4xlez6OwpU89HrhL0cPiSRTgamBozy%2B%2BepbFcrQSj5BLcuXnPxn1dVMD04NpcnxAXfLNTCculEZOIQRw%3D%3D","2021-07-29T16:12:46.700Z","Vite L5 IMAGE.jpg",1627575062938,1627575160203,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FVite%20L5%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=HfKN%2BZUeRsTxii0qRdcfVvzZC63q%2FxSk5MylyaDeK1LGPU6W5t%2FUOyGWwO%2FglcQ%2BPYj2tP5tThylkKskJ%2FVt2Pt6yMsvNXnqyH5C3wMiZbroK7FuluUasDskp%2Fftpd%2BNlAoA7%2FkRhL2JkOOIZbKz7TDNKfXjtpqRnrmC%2BtvRUM9oUOVYp%2BRdPlr9nx6ww1qrU0gDP%2FWq%2FcXobBqoKwWD4AYrbitpofbrc%2FzhebsAQbpwVmRMsPOt5LKNEqT139TAURQAxltVxaNnMszCqqwwiGwvf%2Bt7RaBRBPNRcZfWciVurazTXe%2FToNumUwgkO%2F2mfbKRjcnlen5rQhQUlhAMUg%3D%3D","2021-11-23T19:35:24.328Z","Typescript Vue 3 L1 IMAGE.jpg",1637696103820,1637696115496,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FTypescript%20Vue%203%20L1%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=Kpl36k52qPWCt6dF5YWr9fDp1a6vf5MNrfIsyZ2nGfN62ITS9wG4qJsaoniM3E6WE9AEFHCGlB1X%2FSHWgLdd7HjDUNxysN%2FZUgtSN1UXywzQi9bQIuJti7WZnW%2BtKC3RfoKqTM85B4q8iZHARAl8Tjfv5DawaYJgMyDZSLSLFSJx4xhB5Zy5mwtSDoRPV5uLFmJtipN9qLY%2FpDrAi3Aj6%2Bw%2ByksX6AynAV7KO%2FAQXOuaZ3%2FTDXZ45G5mabbV05JmQosFX%2BuzgxKS7RCAqiexpNjG%2BJWtsyZr1U2KU8FW5qkl93XpHs1%2Br3ED0doHSBuGVmjFU%2FO5qWGzjPv7DmaYKg%3D%3D","2021-12-06T17:15:20.125Z","Typescript Friendly Vue 3 L2 IMAGE.jpg",1638810893690,1638810910365,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FTypescript%20Friendly%20Vue%203%20L2%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=FJ2uPn5089K0itQTNfU4RLPGweVc04gpcFRBvpY01Uc0JUk6p%2F12U1Jcdt%2FHUJLkKVVkq0XV%2FdXTzGsDNZVNSFFjmoWTU4z%2FkdqBQg4GGATdHgQw1jiwQCMMwrK2sJ%2F7158m%2FHwd9OptXmIaFVjDLaHAPKGEsXnDxbdRo0lj%2FiodXmd1JR9uQiUFblyEVRh7qvaNIe1PyF7BHfTzSdE7vBcUnD8CZQ9oJRfdoexphSeQ8lCO%2FHP%2FKCNFFmpCKyRyRmDf94DAf3E5al97u31VIzMELeUDqz7lp%2B3zA%2FK3SJNRUsSTKxVejgI%2B0rT%2B29zWRdkR3yjxJlzyIgR05x7PNw%3D%3D","2021-12-08T22:09:49.802Z","Typescript friendly Vue 3 L3 IMAGE.jpg",1639001308393,1639001381559,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FTypescript%20friendly%20Vue%203%20L3%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=Up%2FpGoTaQ0oxhETNUDSBAqducmXpVQlunG5ZqPt4OEFK9WjCWr8pn2rit8IEs4jnFbK49e%2B0Mo3AvnQdIoa0XcOEFigMU8Fg%2Fa1mlOZXhtP2UwJHgW0ELPbbiGkWFZ1FgJyCSAglKd8Na%2F%2F9oCL0a5GoB2SxaKTRBfBJ6GsRZRGVfofjWUlt3%2BC4nVx%2F1pfijAYV6FMhiycf613NPb9Pr%2BCc%2Bbolp%2BluPC5EKPo39XCI172deI34NHlcaj9%2F2AfUV4yy8mpX5lOnIrRXJ6coV%2Bi3TMRiuv8qrzOz4yV513QXo%2BenmtwQF4%2Fe3ZPqOnB1lxKtLEq8YuCckaVPrIicVw%3D%3D","2021-12-10T23:18:00.716Z","Typescript Vue 3 L4 IMAGE.jpg",1639178247083,1639178272766,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FTypescript%20Vue%203%20L4%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=dQeyPsbiC2rkNifyKTvi0KD%2FbpVWevttxVMN09jzwIYtbDxZWMBNzByDnXmxKbcTj4dYymZAQrEoSZrZCRuTFYvy0IWyURMLpn2iJiWy%2B60QIhYL75phMDex%2B5Q2JDZ5Psi0yrfiN%2BLoswY3HVnqgiu0T9V9qZDubpx7aMioIpawi2FtoIg5B66AQfPbDucUBiUqpkMYV5cgooWjbO2x1DEaLHDdMv60COIY4LaP3WuDa3b8OCV300T4UYrPXIIQ473wBf%2BDRifC6MniLa84MUo5K8q1oy5kbmcFhN%2BJStqiCU9f5UYkl812N9BAR7l1KQUD2Qg%2F0lJApCB5N9UrQQ%3D%3D","2021-12-10T23:47:32.900Z","Typescript Vue 3 L5 IMAGE.jpg",1639178252991,1639180043843,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FTypescript%20Vue%203%20L5%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=sTxf8wDKrzUAoniUvnIJ3YCUpH8W9X6%2FR%2B4PRopQ7yapRjWxpm7Z%2FmUaDrKUyKkCCHLh%2FUhHKYDPVZiNY9Q4iaJjJzsHI2PFKcRujI69bc30m%2BgswqU6Oh13XIWi1Zxa9pyFnzaQ689vdqe8IvWjvitUQcimP4U8pGFvqB0usnM9VQ4o90tuo5Ht0PWQ7P%2F7Jhy1OoRwflBMDR49XtH56i9m5h6a10mZtHbe%2B5xaAw4EQJD8np4XLWc7ushWJ3qMPxhqBNcP%2FnDhWPs%2Bts1sIEqoxcy0Tgsy9bbx8ABZYAjA6RJ8ODrpCTM7OpYZQj39hd5XibgFyVkzfve%2BTyuSdA%3D%3D","2021-12-23T20:55:29.669Z","L6 Bonus IMAGE.opt.jpg",1640292802559,1640292921205,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FL6%20Bonus%20IMAGE.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=n0tTXdLQB7Nt9jmFe4AOEdn%2BA6oYnJaMyB6j%2FfJZrKamHcqloH%2FcnSYxsHLPrujNuvWpkVt04NUvto4Nmxizzl9M4BA%2FBsvcMZT53iNGWQ5pFX3XkaWQ4S0kIce4eqcC4VpPTbrzfpzup2cBMZeWjMXUivnRnybeISNMX1DnyND5149gh6ndyZ%2Bt%2BcO8%2BdpQvka5VhD0wi4ZgS8MUPiq663TarW6A%2BvPxj5bWTyi97L1ySeQrEFir9sWHa%2FXqgAELXuG5FJOHALPzkPw6bbeY9Wg%2Ft0vTX6adcbx7kIRRcSejZml0tzwhGt%2BOQ2DmCqsqS1nBqOlZ8To2qq9MfVgEQ%3D%3D",1646168428130,"2022-03-19T01:10:45.161Z","Pinia L2 IMAGE.jpg",1647652220950,1647652237681,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FPinia%20L2%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=btT%2FmplY%2B20Sck62trWAt51yGs6Jfqw9eazrPd%2FyOGZfjY1XQUd1w0585mlaVmGEXGJD8qQWLi%2FNg6UQ23S3ft2NGCLGX36pgZ7E5%2BKVnNSa416uUZ9Axt4A8EQOxpDIRzASPfvXiAKAdJYlA8xxosISLhoA350PtQF8cQUmxPGTe6uIwSsLdMBXLJDtky95IE0czMWy8kPa2jpYREo%2FmTnN0NIgdko6vK8LCBPmPl%2FXUfKkZTIs%2B88JG4GYqYzvYwdB1DHxH5Cz2J8IegtNItAfbyqQu4CQl37P1sN6dacH%2F6MhKtgVl27aOd3Jtolzm%2FeiOx622YancEuXM8tD3w%3D%3D","2022-04-03T19:02:37.347Z","Pinia L3 IMAGE.jpg",1649012524200,1649012549502,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FPinia%20L3%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=AMqHzTRmJXKilHSKJNPvwS2VDIytu1VoJNTJA84KBM3DE0zmIhgdwrPiLzuOn8CDyEn4lcFOpOu1a%2BI3Lwk0zWGZK8fp9pQbYaWNO7dPZtaj%2FMn2jEJDRDbxWWLtV4mEEe3TDKAbLpfhrLXL2lIaacy%2FYh%2FvUBxhAJEuYYrW%2F3tOla9LzlG86rUrF%2F8fILkr9Z2j%2Bfh8Yzd524xvEydvNFleMKP0%2B7J6GtK5qop7XXPD0uCaEciAsQbQi1Cum86FyBxrcxDeSa7TEiCgVV%2BfVuL3s6PIDntSYLY8w1oPo1A0x6YY4WeBbLF8gDK2Yj13mGBDpIo48n4zcdQQ7S8MjQ%3D%3D","00:02:41","2022-04-07T22:36:23.505Z","Pinia L4 IMAGE.jpg",1649370922597,1649370975077,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FPinia%20L4%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=FbvaHfIl9dZHYF6hwESjIbmCEhFgKJ3Eif6vNzPaAOBD4n695dk%2BTUiLxZlsLl%2Bhtt4PeWcpqrcNMzNIx%2BCjyOeJF1ODhjEUGWAWxovUV4Ut9vFypfMz4a0nNLuNfGUyASTqLVJQ6OsHCzYvnGNFp5gAoGuKtO6dwqOFKd18qw9lToRrLX5jgIxwFuni7z190zpjZnfHaHKkQBOph0F4MSwY1J%2Fo4jTVFejj2uKCaG02L%2FAAlJbrLynvhBQVMZGx00PR9vyibq4p9zt%2FjprzEkY2GyMHSvULhpoxOCrSO7K%2FjCifSHj4TVxwib4EQKmU%2FMI7066gSKMdQ4jBc%2BwlSw%3D%3D","2022-04-15T17:07:41.134Z","Pinia L5 IMAGE.jpg",1650042443364,1650042453545,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FPinia%20L5%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=BmMRCEiOZuO89rfj6C%2BTciAEBCAVbZpWqh7fDpqzAepRoykl9VIkjnkFui9Z5cHZ4GjdBs285sYTMVhXkYbGT%2FG%2BZ%2B7BTpIN9eaOZflkNeehytSxnAQgqViOhWbFSP3wb6XVo%2BxtKfZWGr26uMiPMpU1o1xYSLOzRtR%2Fp779HYqs6QMqrrIecWVu52oV6dFhB%2BbE25phFCQAdtb5fIxSTWc9nEbxOR6fYguqvVm3WDeQ%2BMfFBx61ymrrtXX1H6SAfHrS35t7edhLemsrpXq4%2BpHNsfjHyR3XyCbWOShY389uwCiM95WRJ4MXBgjyjwyXAPLPx4UOghSg52showvPWQ%3D%3D","2022-04-22T23:32:02.557Z","Pinia L6 IMAGE.jpg",1650670297537,1650670314274,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FPinia%20L6%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=MLP2qUxJRn%2BnFCjo9uhdwRLIWy%2FUKbUB%2B0PDulIfE7jwvLrxoyMKIvoK9NEvMnR299LKVdNBOrNat4WTaXFCyplfStyttKGykrQPwroLBGOBXfHewCgdTOMfL3cbNugs7qzNfl98jkRglzr1v%2F5K9d84mtTJr1XucoCGkRUGlYuB2Zc1%2BSW0vQSKTa3S3%2BOdSDc1gzoXEh5r6beAItuKSoOz%2FhsifIN2RxynMdAFv2OGGPaidA9mew5E9MdN6%2Bk0Z79TLykAbf2mjNFubYZvF%2FPSF%2F%2FZY2ijDTa43WfWviwoqZ%2FhU4shaP9s7cyotl1Z9tydzmkp6JWG9rECqjb2bg%3D%3D","2022-04-25T16:16:53.844Z","Pinia L7 IMAGE.jpg",1650903333816,1650903406147,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FPinia%20L7%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=YnhZnBDkI9WUr4PXajgZuUjdxXBW91QxJD8wbPlLP49xnl3vSUivxR8%2B50TOyBuOTnWo5qKq7%2B9dS%2BXwpjklX622wuguQoTugISy7k5Q8DG5sLyv6CgjakXzLfKIlaQwnr5MhOG5ROsdT8Ab%2FMwgkTECCtRlkvi6H9FukLSB2FDKdPt1ZmdURdo5n%2B05DGjVVIXgZAO%2BzzYYyjVrW6Ocd66pLJQ7z9bVH5B19vxeLGmDKUzTB86EVIgBTeEXwyNW3puCH%2F4sUpEgUHiQ6c8t5nqVZxOKwKQKYwfmcd6TT0GDeSEttIt6u2eAo2H14IakHQCuCHjdx3WGKVWh9DVRHg%3D%3D","2022-04-28T21:42:05.431Z","Pinia L8 IMAGE.jpg",1651182102673,1651182117183,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FPinia%20L8%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=ScmxCJkWYJ4Gg%2FMB4aUgWy3YJEngAHqPC9PE8WTZsC8RAcKxnM%2FSzzjLxB2RZCgM2WKbXWZoRhMy1wV068xIcHOkHS3r1Gd9UDoqT5SgO7gYwmY9tTluHi2QVdpJDRIn4gXr9HJ2UzIZfo4gZc4JnW2vGZzzl3jCv5Ot1En%2BvT6vMsxK4bKO%2BsEGd8J6FWN7O6ksbFyEhxExBrpjmmnILnTQVJA8Wjkz3v%2FYOHu7kLGd8KiEwHWyHqci3BGUphYvF0xneiv12vDI0MexP9HlBPMpxePM0Ta8ByZS4o6wgTTwiu25hw%2BGfFe7hTGLCrUhx9U0R4XUNll9tn7hzvGMDg%3D%3D","2022-06-24T22:21:31.837Z","Nuxt 3 Essentials L1 IMAGE.jpg",1656109263274,1656109283017,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FNuxt%203%20Essentials%20L1%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=hCQvkqLyCogiNSf%2B%2BD5MdzpXAtBnBTMrSHsRa9Zcc8IohBG4YXG4zH%2F%2F0adXWKV3Y%2FcXSCkYwjap2uIeSrzerGa2pjDZZMZHdc6fghejIz23XEPZ%2FBjWZWb8wJgQrWes1D4S3ikquigYY9LGTDBtINnkkq7evmryNXgRih4%2B9N6YfWlVDQOUSokwTxzwXlnV6O9eQvGywhQEB5uqj0P8RSsrLBJI1d9vy4tvbbvVqTq6ap9%2FQcfImOVckymUvCHxEOSXA4nWm23DQSihjmYaU6jNgK17d%2FwoLKpt0liOqrB%2B2EOkfiwpr68STyEBl57h8O%2BRJ1sNAoHSVrJuCToxRQ%3D%3D","2022-07-02T19:14:59.947Z","Nuxt 3 Essentials L2 IMAGE.jpg",1656789272899,1656789291759,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FNuxt%203%20Essentials%20L2%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=vwFLallQSBiHYiuJy7hNaK1Pp%2BUiQF8DOaNPLs01E7w4m3aDlaEGij7Czamxct9z%2BlaLNLUYh9jDiuV6yTeLKLP9Pq8E1mdyfWfGVYmbPlbTVL1Bsl5OEk6A2roerdHs3hIWGkxbj0ftTuQzlEwWDeL%2BTNoWiQfo9MsWl%2FAsv57Dhe79kxMRIy5G6%2FtDaRYPJM9CCeKCmuyiyDtL2QNQn5jSNO%2BA38avLkmZawJkz4uQ9j6%2FqOwAn7oQwm1%2B8fxEy64H4EG3CaLChA%2F2p6awLv5H3XXbZh%2FZOsPY%2BKln24qI1smbmY%2BT0ZmRRIno2n2MmXtDNXDPDxFCLwfAXHdVIg%3D%3D","00:03:36","2022-07-29T21:15:23.116Z","Nuxt 3 Essentials L3 IMAGE.jpg",1659129294691,1659129315120,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FNuxt%203%20Essentials%20L3%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=NFEY8wD6syZsrObjXSRuy%2FsGJMDlZ3ySGyT3II3HoFIpi0unGs1K1lCoCt1iQxbSTPK8z7895EHcTby8lEsrKX7rtL9Z7jOvpyhK1Ieh4qZRWjuYr3sc6Xuy%2Fo1JA7KzOs89QL%2FswCv%2FqQGWqqF3jZY4qqcxgXF4Hae9REEnV7AlXgPZDwid9xT3xIB2D4P4elH5DsSUjHT5fNt3LJD2G%2Bcsw%2BU%2BqQ5qNPFED2v4rVqk3ITHlwxHkPxjOP6s99DhvMuvi6iezrRvnMNWdgySDqzIpAi2MNPVbuB9vR86JWAgt1zexVIl6c3pvRDr9rBEc%2B1%2BLYcqlv%2FcabW8Yrr1tw%3D%3D","2022-07-29T21:22:02.744Z","Nuxt 3 Essentials L4 IMAGE.jpg",1659129703030,1659129714869,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FNuxt%203%20Essentials%20L4%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=WnXBbmfd0MjDANnxAg8xUDu8l%2Fojvhewd6zvsdLRR5KDzIAYxfFJC6DgKojspYH2UEOGTI3ikux%2FxU1siU4umcHXobOgSTPbto7p9d4vH6TS2K5sNb86%2Bt%2FirEIQhxPtyd0YJ89JKY8Beck8mUi3FC6de%2Fo5FMmlbbeJ%2FMhbmqE6KdWZPnsYniMFpAjU2iUalDHfynN%2F9J6LgKlksHZlqtt8%2B0YW94h4QL%2FpEBA4Yczra0rkykNbi5Ycp4WsavvmRkknlguMJlmt0e%2F%2BQnFT8K19PZEFYpJ3U3DpAepT%2Fp0Wyuio7isX7aIe80cmrZEm16VHCIKhIRsY9oJh5hCCmg%3D%3D","2022-08-11T16:26:07.068Z","Nuxt 3 Essentials L5 IMAGE.jpg",1660235139059,1660235159193,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FNuxt%203%20Essentials%20L5%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=e26Emr4s2UfhF7RPKbYYy5kaVTxH0w4nfDgs1uKW3lnnt2e1R7kBAvgCYTBnPL%2BZPXDmnwMYg6zi1IVIHTRj4TtiJ5LKfSiD4D1uWqNQdjKvEjeMiB0qqO8WrnciimlBgZfrdnFMG41N1Nob34mu%2Bpi38gKsDZDipfIvPmIEMfJ6TzhpqX3xgu4gAgJylttqs88n%2FLY2liAmDGd28%2BChhf1rzt2k8ZIcEwuUFBg4TJ5A07xgZ%2BPrOgxMCGTeQNvztCrQksufMmHY9JEioGMbouMRo8ntPEDumbN5F8snjtAiHvI1Yg%2BTUBsCw4nn4L5j3Yna6tzi%2FWmj0yYTBk%2F1MA%3D%3D","2022-08-15T16:04:53.456Z","Nuxt 3 Essentials L6 IMAGE.jpg",1660579464123,1660579485016,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FNuxt%203%20Essentials%20L6%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=qPZFiqu%2BvW2L4KLk2lpcmemPd9tUYjHcz8221xmAy3LrMUJ0gNR%2F8LpP43bH7iGrq4ST7jf%2FDrBZT6RSc3ljtflxitjb31FB5eWfthWuqd2rOUI2kdpGTHma9mG4K9t61ConbHMSwkz6aOXHuC3GcEgQ%2FPWz7yum3la9p%2Bt%2BXVrTc7DriYxe%2F8j93EvbSlCFGMMYMVA6ctnEDhnrGTdICES3eYQ3enP74%2BZu5H4SUdY3EB5CULdWH%2Fl%2FWIQQOXA3MlFM%2BMMyENQ4IY2CJwkB%2BktE2%2FCQc6NizcgK1lhQVRZAr%2FfM%2BRO43jBGr15VrI975RwgJq6w9zpla%2FSPddtHHQ%3D%3D",1651863360466,"2022-08-24T19:54:13.902Z","Pinia Q&A.opt.jpg",1661370845277,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FPinia%20Q%26A.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=BBhMBdar2hS4xGSWPXic1Vyn7Nlekcw0NTBucWyBMfv4y4dwS4jCnQBBahjcijA95yXWt3Jrx%2BBZBCp9FGWAKJCXabR%2F70iomDcoRJD3ZsyhS0074sE1wSVOLK0ErRatTW5LMn%2FKx%2Bkpdq422nWSaZN%2BfznrVBpTnm%2B%2BpofZMBfjq4%2FpVowjxVsSn9m3OecLZvIgYQiNw0KVwJu9N64Ut5YrAg5dfIhXJbQotorLzAypympVThDkUSel%2BsCSPc12rSkz6LH%2F19NcMB%2FXFQdLEh61Eg5bn7sF0JAkAw4nYzns9fXc%2BZlak0SO67MuvzNOzu5lwk9nXx93JzL0rnPuiA%3D%3D","2022-05-06T19:01:07.411Z","Pinia Q&A IMAGE.jpg",1651863658970,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FPinia%20Q%26A%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=mw85IIEhNGdowvRO%2BlyBzyW3qn%2FzzfCvF5nKZ4PPCsUXyN9TTcSjWnMAnf4PcMzX44WRDFjrXPcmTcSZ6%2FLUdKiU9I%2B74q0MV1Dyze2RTNtDhuyDVaKG1SaNEZz8ziUNayOpTYPBrzNDP4Sk6osGJBUTzo2FugosEseRocJvarO4%2F8oE44eSkoPxeKC%2BIO1N7hf97hAAQDx%2FKfQ028NqJMUTSs62AVSROUUpWeOpXIDSXGLGQzc9hSF3cB2csxWy1KyiGtJq48JV67lVnYy4hFc06btGC62N19aIWkPP2qjieeYDmHyCmB5U4A2TwSMwlQMJtOTMBa7YORsZceCHUQ%3D%3D",1654201140698,"2022-06-02T21:00:59.982Z","CodingBetterComposables L2 IMAGE.jpg",1654203636891,1654203651433,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FCodingBetterComposables%20L2%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=rxDzMxAJUeDvEvO1P8Y6pUQy%2BgNHxhaX%2BOkv18v1fFgfxFzUN3aJfeMpxkWT%2B%2FuhVhY%2FjI6gYsPsVne9QXGNNBl%2FwPGPrdySDB5k1HFeLG%2FsK5sQjUhqOJiwAWakbqMsOPl2mDAiKj54UOaBShHTptpWYGID73fDNXi7%2BXvox2g1TchhfcOpI%2Bf%2FdaiRcfjEmPCjLNsUnndAf1vK7e0x5TKo3XkgfHmrp12XFlv80QAWaMIdudKUPWKUyBM%2BqnwQDyX0owKX1iPIely%2Fe34qycyikvN9LeniYyo0JliDbFcGE%2FMTI0cc90VlUBMwwieoEG6uoB1As66k2EU5A%2Bq6vg%3D%3D","2022-06-10T20:23:25.458Z","CodingBetterComposables L3 IMAGE.opt.jpg",1654892563551,1654892596432,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FCodingBetterComposables%20L3%20IMAGE.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=iJbAiHuvpY%2BJ7RnGjdbIN7esaMgqMmCBQ%2FAjwTiF%2FD5i3V2l2kKfBEwFjome1BHoZ3fUzZx1syk20N%2BRZ0OPCNex7bbdp2l32zbU0nQpWsesc%2FhqE9Pp4%2BP8wkRTQbi54WeQqBE%2B8w5A5YZ11%2FH5LuRYjAg7Olun9mLTCfsBYzjFtukRkeC7zaz5bgcQ%2BplRYRqxVc9Rb03gzzYXrcFeUPFVU4qt%2B2ZAVb3SOedAUdvMoiuKQC2%2Fi4k3IkXD%2BW6t7lOea7YrdqRckGslw1VbkMp8557JxgQp1eBfZn2%2Fytuevydt%2Fw32mpU5JrbbkgR0Ri2SrjsaGVNv8EtSi%2BTWlg%3D%3D","2022-08-03T17:59:00.161Z","CodingBetterComposables L4 IMAGE.jpg",1654892568950,1659549531943,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FCodingBetterComposables%20L4%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=bLwkAXbLGpM%2BndM3I9KEvPVRv8nLSe2WyAE52chKRdXPHa6ArlIDurrOP0T3I7EJ%2FXk%2BJSELCn6zMsyeXal6QFNIXZ3pmwP1KrkWdtbwxWsvrl42S2ucoPkVyizX44OVYRD9WgtQnhlF1IJkQ4NzYJ4cCjr%2BuTMqHAGNOXHqoNX8YpzOI2uafU3tAwxo8oyU8lSDQTGcbBE74Vh8%2BZHJAf%2FAD6QuNBR4EeIxbMW7eeQ5jsg1km2e9fRyGFd92tpei0ZuR%2FBh5XlJOhoXEk0rOxZcpH1CQ%2FFhefWKHB688I5L%2BtHJRZCMIh%2Fi924k9Fcz8WtNir%2FscBW%2F6ImjULlX3w%3D%3D","2022-08-11T23:06:13.733Z","CodingBetterComposables L5 IMAGE.jpg",1654892574147,1660259165851,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FCodingBetterComposables%20L5%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=exuXhfpw18VjARstWjpWlBVn6iwdfZwWcwHR47EzMWMyg0VlXYhveMLMIf6fnPXvzWDHLM7cf7BIP%2BztLI6H4CMqegwzA9RDyxNWIEzYZdt8nLnEosYx7Wj6SmJJDN08tt3a9zdxQ4lorX0MOiO27yhEpdK5CjTefdFjMLKJYAJ%2FW2MjeqQomntK7eRaWgEfGPrT0WqEghMgnB%2FuITRtLUqttvJeqbhZfMsZfgPVnpyfg6qcMAcUw4Pr21A2D%2BGPx8odxCUJ5Dzk8A2x8Lv7g3%2BkRSpz0o%2BdwFTPyhaDS6SgyzpOGv8xdj%2FWVwAWq455%2BFpaQWLw8WpAfk8WSb3tGQ%3D%3D","2022-07-14T21:28:45.706Z","Build a Blog w:Nuxt 3 L1 IMAGE.jpg",1657834114063,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FBuild%20a%20Blog%20w%3ANuxt%203%20L1%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=XjTwuK8lzH6KYnAVJgASNvU061cwKwD%2BZax31HPDETLwqqjLdBzmQtwk8jZpP%2BTQLoHV%2FLDjLETAG2Fsy1AZQqBvkT9AlIx0EW17ZJctM5NZBu7O7xkcWP4Ml%2Fkk%2BliMKxswWOBODXmCsu7uO0vLUKLrw33X4geAbJxTDcUK6gQrWdD3NGcKSumAU9sBETV0%2BjK9yildrwmVGxClyhppWTwnXpg0wlONfCCsKG9URSO%2BrP71eua6Ko0bXEMx4CLNjyZUOUoZUe4xoVtZpOio3ACjZO2tDvEoUeqO07tI1EhmS5tNLModuMeoDWxOCuTS6qtAwb66krRAajVnakWxAg%3D%3D","2022-07-21T22:11:29.878Z","Build a Nuxt L2 IMAGE.jpg",1658441481746,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FBuild%20a%20Nuxt%20L2%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=Wf3Z1zBxhdNj2GvOm7LhyziB4gIycTFQq04VtKDpIxWwXVY3cGxbp%2BAWwr9yS2iyPDkMX3G4kV%2BbnjBJETxttmbO%2FWX6XjWAS0IFmJX6NqXdFYX7XZ9w7rU1K2fKNXfyst%2BntA7hYUtYrnxWcXNisCFpQemKurVJNb0dJCC36zeMtZW1qFtTp6%2FyJJd1VXoL4ZRc5uL9YB%2BlDQ29I2ueFzjBDvYJHIeDXy7VC%2Fbul41C8E24g5nQxfVrTQiD8pcR21c9eCFZ46%2FW2fzjIGnfOY1nxbX0dBLJVSH8upAJ5Hsux8qFybCan3QpNQbiQ2c07%2B8zufNSv7M42EBXy9zOjA%3D%3D","2022-08-09T00:00:00-07:00","2022-08-01T22:12:43.145Z","BuildaNuxt L3 IMAGE.jpg",1659391954115,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FBuildaNuxt%20L3%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=HYnuZi2n5s07W8VFs%2ByJQhKXfL2UYEBqtQDh7HC%2BwLTdUpHrUm9vujhyoMfRvzfQm5wji%2FmHD8c9ugvBqMXEFLt9x0AN0h8xHbuHAUtrkxr0ilbxO2Bq95gfJxftJ7%2BH4rZYTH6gh8juobTIoLVss03maaxIaJvUiOT1kd7oFniRrqaEh50O7KXX%2BM3dh4C6cdbssRgOpE4GntJMNk7F4AAf4jeNlpFF%2BXBvnPG1IA54sZCcZT8ESgO7yisQM2EtcNjA28KJKQjd1KKk3aYyZvMwayaLsZQQHBH93BIVr7uHrnivAhJXFAhE9A0teNC5cYkD2bFBeBxa%2BMLdn7MSxQ%3D%3D","2022-08-08T16:55:58.691Z","BuildaNuxt L4 IMAGE.jpg",1659977748127,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FBuildaNuxt%20L4%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=kUoz6mKdAKPWoq7i2FMneYQRyChWFoSQt8HP9%2BLkDvW2Z3%2BzEHCZjINU7pCXpVYItmD3LZPP4D7ARFUd7lGEidseXbTlg8F3rcXTKjPciel6b0Il5kBIQ%2Bm16ERc8i74HWHwo587g9s8mOiD7LJhz%2Fs89EEPf1Yrp2FwdAEyIE3QSKaLTXqn7lV%2B1mlIWYCKgBH6Cmgu7QD5%2FkeObsA1K%2BDdaguHolafSUDrfVLx6OXMGgz%2BDY2ofeufG1zKh0AYDug0ZfDY7b6WtJh9WnIwT8oIWkAw2mcMzaIufy9HVFvZzDzJkaDBcW5dV%2FbAdeHKcXrxzrzY%2BN7U2347dypnxg%3D%3D","2022-08-08T16:56:36.765Z","BuildaNuxt L5 IMAGE.jpg",1659977787512,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FBuildaNuxt%20L5%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=DQO5F0fESvXqJUA%2BMjxT5jGTh9Tu2%2BMGmrS07UqGuyyfbUZCmDrG6eVLxTnznm8I77g9c%2FYspKt4QKfm2hUzVmLk2JOoQh%2FqFSpcn7yjzND4ywdNq2sAwMd7pNFrEfRIdljpsGZwsjH51pbiBki%2B38UoPqbgzhZ8hHFkI9Xu2%2BlQvR7PPikyMsxfTMp%2BZ9YxIdd%2FUBNt%2FBNLX4hLUIOAQl8r8i64wWlWkl68nhM4HFekel7%2FHzf7asxdnzjKZDB%2Bdol1k1PTQcl3Fiwl1fsKx2o1X0ekxbihF5yY%2FIlqTYmrAcBShRvh6wS7%2B6z6pALZHDunpRKqoIWq4MGE8uqetQ%3D%3D","2022-08-08T16:56:36.909Z","BuildaNuxt L6 IMAGE.jpg",1659977781966,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FBuildaNuxt%20L6%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=BMdhovPC82a8Rlath7KWR8bPns2eK0vL30W%2BUzbu07CXLyGv7y9mXyT2JWm5nWrXRFq0qbTsDaDW0j01Ws3iMjCqXlV0OrnvzuTQGVuMksADBnlfNrKBhcZL%2FRUV1V9p%2F4YmddgGNkrhwRq%2FD77O%2FAsBTPo4DDwIqbu%2FuVRq99uKhF3ywsDoXFTyeIy48PxeIvaSbQv7UYIFw5X8mn8QTjKlrAcvCTh7rT%2BQiBx17WUxR2zETx10F0loAR4fP%2FiO1%2Fh7kex3zvUu4KwVCjLD6BICmbe7zgZ1UbCLcdvHXNRRnR%2FoZRaqCLCq7Bt%2B4NrBmkseRF8nYcY%2FdMSxz2EUtQ%3D%3D","2022-08-08T16:56:36.613Z","BuildaNuxt L7 IMAGE.jpg",1659977781965,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FBuildaNuxt%20L7%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=XShv9YbhajcJU5Pdxylll0tJH45bNqRVse%2F2lkxYef2r28Kmj19OxlMNou59d7lxeFqf%2FPfADh2HqKlP06dIVSBOdZVz8n1yFAtFpmc6CPFe0t1giISy9mWpAbD5it469B2x9XbeElgyz8zbIwOKv1T8JBWHZ5zCdbZK7LzXt01ffc%2FDM5BCn0k%2F7UxbaA5WrMk4r4NsioaCYexx1TP9qhoNzm5g5n9FYayFJnqeAFv8iKIfJgDAYzyawVGw90xybd6j3QQKxo6FCR1%2FDzlCkRu5LE8bhaTg%2FXIzZTK%2BJXWlCGmtJefB7zpK%2Faiog9Apyk%2B09O1qBSNl3g1ZU%2Br16Q%3D%3D","2022-08-08T17:41:35.812Z","BuildaNuxt L8 IMAGE.jpg",1659980487709,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FBuildaNuxt%20L8%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=qZHu4SRVHI6rbwoejAUtGNSr7CiVqwhqcKE365vN7eecDxV7gENZzcbI1n9FCdARLks%2BOLLlX3HPtDy%2FtgoZietLLGhAabhHlZ6ULdCsbPSrv9gXDdypkPmnWZM7YCDuOVIqKObL50ji%2BrK4PwxnvmEgLc9Bnyyox4GwVU7EzMr%2BAG6ZGQyT3Gtct%2FSKhUB2abf%2B%2FzvL989Moq1P2zs9p6UGufEnDc5WVtND%2BB%2BkwXuoWelPEpg0fRcG3j9qxKJoa29byFsml9jqI5yrJWnRDN7aJtMnInXSPrV4s9NMfSiWPvqGEHRQAPIBFKkbw%2BVYeWvXr%2Fz3lJr6QLlNOdR2tA%3D%3D","2022-08-26T00:00:00-07:00","2022-08-19T21:20:15.257Z","Tailwind L1 IMAGE.jpg",1660943936228,1660944006279,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FTailwind%20L1%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=ISSW%2FMrtGmWyhlmyPPHL2JJ%2FvJuoC8TG211JIi6QnsY913FYdKtmdadLp9vAxRWjJiml%2BOS2aFeIjX2PXSmubRtdyJ07irv6OAIdSm1H%2F479y8c2cPpbGotJz2r%2ByRQ8w7BZnA3Ymhu%2FDob0qFiaiZxq4XnK7unHLHrhvC0ZdjywQlaZgloZl0542VDWxu1Rfjc7tShZg1S57z%2BEonBc07aI1QNfXI5hudDULwwVxUWFPaNTrHio%2BcKJzz9PlbHSTPjdqrCte1QkRa9OWlIHBshPjH76NFBgDujZYhJzFItO5ZkxIVPDykclfqhHd%2BMS0CPMWGVMZ1PKlAxEomELJw%3D%3D","2022-08-19T21:22:41.980Z","Tailwind L2 IMAGE.jpg",1660943942175,1660944153613,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FTailwind%20L2%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=m3OH60%2B38yQr9pGPSO6ztkgl4Y79Z9fm%2FzB33ph4Kz%2FxZryWJql7CKK%2FqYBSvquv2h0kHVCl71Ca73vCu8gLG2zO4YjV7xU9%2BxM%2F1GcFiJC9f1JBwga6kPLt37N2YAymEPGLmK2sqQtJvSyZYRN5LDkiIt0lUXla%2BAr8TX27FoNXdiybYvPloAGTRypAXh0p6doWP41alOIullSaJZeLsoeWsTTKDs9iM%2Fz132sEZOFp4nzcfb7buMlyHH2ZGNLCUSygiOSVxx7DXGZg51E2%2FdmCf6RipLxo%2FHflUOt6r925HpPeq5HhpnWsYH1EZhbLnaM03EEoDvYzeOW8jfqcvw%3D%3D","2022-08-19T21:24:18.716Z","Tailwind L3 IMAGE.jpg",1660943946206,1660944251212,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FTailwind%20L3%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=EnOC9z0npwjYdSpIV4SYrufwEl7HJaPSTsicIaJUlJQWK2bZFtVcsfEoSQxVLjtxKtH2FxJGFOL0WwCsgD6X%2Ffg%2BbTbmhf8Qen8SXOCklEoBb6t8bsvGKnD74Fxdg%2BX%2Ftgy8msGnKpVe6lkJmOdfCJpAEAYhRS0m1HQucsBDsMyZx4xRPxy%2BPjANR8rZWiq3WY1G7nfAVcsXBgzesDss1WXjoBrNKvSZ9W5pntEXl7bszGfzwZfPtPa0u82W%2BGC2eXFF3vwbMxZ9B42HBHrzivIca9ToEpIcYYZayiYt%2FBVpzyu%2BON1BTBv3Pm2N6siJ22CEoyl5y%2F9EqKSJJZ8ZVg%3D%3D","2022-09-02T22:54:31.475Z","Tailwind L4 IMAGE.jpg",1660943949724,1662159263652,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FTailwind%20L4%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=qA%2FJBxuHmvRC%2FIhy%2FQCpe1d3DApRxIqcuz0trdtgGSA%2FsTgMOzB8kdW8H32IxtSL201W5rgdaglhYYOsyzyDVuCVJT3vztldAlWtc3D%2BLSvhyc8A1ZmJ5WS9lfgPXsXdY9gBFn5VEt06fq%2F8xBeDmcUf6VHvk6vmIYXh1m2CIUS9zkJtif9CWbXUNMQEApywSxK%2FrkGQLQFIrrm2n18NhfuP%2Fz6OP0CfEN7mv%2BGqiDWYlpsIqOgc7QaGztM5GhZbewRRzn5PG%2FclXsW0huSfs7Ma9%2FUTOOvZVjXAOiMDfug%2FsHp%2BhwJJcyc5jz2sTOSE8H1x8VZ5Kknj1T4BGG2g8Q%3D%3D","2022-09-02T22:59:28.324Z","Tailwind L5 IMAGE.jpg",1660943952923,1662159560681,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FTailwind%20L5%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=j4ZWw8gIxKMVTbi1rgDcYG4m08kv0jO3xWR%2FnDSXlJnPtB73RxHec0mgTUODJJkLX4T%2Fr8NH%2FTCwj%2FTjfnCmc%2FZ8LqlMziGJODvigSuGoGv0Ym%2FjHjL9Og7E1Mb4wGzR8IwQCyrE6DuXMtursfFW7FYNZH%2BQYsbCp87asDUFcO%2B2Nhs7P04atpiRguHl1MIX7cUV5TtM6nX2iZF1%2B5%2Fw1ziOaf4WCgLgsg2CyKU2coF5AT629iJa%2FHXGeDFWGQq0LQMx4nmnkeDOOyPXmSt7JBZ818Vk4mP3vU%2Fy68LxsOvrJ1zgsJK6YfsKjfUmN6w%2FwOBGfuc270Dz6o8QWzG%2Feg%3D%3D","2022-09-02T23:01:24.351Z","Tailwind L6 IMAGE.jpg",1660943956904,1662159676333,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FTailwind%20L6%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=fwuReg7oXcpp2%2B6OFy14CB%2FYREKd6lZyIT4unpLv749S%2F0%2Fa7NDF98d8p0pG82fyYz7gDQFWza%2BZ9T7I%2Bl%2BIjzrqq3tAaVANDwaq7Ggti4Fzw5fIMeZ%2BQ%2FQiZhqpkTU38AOAK8zb4aPlzdldZkhN2zydaKEMZIjLwtI8NUYE%2FhrW8AZ%2BUFuR%2BlLloGAxW5tK1gcpiiTE9GGIjw380dpxFcb3IQSuWQiY0aAoh0jwiCFALO6%2BGdiACMFgBnGBSyOORymZSFOKx3%2Bq4jB%2FuQ%2BLhUDF1TElTzyJjUeckrNnI0HY%2BoaWMlJCxgkQnmLkEEhfLMG7US%2BLkEbWncltt3eKKw%3D%3D","2022-09-02T23:05:07.961Z","Tailwind L7 IMAGE.jpg",1660943988203,1662159900472,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FTailwind%20L7%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=dLadQDnbHQxWoMLunl9NT2BiFfRCdAidVJVFaqZG8qpkEEt3AuRE%2Fk4I0MOZNKacqmll3XBepTyp0diwKj0I5kS4Y%2BfANsTzEuCMOcDl0o6nqre7%2Bm0ZDvDcVKOF9ZcGMW2kYdBfAB0Al9JdqP7m939XJ5FG6j1L8XIMMU7pUGS7B2F8jAxi1XQyXuKJtvVmJEgVnKAkDWm1u%2FyRS0ReFL%2Brbbp8zyaMjBiI0hYxgs6lVCarbr9RCnoa0%2BQ7E2YrapiSmEf5i2%2FqXONh5hmRWL5mUDznMtOQ%2B3W2wjUdQI3DKyzyga%2By4nUdr7HGFRS9VuNcLz8cGVYAKaKwMVj5NQ%3D%3D","2022-09-02T23:06:52.940Z","Tailwind L8 IMAGE.jpg",1660943993057,1662160005069,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FTailwind%20L8%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=mYhQQUAar%2Bayvfw72WaGvl7ev0M1kyX6HRDtMg6G19cq88M1FRDupQkokozNBFUNgI%2B82GoIpiYMy%2BkWDRHYwMWGBxTYEgwG6gWACxWFPgXslMTD3Pj6mrIO6q2S6QqqUL4aRYYLrSLuK8cQO9VDmONX8FcaElv0WZ2ZumiGhZ1nIv7x8%2BhZEYLV7N5k7SQGbRGtJ6k%2FBXYQizpWu%2BM9eCsUY8ld3YQKvtIaH%2BCqR8zf7M3MPiMaLX3pprZfbxlF5VMBVMMaRJhCBjlgpRmLxK4zXgN%2FkIEhmcZNc1jzcdHhieKPoX2fEBPDDF0vfDVhSyHgcPImY7JwbPRMtWqmKA%3D%3D","2022-08-18T21:02:43.383Z","Intro to Pinia L1 IMAGE.jpg",1660856522022,1660856551947,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FIntro%20to%20Pinia%20L1%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=B%2FquqiK8h6hk9eWWN9Xh7mgEQqMDX%2FYCj1AKR3jXyzeJq4I9NKej6QZL7yFH5GLAt5NxQIPVlRKekkUqZrJNvobyXLA%2BJTHA5U2uhLHVsWvel3qHaPCxWCD1LkEgIyftK6rZjWd6A%2FMXyqmkqPOwFbHLVsKlu8SknEXfrrlltwabi8Pk4FZoplzoTEz3gZB%2FjppeQ%2FjOa%2BS98T%2BXQsfl9eYjyVx2BZT0%2BFalzoD7NU3NGYqhu6kfH7o7lxVt2y%2B2xoZx84kIbChn9xTksdDkNX7aILdoRO2QKJblzrG2X7%2F4z6LIUZWzbbTCLVkIbJVjd4ESdwQnGzEx93aG6nU8yA%3D%3D","2022-08-18T21:03:08.517Z","Pinia Fundamentals L2 IMAGE.jpg",1660856527688,1660856574463,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FPinia%20Fundamentals%20L2%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=ffjWaSkuaLgcnCGymva%2BoJoc%2FMfbmh9OjeQsLFKZ3gd%2FLplXoyFlaLfVGKSfXTx4H28BIfe6U1BPKU5pFmd9qWRLkOA8Csixr7bGeItj6bf8TTKqIAr98ZTU2UTyFkubTQAYwK1aaNFdK36O5V904hGD90Lk8u9IAB9Qa%2Fq2XAo%2BqF%2BMfi5OLzedR3Z%2BVTpwGKmHQcPTt4hAykkhM3UudOpMraULnVRZaC6dPDwcindvDtm7milGutDpc8WO%2BjBWXP401F2TFJtjOF%2FwDOPG2LENK%2F1tWW0tNyv2VDhL4x3FRCznwdWupHXZfqe8j1jaR%2BoXaK7a8l7nf%2F9gcAI6VQ%3D%3D","2022-08-18T21:13:06.129Z","Pinia Fundamentals L3 IMAGE.jpg",1660856532039,1660857178402,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FPinia%20Fundamentals%20L3%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=qBd1Ka7c%2FcY4Uw4ovb7rdIDVP%2FFm0QgyQ082jwGUpVIkXZdE37CQoDfpGFcOYxd3II8ua2jSHTybpUSzWl6GUNAiGUCmeivAN44RlWtsYviE8TcS4GVO9mkSCdt6pGigRATCP7sRwQacCxmpZIO4dRNnXV3uT4utzkyLZOlTcmI53Gk1PJwmIVoB4K4AeSiAmYJQu4ZbUDp2sietzoloOoMHHY%2BgCPDBsbXBxHWwVQIMa1%2FCDS7rQn5qecinW3lOxGMWNZ160gcx4XUfd8wmMk%2FGDn1tFbbEssbORzV72J6rY9olXKEOJaJERTMnAH%2Bk8LuP2PMrEIaKFiGzQPJ4NA%3D%3D","2022-08-18T21:03:40.939Z","Intro to Pinia L4 IMAGE.jpg",1660856536055,1660856613406,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FIntro%20to%20Pinia%20L4%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=AG50sqXs%2F93FlIQnQQwz2XNzO0Wk8gozod1e%2BHpchOUpZTMqo1lzNR7PqcBeQm2YeeFlE8AESIYcNT1L5qOJWx8rdMLWTeYuJnA0z2ctIdfU1LftEc13Q8u1M70ZR%2F6EFWibjXUEuZD%2BCRhA4cXLUyjPH4cAlrji60FhwlKx%2BJdDn47peNyMzBfHTjX5ZGFXcruvrnEurGZG545s26gO5TsCTT%2F6agCGIHDXbwVmCS6xgF4%2FOYtRvzK3PmidJeR44cqalSjMETJGE0sPZqyZPyffnAVfMcaO9ew74FZg1DyyA6Owx%2FDMKNSx44r2Ds2YbfYXUW5z8kVIZzX8SvsW9g%3D%3D","2022-08-18T21:16:47.157Z","Intro to Pinia L5 IMAGE.jpg",1660856541138,1660857398816,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FIntro%20to%20Pinia%20L5%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=ed7reYNiI8gz%2BqTgBhos5s3%2FsqN3XG9hVIG0Ovoms5oxbKatF4TfZuw1XJjEpTanG4bhq%2BcB1GOZH8JlkSywE4H2Q5IwI04XAu6pvpYuQKfjSOnSZTMEfg9xgOzg9S6lJ9Pt4Hx3VhYNXNJhuaLdN46ZaGFkBOWqRqT7MJcgyH5jf91aR%2Fua3q3ZBHveCM83hOkNYF3Xshm82VBDg1jFjwgOffpCAdX7pC229aJn79u6sD%2F8HInrtoH076sdXKmFCdzC1WbuJhwfnUsQWK6BDA9AbtIxaYQKi%2BoqLgSlQd3JyJQRpa2ABEOFkRhdofUByymniArYAevaTH3%2BCIcRiw%3D%3D","Sandra","Rodgers","Developer Experience Engineer at Deepgram. Former high school teacher turned frontend engineer.","2022-08-18T20:13:17.032Z","sandra-rodgers.jpg",1660853590718,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fsandra-rodgers.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=pI8KOYsSq6ntwe8yvkOv%2FF8LiFZ%2Bk%2BLUK%2BFuZLsqQkW3J1aNiGeIAUP23tke2%2F9sRQTi0QRZerPOZddbN0ktMfY8y9XLEfU6LO8Ti7T14MVDHVja8ylykMsGUZcfpn0mAY4EMEptBhwZ8r3dP5lm%2FxcTwYPyQ3l3fl7J9G1V4F0sA1l4gq4bN7vfoetLGsKtEtocX1WZZCC%2FTrQUnSOVxnSTOPVrwxP%2Bh9TquZtNntPhvCYoi88MifAadsxQD71BioHHpyBGyoruDEzQqJyovUYQDBDVugfVBK0GidSIK17ut9VvM8NKCC9YvfA%2BscZeTB%2F7p%2Fnw2c01ISyFM001OQ%3D%3D","Intro","2022-11-10T18:01:05.825Z","Vue for React - Similarities L1.jpg",1668103193466,1668103257282,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FVue%20for%20React%20-%20Similarities%20L1.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=VI6zkt6Z%2FOmr1fflZBWka0dbFIbX%2BIP6014N5WEH4tv4KfgNcU04Uo75%2F2UQ4F2jMi9yCsd9mNzBCUp5p0fsuV6AryrnQpH8eQYaVPJjxeRQQiKrZ8URQIwdd1A%2Felik3hCcKdO13DhYULGF3YynhswP2pn37kxkps6d5zLM25UiQ3Alv0TfoNKkfIQAUKsfsIUo40lTXEbY55Wg3kg3wyHLkZhykdSoFyNQqWDxZ0i%2BnJAA6lT%2BBHOh0qgvyjY0R6WfVrl2wTKyIak%2BTRsP1wbmAsDDCAB5AvaGxXLJuClRHdIfvDrpfLsqL6tgXnLUn5I2yfmvvqq9o1yREgeDuQ%3D%3D","2022-11-10T18:42:26.122Z","Vue for React - Similarities L2.jpg",1668103202415,1668105738706,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FVue%20for%20React%20-%20Similarities%20L2.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=p7em5ukI9L2UVcC1ccKZZRJ9K916Q6z5Faex1pisEnWZnSXPBuTZeU%2FCVtyXlxQOOBK01QZbzDw66Y7QiP716YC%2BY5ZLwdV5rNrjV7NWML%2Fg35IZUjZflPFzFxTuuMEDyUX3fgma3wSrNe0xEeW5DwI2GBf%2Fpl%2Fk0X7Oc0YYf%2F7o4w4BDh71N9OLJa8POlK7852KakQovfwhzWVt3lLNq27PE9AX0OXAKnP0ItWFEZZf6wcguZDX5dXJ9%2FQR7ZLF2LsPMMBs7nTBshlE6eT69KFyDfv5o618muoEUCYBHK%2BBaeWYxWCZatURiNEyED3gL0QzqEiqkWZtgRY%2F%2FeUBzQ%3D%3D","2022-11-10T18:54:30.270Z","Vue for React - Similarities L3.jpg",1668103213933,1668106463024,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FVue%20for%20React%20-%20Similarities%20L3.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=M4TJlJL%2Bcg7FdY7COq7b2sbSdGtEqSUf1JF3oCa7xm5oj8OnmN9jHyAjUKrP2oK9gVWzycdXhChg77RyNroIyucWEnZRPhI%2FVi1Ll9yeW95Qom9N%2B28sQRpKiwlSHuymA4DsZ56C7IiVh6ecmeb5SRwDLcekFxtGAt44h3T8R8OhoglgdvVlIukdETmFaqq%2FvozAsYBw8%2BptnhOvGETttQxFWZcvS1p64UxNxckBTHo2a3u%2FGloxYjM0Ymt3%2BIBvidQVisUriW1VO%2BLgwy8%2FzXgdgPb7ut8dC%2FW7GVe7HSJCchvMAxFCwbQNkjxpuFkQPyLtBWCpob%2FbIBawwCqfGQ%3D%3D","2022-11-10T19:06:04.123Z","Vue for React - Similarities L4.jpg",1668103219410,1668107157310,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FVue%20for%20React%20-%20Similarities%20L4.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=Pgc1Y8qajfSqhAIcyR%2Bt9DK7a7pzd17QQsG4tI0sZGJnpSYqpaazg9sFKnNjpJ5%2BiE%2FVVrlG2rts5yTOnGKSxobVwgZ7GRcH2zzOTA5D2c7U16Nr723srEp7wo5TVTKk1sFH3rohQify9l1%2ByPnWDzW31niTXfrj0PmZPOtVY3BuZ0kfQnFV%2FMIXGwqF8Y4htKNUg0Y0EJIfmEaVCwEaCmDO3Bwk7J2rDGLaOQu6J3zBLZyDZOSlILMtbDdyuflGLfdd8xU9IWQtPIO3E%2B5tLYNtedTjTO%2FGY81gKJ3giNmm3VWNkKVU5w6sbGiz3B2nxh%2FPPdbyLUM62Iwn%2BlWVqA%3D%3D","2022-11-10T19:25:30.870Z","Vue for React - Similarities L5.jpg",1668103233434,1668108323461,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FVue%20for%20React%20-%20Similarities%20L5.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=TYs89DkubXwmnVRl1dEnTnIcl2sMcujP2OyXuFimf7viCifXsTzWO%2B3%2FUmy3nUD08degz0%2FeLin4FWJ1ltqyVX9l3tldtx%2B4cjwJ80yjjc4DfcrcZmzf6RTdb6AsPuto8u5ZdNE9NsUtZmUnr9idIeXE4fNVw6dcemfOiJkY93SNK8ACgj7ytpTwzNH%2Fd%2FSKh%2BJ6eQ7Xu%2F0gjSfkeDwn7zSYirzmXIyqnITegqvr3CqwWRItuTFZWFqNNqRr632Df2QHy%2BIMxvpLYfKpu8W%2Bt17AH%2BjT6tiW11Xp9K451M6syf%2BfNu1Pu6uNn5FmVWzRc%2Bj21d%2F%2F7w4gdfwKZw%2BwtQ%3D%3D","00:03:57","2022-11-10T19:43:28.471Z","Vue for React - Similarities L6.jpg",1668103239650,1668109401873,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FVue%20for%20React%20-%20Similarities%20L6.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=op3uaM%2BJUZFwNAvKMUERKyabL5Cj0BXihBCsCjFSBR6b0PWAgAtOvXpmwjMVgxQt%2F4Qy%2BOmRwPZMcELb9WMa5M6Y3KPSmYINZg3lz7%2B%2FWUPsFFmG5zX2WkQWjNqUwzaRSdVml%2Bh%2Bnj%2BluZMEWvSz2yrpTkh2ZXzBNSW2KfQCwyjeaoGkeCR%2B4UoNUI6eTZb0EqWLT673ioxs3FGGQd6supeo4WCAm3ZHqtdobuyDf0pszuSCt1h56Smy9RhXO0kjwEcKNjcvSUg26Bpqo%2FY0RDIhNUw7TcAh6i2SfTb4WTlmUk1BZWV%2B0Xe8YcbTXLVGg067T8YSee6Td%2F432JwYAg%3D%3D","2023-02-28T00:00:00-08:00","2022-12-06T00:00:00+01:00","Project Setup","2023-10-18T00:00:00-07:00","2024-09-05T00:00:00-07:00","2024-09-18T00:00:00-07:00","2023-12-20T00:00:00-08:00","2023-12-28T00:00:00-08:00","2024-01-10T00:00:00-08:00","Gain clarity on Vue + Nuxt app rendering modes and the best fit for your project's needs, performance demands, and user experience.","2024-04-19T00:00:00-07:00","\u003Cp\u003EOnce you've learned the basics, you can grow your knowledge of intermediate Vue features and powerful libraries like Nuxt and Vuetify.\u003C\u002Fp\u003E\n","00:02:46","00:04:57","00:04:38","2018-05-21T18:55:19.849Z","1526928912671_Vue Mastery Intro to Vuejs lesson 11) Tabs.jpg",1526928912671,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1526928912671_Vue%20Mastery%20Intro%20to%20Vuejs%20lesson%2011%29%20Tabs.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=I6OPR6ZzEdZK%2FWIOgprDcrbFQZ%2FF7Wr6Qy3PS8AptEIUfDEVgSGSIBRt%2BmDuKcFkvDSWt62Bt7nrGxHeIOTjolci0paVvl7kf%2BuC5kqvcmpWMF1PuwNdnUYqz4uIboZWVwlE3fN6xr0FzelBkFz0YT0nuOEhhCz0gt%2Ff7rjLdOZbbSqJts92ORpWRzTDdubbsRS4Bmm1bsnMRBMIhA0U7wtzIkjq1Nz0S1It80oqLoGZaUo78pPEF0fcZfkwpUx%2B9RSWzjOQ0RSxP7hEou%2BVYMP6qP5xTt3D7bpHUDHuLYPZ9xNnI4%2BSUkOWWbywu7NzA6ImtVE9afmlFtoj4zUJDg%3D%3D","00:01:43","00:16:50","2018-06-26T23:00:00+07:00","00:09:48","2018-06-25T16:09:34.271Z","1529942972680_proxy-w-play.jpg",1529942972680,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1529942972680_proxy-w-play.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=cwFh4hL0Sq2vywQYWae1CsJkV0mQ600JW0wsuruaZxhL0jK7QKix4Jp546wQH4KEtZtoqJBY6cq4XHnFFcr63UcTOzvFqHUwPCuz1limXAw7%2BsZmcgFknoglkcpvBDqlkZzLcMCK0B9jhFYNK7DLgaGZfb7z37xFVNX7mhn4ugKoUP3pMS2IlQPO%2ByfEXH1nAQxLW75NyAonNC4PyFRXwwN4L2gZPmqh5LpzYbhlzHvWNd7DVVf1N1K8qyixTu%2BuAeW%2FVtrJ0czOiYCECxEOu1dHwpBJlDxA5TATFYg3nLBN8ADcP5W4t0e9AucSZ9qOeSGXUuuqTp1R0z2t012eWg%3D%3D","2018-05-24T21:24:52.938Z","1527197091065_3) Reactivity in the Vue.js Source - Slide w:Play.jpg",1527197091065,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1527197091065_3%29%20Reactivity%20in%20the%20Vue.js%20Source%20-%20Slide%20w%3APlay.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=FESLQG13XQDNHly5bUoQnPY8kMvhUVpWk9TUCjff%2FMwlW7iYwKLEIP%2BkDwiny62%2FGavmJmSqXWX8DuhhCo2yJDVhPqZeetsgu7KKciwhT%2BHQW%2BTKNO2zYxT%2BMaiycH3kl%2FhBuNqaXqICzOlR%2BtP%2BBBK87VunSMSBQ6qJ9RAHIK9%2BNOJ5msUBkE0UJzIdHSi8%2FSP5vQlbNubcfsfmuCoT9K6fR2pRNucM%2FeNBLQAcR5vcrniEdc5IaotZVEfeg%2FVP4v6rkftFOLdP6cX8TPMn8hmJmOKaZWhllciTbf6M93g8fHPGLNskzwB5nrH81Lwzx3Xu1cHeIP78fkYW88jsMQ%3D%3D","2018-06-25T18:16:20.898Z","1529950579202_conceptual-w-play.jpg",1529950579202,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1529950579202_conceptual-w-play.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=thzWlj8%2BXGlWF%2FrPIOoo8BIWYsrQ9hRezGHH3uOkhSCr5V%2FxJSkc4%2FQJE%2FA22GRCb4sB2gbAsacIGdwblrN1t78I0%2BJ2XwciK%2BcOzprv91paJBPHN8imltHHQuweThJb3fT73ovhswOy9x%2FwLhWuBUNj0gzSYOisF7MtWCBN1oyH6V%2BfuamI5ymVGXsXO0m%2BEJCQQmu33qUCmMIWoohX2O3Wsm7CdNAVAcouheZYbYPr5gOfNftvprXNLHJPKueT%2Fa%2F4P1djEDDWNL4yvbz18Y4TsYXhhV9iQbUIcv7RlLBRcN5dWmY2Xf964qEhVS%2B1GePlzCYzDqSMlS9fBWjyBw%3D%3D","2018-05-24T21:40:41.310Z","1527198039686_component-rendering-process w-play.jpg",1527198039686,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1527198039686_component-rendering-process%20w-play.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=F1l5e1sGdZRhcg%2F3ZPrDPpHi4RwP40vMzInPPcu34ZNxyDw6MT1nHoQKzAjpDIs%2FSQyuF80dh2adjui4Ii7EJkWDGJadvQfGJdjChfWqIh8tAoNSktpBBCTgajJnejkg2tFlRKKuplBs0aXXqxeOxJlKxRYKntEyhZfGpPH7qu%2F9dGPVAi6AXQII7%2BDK30z%2FbVz%2Fjo4hpNOUMlqCI34N75tOOd85LrZHbCeyiz5C%2FLqAMEa4dFI96Pu9MjTigpycUIliUQOLB98ZrdBKO3rJLomIN3wdpAgX0ylckC8BkGJ3eMg9hJw21ddh1ztZFP0JCbO%2BZlxxofzGmdasMsGbWA%3D%3D","2018-06-29T21:18:23.028Z","1530307101034_VDom discussion 2 w:play.jpg",1530307101034,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1530307101034_VDom%20discussion%202%20w%3Aplay.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=wTZAyaoD624TJWVUmMZxbbZ5nSckK9t90sFn5aLPCYyt52SZd99xjEuCwMCnKWma9qbCoeyVAgpnGbDW7JMkzcBzDRXaRwSKIaA6vbvBlh3ZDIDiZVa%2BVfoBHHqszOZCcvfk6u8peBjK5ZwIPkbhJuN%2BBJXBnzZXsiChYOmPr7Gv3eWaFwtbmO7IXDlSAVImmp%2ByN%2FxEIEnIVWRMuqE3oqko%2FtCRGcSm6fXPG2%2BXIcmv%2FmMD6mIL8mTtJDOxDIkRzeFg35hAHcVonR5VD%2B6gvmtp%2F2neA0CxY1TqZyEnpgZm6drThCIPreHp6GMcFgmKA9F9mo6XhmGbRl1IqMJ%2BXg%3D%3D","00:05:47","2018-05-25T22:37:23.313Z","1527287841712_functional-components-play.jpg",1527287841712,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1527287841712_functional-components-play.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=bh5ZOBPXQAsQL7RjzC5zI1nDTA1JRnoE5%2BkplHG2Wmy50bAiAS%2B6sx2fExpE1q8H0x5nJKSDNnBxVyHnQjeqX8NfQ60QKx8iwbYjVZJjcJ5Pop%2FRlrPDseFJPvHHTcX%2FBgSk2aOA9xhauNKxISNOzYWaNk8Hl6UHj49OIdu2eSOhsd9CuMeYcOqlPRLvRvchqwSV6O%2BuzpRXte3wX63xiDmPQ7Lmw24NwDgifm%2BtU2TCXrepVMtVCwOAhSnDixSxXXnULCWDIqe37I%2BIvZAWm5nYgYGIeollZtRfNO1GBdQjsaw1AggFU40R7TxH7abLskrNgQtfkrRj59DyT92Bgw%3D%3D","00:02:33","2018-06-29T21:39:41.249Z","1530308379444_Vue router w:play.jpg",1530308379444,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1530308379444_Vue%20router%20w%3Aplay.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=nft8m%2FoYHVBRh6b1zLOuyUiZCBse%2BedrjtgsPS4HGmVUOUYXAsILdZ4Q5u6G6KhEJUGsE0hjEiLWbpVUD50ne7LfoA5ye2cXxIr%2BGbfsNOqWmfmow%2B%2BrbzXDj9DBBzLkXlRzcG8X5Fw7%2FUVque8iSXqvP3dI0sBt%2FNQ0Trh5H2lX3mtJYV0aP90kJF6iM8%2FULNiAyqVEhAb9A6usoBELLhYVjIhRPR0bMVW%2BJo3LRxrvF7txmxDX%2F75CpqNYldtuyrJ%2BaKJlKOaHqBoi3g3CDkB10SX0XCRB3EgVi65J3pDlj15x1XrzjMdLM8kzVaWGaPjf1Me63c8Am1dhlnAaOg%3D%3D","2018-06-11T18:24:00.683Z","1528741439390_understanding_mounting_play.jpg",1528741439390,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1528741439390_understanding_mounting_play.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=NQsCnXyDsVE7xJQlUQN9Xa%2FLHpSZInT6Ks11Jbglsmp9tYx7D6EE36qiDzYtEr5tj43ySlsx9JHzaBNIYXqN1RA94vI7sF6Ms08%2FJjzemvlCje%2BKV2HicdWWEhRyjcnRYOMXjWqzjDbOLwA6wT%2FV0BqaD5OuPbULoCSPfGmlVKLdJ3TndVND2ZN3rAqq4H8LcitV7GNnDkwyW%2FqWaWcbB4d5QVviW6eP%2BMaFPGSaV4aowkFRRRbhFPeHOAdykYmhiMTDSL5IK91X%2BRXFbGphKN%2B6MxuIoCKavVa4iRLeepwRqBcsS1uwzjNpcQfx5vVyBWXhNfGxrK0S1cYBD1G4kQ%3D%3D","2018-06-30T00:24:19.473Z","1530318258105_mounting w:play.jpg",1530318258105,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1530318258105_mounting%20w%3Aplay.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=BPw%2BkkBxfmNycZHJUvz6tkLNOjVMvBbE%2FtbfzEEStw47K7%2Fa1Z06jug%2BJjF4mswv0JPi%2F9XJDjM1LROEogN5FfZy6HljrKb4udWtxAPGaQyBk52LjbkWbyiXyOMtskw2zyc63A2%2BS3ZpX2xDPJRAR%2Bnb53nEnlZGPvgWuqTE3uxyCfsBjIhzOTDHOa3aaDQ%2BEjT9eHOmmKUM%2Fv24imIHTLVumXnOMxGJ6r1%2Bas%2Fd7I9GogqkreulrIDrsTgYZCmfE7LJCYcygWp00pejm%2BJ51woZUz3RRdJ%2FD%2BIdHYJj%2BXe0w%2FT2zgddnF14k2jpJgGu6wnKSIIIzFnYc0%2B8CMwCsA%3D%3D","2018-06-13T18:10:58.799Z","1528913457080_scoped-slot-play.jpg",1528913457080,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1528913457080_scoped-slot-play.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=PS0fiMA%2B4CnVEH9BLLqhrWRBrwLCqQRxw6UsiVCS25zftnAsLxzDUNzJOUFYijLEEnS%2FpvaSGJGlAGxWpwAJNfq1sdKgPduqfDCxPmOTuAyzeef3ddRyyy6YsOGzjMygjGRhttstMs7zmuUd%2BC51wxYaVvQkAYQ9acsuTYqAYl2CGH9Z53QskxzdJyVKVsQuAPqvCPmq4TxFNxMrxuGLGBx3t%2BYL165J1aXbdC%2BK5TKzOLtO19mLzwhjzGLOAd3QWiJLvWtNUERUV8pOkC%2FBNVlZZ%2BiVvMPY1N7rAQieAgJYWfOdvQBmqEJwfGnP2%2B5fblT%2BshgKFYJDndFQ62Z37A%3D%3D","00:09:06","00:09:07","2018-07-30T20:35:29.798Z","1532982928497_front w:play.jpg",1532982928497,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1532982928497_front%20w%3Aplay.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=qbjaVNtvQd7QcjS3wm701XHOC162AI8bRZoGkQEbUTQGSAKfgkka8NdPjjx2PlnH8pZHYvRaA%2FPlQZHp48wzcK%2FvKZtWUXfMpo8Peo8Wy46UPLAq5HxTVQYxbj225juqSiKySeiMrhQ2TkK0voVKtwhaNBqgDEH%2Fnb6%2Fn2gndXe2KxhUZHMsks0b0b367ECKPBDgVau38aQG8QRZzm1MML45xUhNp39i5H1h3Ga2lxLTHmVjsnczEeU55RDEGcwWJlC6Zxbv5iDPc01vKt2gg9e381tA%2Fd5736HdEO4zBrQGWunicKS%2BD2TV7Crj3b%2BqjbE0YGvqrCXTI3KW1lPW5Q%3D%3D","00:09:31","2018-08-06T00:34:15.443Z","1533515649904_front w:play.jpg",1533515649904,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1533515649904_front%20w%3Aplay.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=BUwEDtsg3hsfGTp2YiEryDg2Mve3DQ%2BengiPRiiBLwifkPmHTVnz86jueQrCPhOuPWBNVv7lXv2XqQTvkwOsdBI%2BJCCGofTvWpkt0T%2BA9JNkG5K9xhPfPCi2hElYc6ie8y5zIYLSlBhxua9C6iXrQuC7b1i4ShPHOBML0SX3iA9JW2%2FsRn4NxaoUgCDpITEoSrjLs69440vaOQiENmWGPrNXraOuLZKcWxbWzPuf%2FAWnAQ2JLdnmTRPvEWUI7VxahdZO3jNRxpwuKEJW4FtUEj9qGKSIps5wahIem72cCFqKR74SA71vVtzHbk37Ai7h1%2B5qeqz6BA%2BsihG820RU5A%3D%3D","Slots","00:06:45","2018-09-03T18:13:59.444Z","1535998438412_api-called w:play.jpg",1535998438412,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1535998438412_api-called%20w%3Aplay.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=i1ryxWi9ik3B1lrNsGDGfbfxHRGcqSdzuMKqdwEEpN0DcmO7zYwDMuw9i%2Fd2%2BatIRvGid1Iv7eVRoeESr%2B%2BMT5%2Bqstq2yY2%2Fq47ZYXC7zsyWsckgwVkk1CMB2D9aaA%2BDNYienSyADdbMBATRPloVnonzi8Z5KvvFcR7zTlGCp5251k4lVqx14YBk8%2BOLFXAldJ0KXunDYCQWQV69X5J9zs4c6N7WeCJbFF2iR%2FsFHE4Lck9Vrg1M9Tn1dcfaZf9m%2FJ2quMNDW4wRkhHshKPAEvVGfMgt0dM8hIWZ2rHs7sUCNgxJsGaLw%2FADvVF16EjBTqffc5cqVEaJohrri3zd%2Fg%3D%3D","00:04:40","2019-01-25T20:30:38.758Z","1548448237393_screen w-play.jpg",1548448237393,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1548448237393_screen%20w-play.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=o%2BEZlr%2FJefIZtykNSr48zr7jo%2FrhbIiJnG6cwACmWRDw7lmecDqrk9kgBQBnSuYm0307eJIrLdYiVx4NvjfzmqNnenODbMOexeYjGnWivHeRBXsgKWVD1H%2Bb8FnLo%2Be9LDA4HH%2Be3b70zBEDIQiXHO23Ub11%2FpR5w%2BpfPnYs5H%2BSztY%2FZHXEkemBN%2BCSV3KaFvATlFntOtx68Bkm6l0%2B8XpIosoSExwC8QYYjfjVgIZ1H4gGsBBIdrEbLzkoZYWKmhwIvmR1GqtgbcGTF9k4cZlDFFf6D2V%2FXfBm8Sg5i4v5uiEJe8%2Fonh0FUBuWxmoUQsJp%2B5sZHchZyM3UsqkRmw%3D%3D","2019-02-05T02:23:01.209Z","1549333379336_nuxt-folder-structure-2-play.jpg",1549333379336,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1549333379336_nuxt-folder-structure-2-play.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=O9EuQyx2WHSyBY6GhW%2FFSm2aCfT5lQgQHv%2Foxc0%2FVv9F%2BhchPResu4agRrUKZvnSdiRib673PMyW1keVVsV4y3Du6vuEq7hEju9jVbPlP5mQkv6NtrnWmRNkn9xVHdxUO9btAdYRcuaw21KHd08HNs7vZYyX%2B1sZ2e6VTjm2Lyaf3n%2FDgURH0KIXSqiZRdVGM6hIzMgWVpVL5bEr9OafjZ%2BqgnkMegQ3uX3nQM0syfy3TeA%2BK38%2BS3WLbhkBX413iDp6SFoQ4ef4cFgRSiFYHDbuV%2FQzq1iDr%2Bu6nKiyWuA1jjQ5lBcDqr4%2FrJT4ihvL9bLmXSE1EZgHxNRBmMd%2BOA%3D%3D","00:08:05","2019-02-16T16:23:49.889Z","1550334220126_universal-mode-w-play.jpg",1550334220126,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1550334220126_universal-mode-w-play.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=Xo6Sol%2FRcn6lj7zfZHOv0y5shCm7ObSSEaxITT15SOAtSG5DRZlqJGmUydgib8bXbx8a7Em0MOids%2BnqK1aqcenuxMlTBIuAthVDMonARih2UZo%2FfYsJZ%2BghgqHoKYiH7DOrYoRyRHcAhsTE7%2FKC4zpl%2BaX%2BuEKN%2FYHLjwlbM5ml8cYTzpEcfjTFzyFi%2FBH2BTdGs9aUljJyD2bTBXpQ47sSz3mF6baZkSYLQzUpNByE9h9WCae0fDby%2B45rdI8NpWE6KmgDj%2BjE9s6pO%2ByFxFPh%2FGca9GodJ6%2F7u7%2BtIb5kYhULYr2I0Pd5fiVK00N8J2ftZQY5%2FzJg8J3i6kOw4Q%3D%3D","00:09:14","2019-02-16T19:24:53.627Z","1550345085824_code-w-play.jpg",1550345085824,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1550345085824_code-w-play.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=F%2BKd%2Fvtwk%2BS3Rjm31ob4%2BjNP%2BgVpkcvIVcuJYDD6AqZCkDCbruCfekp4LhLp0AoA1FzS2lRhAibgujl97FHALaYCf9nF3%2BrD%2BASVD5rvlUPL6STFUFFvxfe9NkqHzLVq%2BLVXm0XDHw5XOK3YIUOQLIjRaCucZdMJf%2FibJZlkUlrzZQY1%2FTH3eMYSQK36uNHSA%2B9SUG6phLsbea%2BrIWx%2FA5O5KlbJSWPAihBUBNqTr4rKqeOVq4vNze9DK4lUhkgW27PHOQ9HB7x1Eh97A9O%2BDZcK60Mm7f0eRSy9GCcscJYYd%2F6zMD8Gx%2BRCGlSSFz9UuQX2ewhF0p%2BrW2Lng19qAw%3D%3D","00:09:25","2019-03-05T04:46:26.119Z","1551761184579_root-dynamic-play.jpg",1551761184579,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1551761184579_root-dynamic-play.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=CjuJYuhDLqwjGm2HsPVzA%2BOQfySc0XVD%2BcIAuw%2FO8xC%2FchWS6lIusQQla4%2B4E1ZvnxJyud%2BIrGzF7nqSgIVtVjbINaQax64Y1mUNaaU%2Fr2%2BylSUSFtd9hS3NvNEUVv%2FlDUFQpL878Rx74%2Bt5z4wXeT7jL2WmF7XfRIfDfYGq3AFtwgin7fqxuyAHgblD0OEPG6s%2FFPMtZJe073H3FGRFHl85h92UMjfClW4yZkip%2BZ10AEqi5ymna0v7vRVs1bygdw1hcp1OqU0c3BeHcXbJxeWPOEwnYEn4c0fO0SOiQ0g4Ke8IyjpikI6%2FoxtoxHYLDR4TcZuyIIbo2nOcr8Q2CA%3D%3D","2019-03-18T02:47:20.440Z","1552877239173_asyncData w-play.jpg",1552877239173,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1552877239173_asyncData%20w-play.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=tohzM%2BfmgeFlpHZB%2B9S0YPxE31CGulynRyPq5ahPIACV1AHt3qtOxQIKBYAt%2FcdafpK%2BfL1iFWGvOEBLq2zhO1G0ak7np0X143i7CC%2Flxo1QrdD9qgp7F3Pq2MgKruRCp5boQ%2BLCNtHQ2lRhOfCFwQ2wOw5g%2FHsi5dDmZwudpQMwzFClus1QVqZD%2FjeZ1AVFyyOUVwp%2FXo%2BB1D5tSFahIlf%2BibUdBoNR3vKkUmfUDzGmvYwSh8VEk9LXKSN%2BWlYHp0yjGeLD8Kd4orGhgZQB%2BAzDvIRQ8j81X5E%2Fu9PIDH4UjPdXxUs%2BO0o2VvqiECWwin%2BI4mUTXmg5%2FN6A4%2Bn9eA%3D%3D","00:07:35","2019-03-24T16:39:54.066Z","1553445592889_async-await-picture-play.jpg",1553445592889,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1553445592889_async-await-picture-play.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=fg5eX%2FC12auSW5wkFj2Z%2FCDr7jric3ig3RLdPkAkuWAEJRF9svd9j%2FA84tyLnImLeybjyynrDf0dD6UHC0X5Gi6STtMf3ThXcaZ5PHcFb8QWyLf2eHd6QpdN9MF1F7qDBRj%2BVNfLM17ZfR%2BHr8quYDpw%2BcSHprr3oZMaIVEIzjVc4u7QtFkwOu%2BYyaXR748hkQcFslNYz8veMtF6L2Osqm4U38xFRmOqtN34ciObzmO4dtI3ruPWRQQ5fNjQwIyh%2F61Oc0OdUfF2mtddvdWutt5v2uaygxFdZQUgHW3rTLokAGnntHIoUK7JnFMpk1kpErU96OFxAr3NDHw2xC%2BUKA%3D%3D","00:09:54","2019-05-05T15:33:28.606Z","1557070405532_nuxt-vuex-play.jpg",1557070405532,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1557070405532_nuxt-vuex-play.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=Lsxlkl39wO9YU%2BUeu3RkhPmc%2ByxydQ6qka8N1Y5o3K20J3zGpoJnZzrTKZav%2BNPa0qLB3816%2F6nD14FQFpp%2BIPPyDrg7KKNtLN1QAZ%2B2Co4Thk4GqixgToYbNgOWl5o7xHmg2V4Di%2BaH3m5TvNPiUo%2FkqA0ucgisX8ZOkCi0yOCFXNxmU2vxnyEpHJ3wiCPSdMsCuYDHStkE4xW%2BXQfGGwc4KXqgYTCWG4xvzfPuJ7umJTfE6Kqg%2F44gX4aVt3%2Bq6GKNt8TF%2BN0fgAZqY%2BBleL4b0P%2BvPskuIgvn%2FSF6sATx2v8YbViM8Imt2iCsigKN8qcJGQBdJ0TTEgb%2BK9zj%2BA%3D%3D","1558992993766_deploy-to-heroku-play.jpg",1558992993766,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1558992993766_deploy-to-heroku-play.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=i3WrSjlI9TD3t3aK1cmNkDptjnyB3X8zaN0HWe06x3O2KvKj7BHzEwvsFcCCQOsR0%2FWvA%2FIDTipPQoUfNCI30FmvH6bLUq7HrsdwZnH8rCM2jWbQNKKSuxn2jDs%2B56Z2QBaM1UkMhuT7PCeAO6Us7tZVXWtQE7aBvJQzc1okmEs6kvN5ncXLwf%2B9fAKBRH57N0VqVS12Wn2waLyWKgkcWULGMpede7w2Y6OXnbNkyEswIIX%2BXN9znjVvM82QFMMZl4N%2BPUfJiFs4vzeuc%2FHmdqTVPYptFM66f2ADpb4IkhySQ84GpcdQ0e7F4JyV%2FWGN%2FO62tlNbK7Crpcki7bmpfg%3D%3D","2019-06-17T21:16:01.187Z","1560806159456_static-site-deployment-play.jpg",1560806159456,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1560806159456_static-site-deployment-play.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=DHcYMRD1onTfTmBr8abiWWWlJtubtjKO49W%2FCko9MuppA8CyxnK%2Fb71yNf%2FFdn5ND8O2515vSbR4Gvr8Sstj0jQmzO7E%2B5sl0j6zJMb7dUtDmj8W5PmZ2KqCzA2a9Z5GVERyxnrYWXYbahQ1rS9SUrZGgxHKL%2BGlf7aMipmVZQSF9hPgwUnxwBWd%2FL%2BIyi6z%2FBCktWY4j%2BpEmZ93b8iz9Q5Mq5E%2BXlrnSiTcuG0%2BpuK46YKhs0w%2FFwnK4HlA3yqLJ%2FCZx17HlXaPNUhGj%2Fp1fPdN5%2FBTrp4CSpEdDFZHRtMOowxAUUVwqJdYmn1zlMHJ3%2Fn3VJ9juBzFQCtIH6eRQg%3D%3D","Intro to Vuex","00:05:13","2018-09-11T05:18:15.501Z","1536643093161_Screen Shot 2018-09-11 at 1.17.22 AM.png",1536643093161,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1536643093161_Screen%20Shot%202018-09-11%20at%201.17.22%20AM.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=Jam1iEBeyTpNTyQJyqGVtlDxVaXCEShsfJVw9BMgmEUlZf8x9wBWo2NRf%2BW8JpjrlPdmBO09ffWXZL3QT92ugU%2BvBmj9NN9f4olnigEoWJnPUw6OF%2FigrvXfZdYtpoY0nTeWk2eciHpZnmwDvfaRcrC42CBM2S7%2BiC0Ooj4YbTqoh9fdqsNvXxsp10p4NAKTJnVtFjRq7pKW3ML9%2FDC5XzRGMdeuSjDOpeHIiHgxR%2FyuMK4eNi8dflU6eaiPkOsMvIN7EhsSlDjW%2BDm53Wy7US6mf0qjhseP5PuCodrWl6pQu1P4NMQDw1YxzWEVR%2Bmd3QYVJ50ClUwjVj%2Bs1AhfHw%3D%3D","Get familiar with the example app we'll be using throughout this course.","2018-10-08T22:49:49.704Z","1539038987761_diagram wplay.jpg",1539038987761,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1539038987761_diagram%20wplay.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=TClHyoEJTbUjIJZqTdQ52HsyHe4sunVOsdoR4CxTqAS9riN%2Fs5BkMCXl0x5V4L%2BZP1Z%2BUqwsO3BfchJLX6a%2BfxREh4JaXMcfhY1bW6SmACO5gkC%2BhpWnyJQaAxE4VxEMwA%2BtIZsBiDQixpNCEf4tHoNW8LyL8knAJ9U3xbbLUrssMPmeliaH2zpcNq%2F9o5kvDgVI1yUrsmrGb7WjlyY7akCnUXSA8ghZP4iSMd%2FJx1Qx9k2RX9OQM6Z04W7yN7LO28NkIM2KupcyGIcg1Bht29gcj4qwsp8gaDRl7IsJs%2F3hrHFCH4%2Bw1B26iCAk3rriJrOJBAz%2BQ7oOxGHMjul4fg%3D%3D","2018-10-15T20:43:29.710Z","1539636207950_Modules-Break-Out-Play.jpg",1539636207950,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1539636207950_Modules-Break-Out-Play.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=WboP2DYpDoCCCMRZW%2FzL2%2FGRrRZi4urDstkKiU4U2hkGNvH2voKmFUKRJPHTBnLzJmV2DhDOtt74fMS%2B9aFQ8jkW9RayfjWNFSEvG9L7SJ0v3%2BDiYd%2BuCWsRmXRpmrjpAIDPR5jKcGT6GwLt8U3rJTKVP7%2BRAF1YCUKCF5ovZAEJBcBYV88x4poPUJZ%2BxGuIqjQtqqLp3SYlTyhrPcqSoKdmn0UYy%2F%2F9xeuiqt8rKD49B0AsPdxXK54HS999cmeRhHNyDw%2FMD43PRJVgIq7UZC%2FQu1f3u2alPqVAJLHC2XCWmNwu3BA0YS0Q1ohKQxXB1Wtug3XBnqsFiyDRaeTHrw%3D%3D","2018-10-29T02:30:31.153Z","1540780225123_Axios Interceptors w:play.jpg","blob:https:\u002F\u002Fapp.flamelink.io\u002Fcc116a40-1f5c-4b87-9ea8-f7a2a944cf61",1540780225123,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1540780225123_Axios%20Interceptors%20w%3Aplay.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=Wd3lmYZKJLS5bq%2Bhvxt%2FYQTXvDc0JMVNGasjLUBwJTCkvQxyVK2d2bpQcn4Tb3AnFPCCjGRDPfrsn%2BmiSBTfQkKfRLp1mVIBXYvAfjtgnEyoHUYqDwiC9%2B0WOwuojB%2BOhoOnnsEsX3qwbLrinw%2BHFKU917a6dRrQgWNokgSPUWcPuZAx%2F0evBal4F4rsbD6z5pW7%2BkmnBYigPwSnVjtFsoRnEHvIzvht%2BtSzjLwYjuqitp1KDimxEXambJJ%2FBFbWjDgzRWuNlBUHee9MQAUuFBm0DhNiddNcABHj94aAA%2FqQVFhXGsMpthaSZ7yjqrzvKTIrMr6Wd70klf7bkyKjjg%3D%3D","In-Component Route Guards","2018-11-02T20:40:34.336Z","1541191232844_Navigation-Guard-w-play.jpg",1541191232844,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1541191232844_Navigation-Guard-w-play.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=gV4wiKOc%2BBIJrMJDt1yli3mh%2FaizzFgx0UIPnsC8ScNQFP3r5fVCqWhPLnyVjckmE2%2Bxoa%2FAio5AGHOlpBsT52tfNNIJeBGGwTX0qdqh7uVR%2FIDAJCvMoo0lyOcgt7mPGuhZJ0vmnqv5c3IoMdld9UjzhNzSiHU7QF%2F4ZKNkoLbM7uC3LZB7DB1QOBuYBa0ziy%2BWzGAtouQfpj%2BUFsUMUSxwvqa8hjTzTd8FWFxG2d%2FNy%2B9h%2BeonXmBjdaRgtyQ0%2FTbVV0Z139%2FIPH4azzvHYyoJmQ452%2BbWrPmIl79FpJ%2F%2FfhzgpG6fGNTg6Xe%2FwGBBFhA74Md8uYDnwtP%2BYHPp8g%3D%3D","Global and Per-Route Guards","2018-11-13T01:27:57.827Z","1542072474453_global-routing-guards-play.jpg",1542072474453,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1542072474453_global-routing-guards-play.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=qkBJE9ofXZlQb1cndevumYQFn6lKKJZfTIxclcIJSks7maTbQc%2Fvw8BAaAHbgrGlUGDexa1RsLWAyx%2B7BQhdcjabNX6x4bcgKdEoPbeWfrVvkfynGyIV5%2Bv2HOiZEXZsK93kmTL89Gd2duTa1R6ySmFWODiNyAE7LxIVjJF2KeckCePl8OcxbcQeM9T46N01NnmVSTeAm2VWIO%2Bi%2F8ykzO0TjPIaKdR0QCCzI%2BK8wmIoRIciwYV3fxd4yh7bQLJHC%2B21iaZlBj7c6cb0fmH8UzclVYLB1kmbHQ5rp%2F7fMacxQN0ThAIDeW2tTQLYXblf%2FhhK8Zg353VN15cHJgyLcQ%3D%3D","00:11:08","1542383081003_event-create-play.jpg",1542383081003,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1542383081003_event-create-play.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=h7XkWLd05SAZvphLhFAXPExGHqXYbx5DCDTgF0Xvdde%2BnoePTUoQhsYS0tJNBzrvNwSPiRpcWK0lByJGVSbghGDOkX0PUj6%2FCbV9wePi7V9jaGpjQCZU1PGkpj9RjGW5wGqQS4Iv6wm65DTU774ZnGKN5AfZNo%2Fs9N513S%2Fl3ZF0QohDlgQO9JHws2FQQ6d6rS3CGYWD3Mv6%2FpITzMBN3st1Y0gOzS38oiytF9nr1h2wVK5IWTuTC4mUkfyQiPhDk7EAz1VecHuWgKXAFS2SziKEljvV4MSiJVdPPYFbyru2FIO4YedIzrYpREmWajbNSMiGPzBItK1cXQnhgHKAHg%3D%3D","Error Handling","2018-11-26T23:00:39.493Z","1543273238389_catch-all route w:play.jpg",1543273238389,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1543273238389_catch-all%20route%20w%3Aplay.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=KykM3nd1Y4Ke9f1craksB5vFi8ayISuZyERqIEvo8isnG9xLxIWxJKVlPqDHXMl3RwrRUVfNtmw%2BcBj%2Ba1CX4SLvSfmeLoM2uUqfm1K%2FYfFqYw8wgVNpnu5KwNG1%2FVz88Y1%2FtybdOKpHimr4BOlKuz8hAG8FnNNQVQxSk1PJhh3HqJw9aCJjYV905zlZLarHZuXS%2F%2FUupGvUHWP1MSVtwmZN9tm5WO075t4F2JLLdufXXeH%2BNNSGTGNA3EwYYv%2B1Zhr17LEoj4xaXL%2FNmDBkq1meD6MiXoOjiZ77lEXreP0XsSDPE9s6zdNG%2Feb8l0GRNbLAB62fVXiEj18w3dlP5w%3D%3D","00:06:13","00:10:02","00:07:59","00:51:43","00:06:52","2019-05-20T21:32:36.577Z","1558387954522_play.png",1558387954522,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1558387954522_play.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=Y74fAEGtwdpe94WWN10QyJxppwlNlibO4b42VRA9UGskfLJvUYKzHLAoXGueD0m8EarVB8PRPdBoOXOEho8oiclnln7EQIishEdm3Sz9T815u1q9VkGy40TO9XknYeFD4eGqmJ8IpF6zntEln4dofAP7SUiRCpH7ifo4%2Bj3TX5UlcoNVlnk7dd2JmIDX301CCewPWaGkfeljEjH7cWDZCXuq7IicdQHDd%2B8Eoq1XY3tuCwOWlT4HGAf%2B4UDkzwBf7RLDF4ARWSoyd5piPrANUukqYcpzGCAvOXlAaVrPLVpoDpn6DUP02wdYK9bMTBDYTuU3iYQHucTq8KTq4hQoiw%3D%3D","2019-06-10T22:36:13.913Z","1560206171179_play.png",1560206171179,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1560206171179_play.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=iBEzqUU9hiW7qzjEsNGYT%2BYcTg9WbTOC5dDeivioa9Y8VO9dPwqMP3tC7ibgUOc8TkuwbyuLLrO9wap3Z%2FqRHcLdtUa4Uql1p22X88KwTsjRwah3Z2czxn7tb17NWbRdMbCfSok1DykQv9AeztASqcoFZ40%2FrehAVX1Lmb4d7SWCwpbgNMbl8TDxU%2BrwCnqk%2B6sz%2B9H5cwAdc9ugeLX2AXI45%2FNzPZf%2F6JA66zlC7CyLAlaoQ6cZ6Mfm%2B17aeAYX1BezrvahlhMcZU%2Fy4qg2%2F43Ow8VkdWV8YP5wf6d%2F002%2BQyOGuWGXEijV%2FuTHtd59fPzhsOrHbj1iY7n0dZ4Zog%3D%3D","2019-07-01T22:59:09.678Z","1562021944232_auto_login_play.png",1562021944232,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1562021944232_auto_login_play.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=VQP8KBuwNPlQJmr%2FlB%2F08ziMYEphA8GTybq0fKb%2Bxqz8LDlWbyIb8M14GDeMUVxiHHTe9qhFwRqvDlxtFSxc8DCBuZHotlvi4wK7NO%2FpepDzqlZpkbeTyBm%2FQS2DvbgpinIHCH5oeRy8kbuZdRazPiWx9ACBOfU5CGiXmgxZwR%2FsqMAKzo4Jk%2Fjp%2BqqLTld%2BG6sRPaonHm5DJRsStDO%2B6qUMMYUqE9L%2FFi%2B7THIs4RD6FFo5IOqG%2BGyDBf5Vi%2BI0Sd%2BHpccewhHpQ%2BuGHFoqL1ai8JqAYLQCzBUgUHm1Do40pvi%2BVYR3IpQm24vYQFFdOZ0xeCkbsAaJZY0jsunXPA%3D%3D","00:03:19","2019-04-12T17:26:06.333Z","1555089965010_app-w-play.jpg",1555089965010,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1555089965010_app-w-play.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=NgckyPOM4zbZ7esUbnzcdpxvKnWQ4SS5hGWOfNklcrehbNfmTrqp2TxH331hurs7sWK0Ff7XhuvTXMmZjVobLSl7RykJORHyKOxWbRgKTFS86cqaL%2FmgMW2Bncjv33%2FCchqg1r1enltP3I7gWrYfHAUHHgyQu5x8NRyD%2FtXVjeI2Mtil%2F8r%2Fb2uY5dGvhynTHdPKhXlXMkUQGMbKyzkFOzUchPa8VPpqck2W%2B1pymSeuWCmR11eEcy7rFwxlbvSq7JMk43FZrXdQ42ZnbUtFOV0nb0fAKuZsj9A9AUP01vRWc6QuYJ%2Ff%2FNHR8AbEOFU3If%2Fk0GdoUWr4Z3mvLoNUEg%3D%3D","1555363285254_coding-w-play.jpg",1555363285254,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1555363285254_coding-w-play.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=DVoZhTp5xwhtRV8mYofbaHNARMT8LHV75qIldQIoeGIYOQkCfwwQ5TrmMTsN9GdlVHqCzjJbeIVfRGShN4EEiPcv4Z%2BP9cTpWmhhwsjCDDbj1W%2F3YgTmUhf2QzA6ZKpB2DZwbtMg7B%2FGsIjz5lz8B6Ah4zetO5KC1kjJ%2FgB18%2BCcotnH%2BoBDCZmoH2zQP9MB%2Fb1e8E7PGg7e8VFpAWIAzYbaUrCQ%2BJddJ9hIICTBt8vZyYL8%2F3uz5lW87lRukhPzIkHzC8uw5E%2BYcDW5SQYTJ07XITo%2BTZ2T%2Bes3MehUf0lFM9r0cbJYCen56fjrJ7Jaes02iC257vXifxCOEgxe0Q%3D%3D","I'm watching @damiandulisz and @greggpollack build a Trello clone using @VueJS on @VueMastery","2019-05-14T12:00:00-04:00","2019-04-29T19:18:34.323Z","1556565510941_coding-play.jpg",1556565510941,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1556565510941_coding-play.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=imlgCCpAMXE8ffEKkBwaSFDdWc%2FjPpShTBw4JVgVENNgUKczRKGeboz2Iy8nnnbNK%2F6SkB%2FyBzjPNaXSxoOWZXyP2RJQCAu%2BpuwzSUWCfgQb3PASlHBBSOxRthk8GdXVwHqftd6wZPmFNf1m8SimviHQLiEsFWvxgBy6cu9azHqEoPtIgXxvDO6MI1XqQ1mnxQNIxwne0aAeSwtD5sKo%2FE6zVw8baqos3mCpJVMB2dMw25kJCGPcyVMc%2Bv35L7IUIpCy8FUcG4ntploEXgMV2ZvFr08PM2K1miD7GNzpTKzbF0%2FutvNZ0PevBMmM2f%2F93XygPPQZFbeAw80zgyUbug%3D%3D","2019-05-05T19:02:44.416Z","1557082959909_edit-task-play.jpg",1557082959909,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1557082959909_edit-task-play.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=ua3HBxAn%2Fj7SMFIn5adOp%2Fb%2FZAHT5RExCLUyt7EMQ9hFYLrTZ0qgzp2r%2FY0oiRHhkcbuwh6fXcfHV3cnjh8qlVuRQlRuyT0O3UpEfM5lifXi4OIS%2BgLB6%2BxSE5Xk%2FieZF0jgTfJqdkhOpB7%2FGpO3Vj8CFU4aTxVf64gqjX60qcxQLN%2BAduaeiHK%2FkMeSwpTuAV7HsnqzjsTWmdwFSIuUthiWoZLGaRPxtM9HNBNsxUBpt39yTe1a2F6OMxIUXyiSb3YGxrabKTv%2BgntnRXFrADnuH6jkP0jytMWF1j%2BuQlmtfd95UAI%2Bj%2Fwl7AtEDmlANI6xziyQwgLbyhj3%2BrDX3A%3D%3D","2019-05-08T16:01:43.079Z","1557331292446_watch-drag-drop-play.jpg",1557331292446,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1557331292446_watch-drag-drop-play.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=gehKlAY50nKLFy8pmqutsvSrCjnjmTmGJBZ9m7l5eDbtsMbsvwuVDVb9jlGytM%2BUeTPxdkjxFhgClx6PymDhVb%2B2xJx4IlwrhlJuFeRe94cPgzq00WbSm%2FfXeMMmTO9dzFg66OvJzR6aJ8sfEkygcLwwwhPvCWUBz2ZTVGqqjNATPpnzIh06SbhEypTXLg46RMVvCAaI%2Feicu9iq44B2jFX%2BEqU6%2Fu1Ony6P%2BiBiTR5MX9EW1m2rUgb4whekweIOfDjVD82Ow9sXBHxS%2BJTk32t%2BpeOqkWrK31X24pKv4NN5tKowUlbPABt37qUb8qgIs7jTKvXk%2FvkNJLFlbLnpkA%3D%3D","2019-06-02T19:41:03.068Z","1559504459832_drag-column-play.jpg",1559504459832,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1559504459832_drag-column-play.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=OPQD2V6hnuEclInNwazODDsAVLBHbNWfztNJlL3Xo%2FYeiXUrd8J%2FcMzmuHvD3OzLjbOkmJAmXMyJkL4aIjkzhyn5y5k%2Fe%2ByF%2FfqJ59NQG6NfSTj07Fa3jPWe%2F0LnehmmrKvqfKmO4GPJ1PUrAorQtWOX%2FZm0b95oKlsOJmIKRmwl%2BHXN0L47oTuu9UwTQYs%2FLpFjbgRmUimKjvgcFP6pfhLSEeyq4hS%2Fgr3hhlpketWwLhCh%2FIDc0mVEtr3y6J0qDPzOIZ%2FpxbLqvqE9Kw4EHK5Mfs5wL4%2FLtD2cnHhv0SSdmmYDPdzRfY9cg1eZsFsuooa1s05GN6fBX%2F0Q8mlUwA%3D%3D","2019-06-17T18:49:13.104Z","1560797351527_vuex-muation-play.jpg",1560797351527,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1560797351527_vuex-muation-play.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=dyBiS7V9p3WK8%2FoyuHslonCT%2B6vKycD1HBNS0pcaMlNUe%2FVOurxsEoIHF2flv%2Bje6UhgUup8i4ut02oUza1tekyYgCK195Vx8MfRPUQsy1Mnu5bPBrmfW6yBM5AoDtf4px%2B6AuQhmHP73zr%2FQX%2FSQ7kjH1qOJj9Nd%2FbF6lAVDTaP5S2n8jtFU9aEnjma8cUtbCBzDJ7fLA%2B3exWcLDgk1EkkFZzXIknBdmFaCH2j6iNT6T%2B6f1YsAeR6i4ZAsj%2FDeBC2bugpybhyc25YQnGI5kTGM44x3En4i35HJe8h07gWgSBltS8de2y408OZAv4wj7rs%2FBtGwpMDMGnY2nfXpg%3D%3D","2019-07-08T22:26:18.233Z","1562624776691_refactor-play.jpg",1562624776691,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1562624776691_refactor-play.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=r5oNBN6v1M3kUwV8gFu72wjtHfd31L8WmiVQVtmZsrpTmZSbw3xFgFvqHoHzvjJiYvfK0N46jAoQhifYEMD4zZmc%2Bctan2zEcw5ruP0TdmCSM5%2BnacZPUbJoekWWfpzpcGalESL2vFUPG5bs2s0kWSYqocmgaasA9yUBxjtavDDbbejpeuZ29Qk6ITK6IuAzvfKPXZQ7Z3plBCiEm073tiPlXmPPONsNKi62ys1kBmJkZswqNarLC7ISbMg3wt1HruPaREJGgrs%2B2kYys0JMfXZ5OV2PLopAmwJqv4naic1a%2BVcT7Fx%2B5iV4DPtaLcVwe0fMAvajCppmfcc%2Be1kI2A%3D%3D","2019-07-22T16:29:05.407Z","1563812943787_Mixin-w-play.jpg",1563812943787,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1563812943787_Mixin-w-play.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=qvrIbwnWz8HJwXKZz%2F5mgVaxhkH68DJ%2FNzIGUkuoUUma06RMJa3iOrl3CdoMKfuDav5ep3Tffrp6IXhXGaK3sPiHivU8ukZOFoN4Uh9NJLBkpnCCpmdCYLVSdDznC0CZ1gRMu28KRApGr95ozzQMWRiDAwkqHpcwen3CgnaK2yZZmTT92ciyiH5hLsX6Q%2B6muUvtlm6IImNC6Be240aISg29UsLKad7YT1Zdes30TaHo792wuOIwflEoOksApzKH5OdHP5%2BjpupRaSHKGHtmkKy6HL91o%2FoHX8UamOKoQf14yrxUtvGoLXvuMus16nX%2FPW8CNi0FHvl9goSYmVxi%2FQ%3D%3D","2019-07-24T19:12:33.578Z","1563995551644_laughing-play.jpg",1563995551644,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1563995551644_laughing-play.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=jxnHnUX0CE88ODn5vve49n%2BxBU8oMzk0nQLgHyVCd0jU6ObHeSbxx%2BlmtmaEv9uqSRFNYTB2nRpXN0zJmmJbgHjSmyebtneWlb1oBmqHuVP0AB1WSTvTA1UyGYBsXRoX422DmvCTReY9XWAOmgchwKNwEyYn0SpLHdg1Qtd3O4%2BuZ0JcctwiwyuqTlVYr%2Bpvs1CTy1KIDCEww0V%2FYF5%2B%2FjysAbgnW4338dkoUvp9gyKwM0YSMPr2Sp5gDbaT%2FIBXiTXDnbdpKZjrjsmBuxkDza5dX8l8SgGY3HbjWZgDNaqmIkc5kgdZ6tjBI4cbSyxoCbBQQbUTf5B96HmJ4Un8UQ%3D%3D","2019-07-09T05:19:13.483Z","1562649549235_vuetify1.png",1562649549235,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1562649549235_vuetify1.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=R5JI2ZNSsxxB6IvZwkeR9r%2BsxGHATRgnmSd9NruMXA0ZpfM0FqCibqFqpC6R0QXeGKsX6LC1MRtT0baYJABs9Yz9I9fa%2BnBys1L7EHIPqSEf4rnz5F104HVGlf5XoCUIMsZ%2F4TLLVZgbmY4VKTl%2BeR%2FPkECUOiJqLLwlV%2FijfLVbRQwfofKVq07IZonZjs58k1LO0M4utShXaRJVsgVYnTc%2BiQiYFnXIShKip%2FkzAkijhQn9qjtPBsxqeT%2Bk7I8NAGupvHjn09Oj08XqJiCOuN7sy0SojseRuBtk2i82llrZBGDAljixN%2F99hbf2sAbrkmfS8wjJuq%2F8Sh04ofyKiw%3D%3D","2019-07-30T04:18:41.444Z","1564460317142_02-vuetify-lesson-2-newsletter-image-with-play.jpeg",1564460317142,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1564460317142_02-vuetify-lesson-2-newsletter-image-with-play.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=fE2g4dZqgX5eJ7n7AFi%2BP1p4lrPdJA0j8o3bzEU15o0o08rF0vvbJVO9VCTMOs9nfUt86fdylNfciuVi1Ah%2BowScmFlJKgHq4y0sNXmrBkhkA4NVnP%2FgWqdHuapntsdnlXnmd9EGUlcwjO9Mz9fo225JzWdkhPXaXbPB3kjkjZFyaTnFwT%2BuJBJSBcrWAFkc9San07hVFl3iPuAvvtQJhFliK4hQTDzki63rUwAQdRxs%2BJgnj%2FvuhMiS%2B9BFOyGWorCZrGtzFsgeHizLhhZEwj7dv5a%2BFkiGKgUV1Ku1pIUr0IZAboZjTsU8MupAxCskyV23%2FgIBeY2agSIDLGHR7Q%3D%3D","2019-08-13T14:35:11.124Z","1565706907892_social-media-with-play.jpeg",1565706907892,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1565706907892_social-media-with-play.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=mn8Xmf1OMOUq8%2FNdwFeqpeglhPnP886BpNTnZXwLO9STwj7Z8PodnzU10Q%2FSnEptS8XvHTXRTBXma2tjYTsiHZDvpAxM6eMdBllEHOx87oAMeI%2FICMUfD6uHYr9lFx80dTrSb8THpQL0zg%2FpzkZfu39NircFhMf%2Fdnttuo%2BTeslSARtdpvXg7cE5A%2BnsAQpTVUF76NE1Ogx20K0sjt7KgEyacrPA7gOzOwrMwTRMIFJB%2FLXfLsss4ylOjqGhrIKTAc5aWwXBnC5rQ5Jx6vANR63BiILupGdApnk5zZ0PtZkgZVOtdlaprqNUMBMg3dWjBuSAK5RuzKeEhYbe8Yu5IQ%3D%3D","2019-09-03T05:10:49.318Z","1567487447478_Vuetify-Lesson-04.002.jpeg",1567487447478,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1567487447478_Vuetify-Lesson-04.002.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=DlhDHlski32W36031TyqKPMDCeHiLQ8se2mi%2BTOWFTYMY4p%2Bq1Qa6tU5QIgdBEL%2F5ItOrBYZRCQNj9b0pXz3LgxyvybgMQnjIs7GMDcfeSD%2BmSJSulXd%2FP1%2FavJDJtDn8hPCbq5KOGLFIkxqMl2JSMdHtP%2BVJz4OlTmcuCstAvPt3ePL3kCasrjw06G0V88Hg%2BT65H%2BkZCZ3%2F6LJ1MTdZhpYnd0D4huFAG7OhwRIkWLulhVgWIJEfFTY50K%2F47Z2OramXAgno56id%2FaJ8zy9rF7sYLy87Zh%2B60P1uGL6z3rJdyUoH3F7bqr2%2F%2F0VUnr6F%2FLFhdHa8P1QoAPX0vZsTg%3D%3D","00:08:22","2019-09-16T16:52:08.364Z","1568652724628_Vuetify-Lesson-5-Featured-with-Play-Button.jpeg",1568652724628,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1568652724628_Vuetify-Lesson-5-Featured-with-Play-Button.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=bBmWqX8zqNFKVZY3Ew50GQag9E8%2BxIWz8vIJibqU%2FatMRxaYs6DZeP5xJCU07tuPz%2BnSOYwKIHI7E%2Fja6zdXZctwwccmtJYqcfofxKj6t2gCic9ZZ%2F2PzNRqm828JMZO4vb%2FDt0XzmSqpp4L%2FpKizcjsTdKajbOH9Bn1PI8wadHK4hWrrnkVBD7breE40qN8N47Hw%2BZk8kg2P%2Bofk3bjcV7X6lAgL6ttGg%2BX0qb2oKnD%2FM%2FSg6w9hxccsT8eLeZW3DB7tE9EBhSEw%2FG%2BrZXvem2zFq%2Fc4zWamteGf%2BDGgf46c5uBPB4HITl9VbhaNouslmcI%2BsRb0pcwVYjiyZtemg%3D%3D","2019-10-01T06:19:28.810Z","1569910767468_lesson-6-feature-with-play.jpeg",1569910767468,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1569910767468_lesson-6-feature-with-play.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=GPL5cy1gRh1oIYo1u4D5rIR2DqZ28Hz3BG9WIwEeeSznOJW2QZjqLLptTiXCU0uVRXtdjxCBNuu4Twa%2BjKmcg8vZGWEGWjAgGHVb8CwF2WvXSICZRjN%2BqLfD93lAcOe7vDa1KCAdCRyMKw9Ywa8GYPfLTvgK5h%2BIoSBhfFD9aZ06Qsg48WEXZ%2BnRMktsEKQPM8ov4SJHEZTHz0fqu5kvx0juZ4vh%2BFy5SQXbl3bqbwRUa2IzLk67YrwHacu1rc3P59kbMENU%2BZHqWyUbC7kNCp3hPYkzjCGihlosRo%2BLJUhh65R1iyTe0330EulcRdCikv%2BcFpvAdmqzScEX4y%2FZ7A%3D%3D","2019-10-29T20:44:52.436Z","1572381889575_Lesson-7-Featured-Play.jpeg",1572381889575,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1572381889575_Lesson-7-Featured-Play.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=I0NWnIznDCWkvltblq3ltDEaGBaCOF7aoxpIYH2NhjMMJ3HtB1qAqGGeOI2nN1gLQRGqbbDs6hyAlMgjszTfJ%2BAM9Y8LRIJMVkboSkYhUBee%2BkcHoZrR%2FVjRIVKaL7f1PxMgnt0naPqhYA67c5BEJeGfR0Y2pViWCL5vdTmrEj7wAMO2SqyEz4Rlbz7ibr7%2FsqDgdbrCBvCzaxRhukK5h3O2IqFqKq0qOLoD%2FBtXi%2B5lJqgpa6QOMKDIk7tArtvhK0tVeo4cu3Z9T8kfgT10ywyMbIhZKF03Ssc5kSGxOsMV0Tt94GxSQdpPpq29mRRptHXVLEIR7THJIIuND7%2FsfA%3D%3D","2019-12-10T16:35:01.675Z","1575995684737_featured-image-play-button.opt.jpg",1575995684737,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1575995684737_featured-image-play-button.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=uTiNdDyP6Kp9hsYfRq9JLx%2Fotb6xMt%2BGCVn2D6wiJaRzVG4TbR7IilMXz%2BKJyTXtNaJ91to%2BA00JKlQjlwpkkcti6LaIMkwF4xFRzaMsPcGYyTu8Oj2fBazQ3tNsCYnVpybiHHXBkT4V7GbLypQqFxkLcieXdE3eZQhlmudYsbwBSKz5K6%2B53yvOfTAxdR3SsFMJFJOZO%2FyQ3eBjjgfRC35HOmz4bNnWsSPfexkwh93gP2o0%2FIVPKnWBZ6bju7TewgIYcZLaVDTN1EIPyBUacKro%2B2wki9BQquxwPJSLR3beLthJTRzfX08nOmv64T1oc4zDt10eGhnMBrOW%2BtJr2Q%3D%3D","00:06:40","2019-12-24T16:07:56.061Z","1577203659779_lesson-9-with-play.jpeg",1577203659779,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1577203659779_lesson-9-with-play.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=e8i4kqgNnq538st9gQFeB3zEAbe64Z1Q9tCANCl8pt774Xe3moKWJDsu3c0LsqbVGSXSbkjnNNV4FVCslMEaCBsFOApIBWdLO7WNDxCisakZBnrgRGw8Kr3BnOGXZx5lYYFyOH5uyK8j7JyY88qtnUNS7lAifDJheBRE8DwXx7oK4dP8ha66udIZmrKPu5bs56gchzKWcTViwos7PpPEtiUKVnbFm2EPBtveHGVIZbXrbzRmUZmmE8N02whitzVezxzPS0L37l3zVpjRyu7NQRmlzX51XR1XOSuF1kC56j6Tya4feVXPgh474ixwKNYS7%2FwANZPW4sRZI1fuxg6E1w%3D%3D","2019-08-19T18:35:41.385Z","1566239739157_Why Animate.001.jpeg",1566239739157,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1566239739157_Why%20Animate.001.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=nmLF8EjZALhSd3kTebsRrlel3w32GjqIudFTzShyc%2FfnY%2FyjPVq4lkfDbXagWRi6p%2FsnEy06tGKCheXuduyTSUHhljjXIVQUEqmtgjguOxrPpLZMCm7PFtueMt70mhAOeCgixy3w1fJJWd4u%2FGu6qbhX6Mz8rnf%2FJkxxKd81NQPB78s6XXRvhxaV3Y0gD4AqZoUZFK2VCr0eUhAFe5U%2BDsbCqIleJ0%2FXgfRUkz10wISbxZfFR78BcwnI%2BqrRpX%2FgzSncJaIKPD%2BQzdFoLwj9XY8w8fzeQ9H9V4NuNOEl97ND6FeZIPwU%2BtYCGZT47phTe1GHi97aKJJ8%2ByVwVGCavg%3D%3D","2019-08-27T18:13:08.091Z","1566929584980_Transitions.001.jpeg",1566929584980,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1566929584980_Transitions.001.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=kyaiv4fSIz5TEtpzGnSbVWc%2B1WlWu65K9E%2FFZjwXbOfV8j%2Fc7wkuEHuk3QCUTjKpHLrXhEH5%2BNxZ41oDsmGR4QwNWgi5k6O1jHOcZ4zzYvkrgqC9Gk6xWIdotJShVOOEaS7M5ieGVD4PKFEfXh%2F1cDhyDxKKbN3sB6StaqsAE8Scn1RAkeSeuCEeqvjarTjsNw3LgD%2FrdIpMw%2BBVYf1SdmajMfM%2BAmP0U3CtnA5F22sqdW9QdnuTjk27DR2Bels7wrD398KEjd3%2BfVBdIaTsvjGmfNN0hQ6CHu1jt8pYMv4Zay8%2BbMAJ%2BuhhRQPmrxmdTuEjbLti%2BqhJr7G0%2FeDjXQ%3D%3D","2019-09-10T17:38:50.270Z","1568137128456_Page Transitions_play.jpeg",1568137128456,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1568137128456_Page%20Transitions_play.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=wXepLRAkvdf71Yk8RC4j8p%2BfLaew9wHi2G31hm3rYpvLLn2Ae3rIHg4OE31bib5d5FE%2BntyPT3t8TIFEzKEph%2FTQ6XvlnWR2sBTZMhf4wR6ZLmNiUMBo0riz5ZmO5YJfo2eWxklVAO5Ik5CgSshP4Wy3Lka0Y4QSIW0Smxp2tjvmsELtGJ2Ai9ld6vkdCokgAzj0Ahtnd7aMaMYPCniS5McWvpuZNnakHqPY0a4742DZ6N3QSyMMrE6teSKLI9TpgkM5xqkg3QwgYCJjersRL0wFqvIT%2FM7uDKc%2FUS1nOdE5UZljk2DjmvpS2%2BYPDolFTE6XWK%2FpnnDvEVBnUgNUZA%3D%3D","1569278860136_Group Transitions.002.jpeg",1569278860136,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1569278860136_Group%20Transitions.002.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=Iiby%2FrvfeymxUR0BS3P45R%2FdMS95dprYoBWRNx%2FjCfV9TBKiO9LTaWy7ONfFmDUFz5asAuhjz%2FjJIPzWtzA9Oec7kc1pDgD3Vc9U8Ba4RvnaFhnI6FSfTwiFOEO1DnrTNsKTi3XWYIu%2FFa45o1CtCNPIEKbHX0MDvRupkzxeyk0mMnWlzo%2FAuvqQiKSYp5Rml5jPkNFYl5%2FyP9AMcyF4XQguR8cgpAZwDnykF5TQAAE5OwGiKHks9agKYFFjWSR23aqpSE6C7U7l1NF%2F4NC7VXWkUUq5anKj577g7cCnEO%2FQa%2FMwZ1b5G%2BjKB01Xjt6D8hLCTgK%2Bv2y2dwte7zPeuA%3D%3D","2019-10-22T03:39:19.773Z","1571715554187_javascriptHooks.jpg",1571715554187,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1571715554187_javascriptHooks.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=DcpwLnT3eKj%2B32r2B0vUHbs9NAJd81xHOSN1q%2B4XIkZMOeaxHR06yC3BNlx%2B3QacBDv0PDLKvQWw29s7Tzn36fvkU5YPFDv6ROS3UEBRlFfp60QpeoA1UBOhq%2Bsjiz7Q67FucR%2FjuTXeTZJlLcwPWSOxwDMg4WtKbm%2Bgps2jGzhSgqr0Ouh2wSF0Fo3YsfXHXpm3M74qGl%2FA05mlln5KFIvHkEER7x22rQe2En6kgVAMJlY%2BMRHr%2FhQk8JOwfFE68X0jjVPmKqyG48lqyNu8uyaSl3ZT8YYc%2B4h5GYHYPCcUe83BktMVGYTba7g%2FrC8aF5pt7xiT%2Fjn9mSJz1PM2dw%3D%3D","2019-11-25T23:41:12.964Z","1574725248541_email.jpg",1574725248541,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1574725248541_email.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=mdGco6x%2F1GdWYaldCk4axk%2F3sCEsJ%2BOHiENuwt3UfQyDnJVj17NRxju2qelSKqRvYD7ATLwP3F8BBg29vgWqwYhEGjGHkUq3r7S6JHp%2Fdb0W3xP56Mk%2Be5TiubEcAKLuBmMI%2F2iRjdRy9BLhV5xf0ICc2qtX20g8kQt1F5C3%2BaoXDBVyrnml3NVPuWD6MNlRm%2BAbR1OkktFY4W4Pv6mLvTdazKHrBApiUEFhZIsR1KPi9yb0PtF9pzuaZCxQCatdr4QaH2OkG0GK2j392dxKs9L13fTbmrBl75GJUq7Lzgq%2BWS%2FVmhOu%2Fb4w7JKAnstrKBGhJKoaNUWpZHVXYtZsGQ%3D%3D","2020-01-13T22:38:40.983Z","1578955108503_nested_timelines_play_opt.jpg",1578955108503,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1578955108503_nested_timelines_play_opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=VtRis8dZlO1TsIt0a1vns9lhLjYQn2TntdDME9QLkKnwoQBDBJOjYC3DSqsS5gmnh%2FCSvLErv5O0ZCNWuSsMgNWnaH%2FuvqgpKu8ur%2BBRbcJ8voSp9wkpUoiwM82oBe08Z%2BFRDFDszkkhNzUJP6mNKmoRR%2BDzuV%2BDfvATr4fOpkfRaXwXO7EuIpZ73KenONnWItJG7Pin1eseuUNsq2OCXfaaOpEWIpb48vf4QlXPHg6b88BDw17JQr0ikKDB%2BNJlhsUYkiwUjtpNWGiVawGQuqGa0CYR%2BVuZgBQuK65vIqxtquTN9qY7jnDA4R0IrhKGg3Bj%2BFdGdKDeZmSCgODZEQ%3D%3D","00:07:41","2019-10-07T16:25:47.909Z","1570465541498_why-composition-api-play.jpg",1570465541498,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1570465541498_why-composition-api-play.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=TSMsN1BQv%2FMxVK6h6U49AMIFKENkLt%2FrgzejdmXEZXFe5uFi90zfE4lfVFpfoc1Y4xZb0gEpccPOElACftL0Y0wVDBT8CdWU%2F1ma8ClQRM1bz4NlehvLqv9FnGHMZeirbVaSsCkp9yxjQTrQDyzajb2%2FTRlpiICj7mZRwSNLvLGdtagYf8LkYN8RVViwJaMg87yczz3bOPlGo7tpD0dXEpnOA1zTMZzNJ38bK7rJVS9g56BrPVzm%2Fc%2BiOtcNKhRAw3bj1Zlg24MAMPhNWVamQIS9ZViREjizh3H1UWlWz2CsUYN6rhfIlUrtBiKXCqlywr5jhg9l8GZ5yQJvz9Xrrw%3D%3D","1570470261396_video-shot-play.jpg",1570470261396,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1570470261396_video-shot-play.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=T6cPKCjean4W0FutnAgKxSqPv4HWf5fBE83r0L4jjFyErg5MbyYHb82wkPsjJbWV7G%2ByEXK%2FgXSInna%2FVDtvRvUV1JTcmW%2F1eLvXDO0ElOtrvy27UOaCld%2BPKvsBshTn9756lQNPzHSULsEb3HRiV2%2FwUum1kzsZeAmiURg9LanzRecyQC63imrLjD4QEXFYN3aDwflUCeWp%2F9VdCHft8ueUQ093tGNXBrW45CbP3YWlT1pbnGTxEQ%2BHh9TD7oPg7pBBWvyT%2FHnPzYIWUa4s8TEODd6wAYjO0B%2FQOIwxVNct2F74E1bMIAV0s9PBQO8lmYmifXRTudJDe8Kush%2BDRQ%3D%3D","1571072659372_video-shot-play.jpg",1571072659372,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1571072659372_video-shot-play.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=Kay1SK2BpiWjWfWfqV4wPr6qJapwIwenIFYXcxsbnqdV4IU8NvDU5SBEhxTfHNjcPQhpmgyaAW4VBNd%2BcwwuOg05nNPaGE4lq8FYL4mhZWDnAxezv9GoodPlnVv0vInDUZHOZzG3ySH1eIzFbyVaiDuPeYfqtz9mfkuH151fFs7GkReykeah8a4Bf%2FCwjgfsJWwwRmDPFztuEc9yvFLgWcEoDAY0a4wJyd837j1QObKv6pqAqYZ0KS2k8OQAMm7lQMKAw6kwJeK4nSCDzNq%2B3UOB7Twd%2FYy42zFPdoNaVB4ZU8wZwkJCMRzEhTNwb85iiPnoMkKKbg6vpzleaggifg%3D%3D","1571087647993_video-shot-play-1.jpg",1571087647993,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1571087647993_video-shot-play-1.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=NeyVDr4i62ui3d4Ggj8F%2FR1Qad6KiThMk3wiebgbUic%2BbRsLJbMN7t%2BRBLcZSD76%2F1l%2BVDeJ%2BtZTdl8DdpelZ7CP%2F4BUajdy%2BtQI5Ji7YlhCWVkYghfwKNwFs9KI7uDEHiinYrLoGvDG7tnKIJoM5sOmWPATLggP9QRv6hyblIKrhSuYBo6tW1g7schMdwKAzHNWeR7a0xdl3Od6vQO6PAZb9exDVARrEq9Q1esZagDHNdK2iAhzblP4ayRbFXSOUtOnM3BV1M444RE%2BIRDTH3gIby%2F%2FCxUFPCyQnJ6m9kdEO6bSkIzvmIa43Ilk%2BdDmXHqextjP254arFdv3azsFg%3D%3D","2019-10-22T17:43:04.034Z","1571766182201_video-shot-play-2.jpg",1571766182201,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1571766182201_video-shot-play-2.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=RmfjZ6Z0delpVyveY4T2JwJo%2BFTRA81ieWgNlxjk8P2GuIY5gKIt%2Btws%2BfbC2fEEmxtlly9puKHpplhMoVIUyWoXfvfJu9pr%2BI9W14tg2SDUVXbt6nkhAu2iAnFXAta0KcTXQh%2B0oXuuf%2BtjZLv%2FBbpXBrm3z8ZWI%2FBz5CMejjuGoLoo1wZIxrwQjd1XtWYgfalFwBjWdj5LBUGovLsgNa%2BaokvJntmVAbH4s6WEwyKVXGTGA0R79CXJB75HUCvfLdmotAe8GnXM5CLA%2Fk%2Bh1oo7KsXolevzIDmSilNpLMu6%2FvENDTJJ1XhjxWFUA6EDUelnKsAgmg5IVB6fKuyX6A%3D%3D","00:02:14","2019-10-22T17:47:25.488Z","1571766443975_video-shot-play-3.jpg",1571766443975,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1571766443975_video-shot-play-3.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=ApdBBuQyswXo32Qu%2BWq%2F1PAWnMaKzOv8lSjAFhXnU02%2FGZW0NA2UvlEHkuZcbYnjLlnb7OJ8ts7n%2BvCjZQycTZgF5j4dMfpvMtH51lF%2F%2FKIWUsnoGvNJEINeez7XH6gWh3W%2FTKQU0mFVizflL6oE5Cn1EfS3lbjivssp36b%2B%2BDSK1pzlScu11H4fD3KhKxi3%2FRTHytoWokeFBEHHyMgtxx7NJjbyCHqIBPdlFpgqc%2FFmKSfXG90thSeTlN5UjgLben%2FgcQzM276hhVeeJoUBYmEE2XF67XyCh%2BufgDWiQ7rbuK6zh6oq05Y2CN5lb7kxI3ZoIPrkaYEBFAj2AiYqTA%3D%3D","Lifecycle Hooks","2019-11-16T17:02:35.585Z","1573923747781_cover-play-1-opt.jpg",1573923747781,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1573923747781_cover-play-1-opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=LMsE486P8KxmtazMjmOF9N5ZwHvMOxS6XSS2WViKhntv%2FuRBWcyQJyq%2Bq9QFI%2BYkYy8afsbYf9oXosf57FoPzC3qlf2kmKxmgO8q01UPm9klRr8ZWHdGltHkTgk6WItX5aUXQGbwE57VxZcaqGK2%2F%2FPigLuP%2BQL8xiUimFv4P92EH5MTabduj7Z8biEs2kcgvpo94qJKQV7g0lVlh%2BtYb1ArKnrjiqApoy9I2udZYTilQ9zGZQAY6WTUbng8aj3BsB8mH5LmoBhv7tw4L59d8ke7fZbhAz8dybRxNmbFcP4Mle2nrpln6kC%2B8GKNbBhB3XZ9GYmQCDAhHao3DxriAw%3D%3D","00:03:40","2019-11-16T17:08:20.558Z","1573924092751_cover-play-opt.jpg",1573924092751,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1573924092751_cover-play-opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=Ww1wvZzu6zpVzT3A5X2YFBPZILbz2h5tSHaIC9KshOylAbVLlICupnxqJ4bRXzMBkGliPmoVl2gVC0OcvfNbykoqO5FLl1KbgbvK8FsAe3ITJyXD50KON69I7%2FUiag7CNUZ5BdoW4Rb4mypUyWR8smU9kpD%2BDa0WHgldS%2By1Q7ZBEl2s7w9EULMSUbCAtqbb3jZ4DEr59LMPrsWxd2bHR8u4oe6S0adx5FGCp1HDABiIErTDz74bdIPSGYTuDukspm%2FbtXo%2BpEbqdCvdRfO3e1jLz2s3ebEa%2FWiCVXexcXLZDlo5pTMNRB4bwjQMYX5fxxdsai4Hjubt%2BhGz9DVhxQ%3D%3D","00:06:03","2019-12-02T23:07:45.362Z","1575327987826_state-play.opt.jpg",1575327987826,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1575327987826_state-play.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=ZHyW5ZkqIBZKjJ%2ByQG5FLxsnjAjxmFYCVHCFD1gJRWHtomwCLLegvyJeBHBiJ0HX4ilIf9votem3DD7DzA7mxyHOov%2Fdajcg6WUGFpw%2FLs1XVLtA%2BangUvtpHbjupspUl%2BtysqcxkZau9Hl1RaM%2Bhiz36wSQcUR3VSfGj25a0mF%2B0%2BgDHI0vbi94k1WscP4u2WyxHMlxf5Do7VS0Dtqps0SAO1ZeyYHb1tsQYal8OJY86t5g6R2YO3rN43NCgbDY75%2BdjaQQ0rbzy6lcOmG%2FUJ%2Fz6nzaDf9FWQimSyRAezlfxqYsAUasxJue2vCznDiZlQAnHRia8Uhe1l2BceihnQ%3D%3D","2020-06-01T22:16:35.758Z","suspense-social.opt.jpg",1591049779216,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fsuspense-social.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=RPbU0q%2FowGUrdeYRM1Y4C9p0KSLeRTy%2BS1VApkWhNu0PkEXTgVYjcNXa2U4a4gH4npcKACO%2B7sTTF6oU1uJNSeZwIseChDdIQn82sjkOjEcdO11luiZG%2B3LuPqG7GYH%2B0v4izHXRJ46wq3IfQATLV%2FOTPSavol3k3gHD1VA9%2BCfM1FunKScUNjU073M28Yayip1A0BteX%2F7qsoZHCI8n2r9xyyAyLrYIIOpvHMe9nCWztU4Y1YPt6R%2Bpk3xakZwTOMDEVr59fY5RCGyiuSJ8hjxZ%2FkXQT2EMYbtr4WbBMzLKdT6Z912Fjoa%2FWg9ZTTf8K%2BeQV4ACFiOjHqHKJizT3g%3D%3D","2020-06-01T22:55:29.553Z","teleport-social.opt.jpg",1591052037977,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fteleport-social.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=heEJLH6HibiubQtrQAIOtcgpsrLCefhX8ft7dbgtGujo4vJJi70xsqnWJ15FU%2F5OuQozsU1OX0PwDnthly%2BOYY3Q1oERo0N49KuGD8YKpORxjrTnGm%2FVJtrOFOpBYROu1BLl%2FSeCmt7xFiEvHELqYjTqkILBoPzVAiXb%2FXsuzNX3BO6njdgSSxYLSeS%2FTfkS3vG%2BVSVDfsmBOVKnRscGdBNDw55MqUhenaOBSRn7Fbq6WHuYMWQ88tpwKSJHh0uS5PprDHufn0Rz9Iam6eU2yYQcNf667qQXjjIIOO6SuHTiDPFCDNtFUCMrEAsdw2kFdnxNwJUEh7lLwy09XltRgg%3D%3D","What to test","I'm learning about Unit Testing on @vuemastery","Writing a Unit Test with Jest","Write your first unit test using Jest and Vue Test Utils.","I'm learning how to write a unit test with Jest on @vuemastery","Testing Props & User Interaction","In this lesson, we’ll continue writing simple tests for a component that requires user interaction and takes in props.","2020-02-17T21:35:14.452Z","1581975304867_Props & User Interaction.002.opt.jpg",1581975304867,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1581975304867_Props%20%26%20User%20Interaction.002.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=M5V%2BhCdFgvOQVRCwOcCmusEW7pBpIDSFQAkygrKfCxu%2FSGUz3fTr1Lkn9NAXyECtV%2F2vj5BykxVZoj7wal1tyKUijeYvH5f1xGFNrE0qK6uPImuQDjn79uK8SftfE%2BzyNe3crIf1GLZBip4dVsrDHpisf2pnUtAJjC3umjPc8RNbJItxZj48UBMemyryXhrM0UeTRsCYaMlxz2Ll%2F43l9Jx1pMkyIwVAsDoabDbzxRR7XbXuz9j9gb49uIbFHfpduOCGdVF%2FXFOsvNPcsfKNAP7eLbUtiaYmtEm9eRQUwmlCbSs7z%2FF7mAw8NWVKm7OQwCAv7dBNHbasqDqL569TCg%3D%3D","I'm learning about testing props & user interaction on @vuemastery","Testing Emitted Events","Learn how to test that your component's custom events were emitted with the correct payload.","00:06:56","I'm learning how to test emitted events on @vuemastery","Testing API Calls","Learn how to test your data-fetching components.","I'm learning about testing API calls on @vuemastery","Stubbing Child Components","How do we test parent components whose children have a lot of baggage?","I'm learning about stubbing child components on @Vuemastery","Vue 3 Reactivity","2020-02-03T20:50:50.092Z","1580763033577_1-social.opt.jpg",1580763033577,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1580763033577_1-social.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=aO7tGCZx5ioAeNFe8SZHZbcTlMBbYnQcCT73BgHilyB%2BhslllRjTf4dC1tdGulLMmhdLQzUHP2CzgciMD%2BEwmV8Pt2K5WzvVbRrHDDSA5khFxpSbx5SCC8%2Bz2MSQceIxJ%2F1xrOKh5bzYt0ADyuHpdRVi5JTTtE7SOGP58vcdKSm4tYwMkkh0CEa%2B3WPzEgytjydjJM2%2BFSSopnbtczB3%2F0m2ZRzjuF%2B1kjFv95zVQW%2FX9r62sFDccFVpsgX3z5NqJNqiJN992%2BZC7jYY1o1guiAq5Ko4tBMssrSM9wYjayDxZEAjGDpCwuuY5JjI03xcnvdn3a%2BV%2FRHiYhrOIYplXg%3D%3D","2020-02-05T21:34:41.588Z","1580938447903_ProxyandReflectsocial.opt.jpg",1580938447903,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1580938447903_ProxyandReflectsocial.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=DOzq5tkAmx865lfpg2x9KQ5NIOB6l6zzj3dn3uFEnCLjsDfM9HcVCz0ucejX3T6j1AS5m8Jn9THrudzpRyG5uLaKDxokMzTcE%2B9P2%2FdWict127Ufs7d7SKDRW3LSmCBi1htS4lFyjf6rR0R94jg18MUcHZJjjvcn6uNuBLsjgAdDG1P3j41wQqhEgOYsxMlkOWmJFMaYWTh%2FRb1csjJJLpKYI%2FJ6lh3OAGbTL8Tdsvyn5BPXRhnzDqCyEx%2FRGZB9uPJ3H6q0E6RycCRxnW8e0UopfLepLaE2ul5TOrnM%2FVwCEnvl0YC3Bbr1YEtPY5pkUzh7aYvZoq%2BGqc%2FMPjho4A%3D%3D","2020-02-24T22:17:30.240Z","1582582638082_ref-play.opt.jpg",1582582638082,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002F1582582638082_ref-play.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=N%2FZoW61V8jLE3wPGwrDcRwpSwjbWYD95fuaVP2HkxFgsItDcIs3f5ldOvoXtdXpQfeSpe2rsmMME1%2BSdnqUppwau2UNntGP5MJ5pnPQvB4FMH2GJT%2BiF3zYtYkH2CDI3EjNPoFbYcmkoS8G%2FuFWGewf5zR5cCKstDOvyfK34eP%2BnO6Pjd1IxfHupXMLutnMd1vRbaPaAN%2FmVQh5l5pRKpx6pOHG3ShQbs2Bebuo%2BWt5dyuA7onGI0EW3%2Fo7eXNPCE66F1vHwtoQYkwtvBODi6HMQ5PjMlV9LpN81UQ1mSwcPfZFQLevvRR4Vo0AAjRzJnnproC7dJDj1tiTdeQEWaQ%3D%3D","2020-03-25T22:52:15.773Z","front-play.opt.jpg",1585176721277,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Ffront-play.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=NFE8fBPAYoYziD7JzrrXxG5Qo3EdKwzqaYxJV7W1rNaaqju6ZxQGVZLIYaJaMBTE4YEsi1eEqs2gn7yT6vZajFH3k%2BOqeKyfnfSP5%2FYBgo5zXeNyPLwBsBUaD1IFVkWcRXsiWqiRKhaZnm4TupGi%2BrEZbQMj6ZhnBc6UUWcs0f3TagZETK2eKEYil516ErybmgJ3w1Px4urR0DeMLsBoNXkz9R3Sj6jUZ3i%2B3pTT5PSLKd32F5C5IO%2B2eQy7Cj%2Fof%2FH0J9QLnDT%2FbFmXsH3aCqx7omsdxfKcmIlnGhTgTV7%2FaUCcB0f7cRQRHUBnhY53O0jF1%2FCYLKJnaT%2F6XpKR3A%3D%3D","2020-04-13T17:21:16.105Z","evan&gregg-play.opt.jpg",1586798459662,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fevan%26gregg-play.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=f3ybEU%2FfXKWIXQEXD4gTnSJxZeIHFgINtuUaYmRCLmv3syzqiRXDDk1IL6VeQkODEXg%2FpVzKhjU0eGISiWRKvJbp7PAWPz%2BbY97GM8vX7%2Ff%2FJZJcFobWlBSz7Y%2FEKk3JI3y52aEh5XVvV8Ba588B6k0x1ZI30%2FABAnq7ormrEdFXsaX%2BHGZjzFJG4fg%2FiWPbcZKzBK5xuAFUzflj%2BD7jxaCUIvKaSENj6VuiITk87dl56bri8NO2dY%2F6zQ7cYEhhTx2%2FUW9sCfY%2BTRDqoRSzlbSzSTv8EM191bNYKTkD9KwLHsqvK2NKirxnp0GsJOJTPsP3Qzeoh9Rn0Mo5xVIkhw%3D%3D","2020-04-21T19:00:47.944Z","Evan&Gregg Source Code play.opt.jpg",1587495627239,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FEvan%26Gregg%20Source%20Code%20play.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=EsOaBVxeQjViPJZqk9b5%2BD3aX7Bdv8iW06CaBmoSHGEvAXPTNb3D%2FDJjwvG1z%2FVFNswSKr6qjiZzXsqNLvFB1B4ZozFEv60x6Wk%2BN85EbsWyfKKilHFc4bS%2BckiunM469bJdrDp%2FK9ldJPGqjzlyfsO%2FJBOF1f%2FjPBz6z1HJPBHBdZFwT83BKcPGswvNgJaV3a7hfJ8JGogCbF0x71hZ6DNM%2BWo%2Bolqlk03Jo9bH7NJ9izwxJIC0PSLbpRVQIKozHYot1c%2Fv8%2BehzIaykCUK7NyuhpEs7AFv8AZSnuxD1U5ohofvCPppHFGhTHt90O%2FzMC%2Bp2ZxYiudFVGU8vUytcQ%3D%3D","2020-03-03T21:19:19.846Z","featured-with-play.opt.jpg",1583270341139,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Ffeatured-with-play.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=TMeowpSEWAt99eImG0hDl8TpkdWYL2%2FxwCv%2BDa7L7LoAwZua3M%2BIENSLKW0p%2FQatbxsxkoCKiL8fX9px%2B6VgcLDnwa0%2FQutI8o7JA%2FsELzetT%2FEjNz%2BvyWSt5d8EnMxExQOKH3XN3BEhVXMUqZwBVmfEgVC97ClsuneiIU%2FLWxWtkhE%2Fzqqmugvgr22XCZ3TkyZ7nc8Oel%2Bp4SgWmlflIx%2BrGgZLuLOuUhHN6q3RAwHVHlA%2Fzc1BZDGeQqcdrJhQFfslIV2M4eDq3TVKL2A58r%2FoHDV951ASmHe1SJ8MSFA2XLxCGKZVqXncd0QVuaOnIX%2FOC2A%2Fu4dJp9rJvx6rjw%3D%3D","00:06:22","2020-03-03T21:34:41.448Z","featured-play.opt.jpg",1583271263965,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Ffeatured-play.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=Gy24TLtCBHzC2mNpTuVUsesmMfWdpL4WeVmHHeHDaff8jxHBU9w8wKupK7dg279%2F7KwwZS5ZA9niVekGfEMdCMENqnkN6B%2BzVOEeW4O9KY%2F%2F6vh1r1wYvSSjta8hf0fZP%2FRLAV%2BjmKOkL6kvpC11xLdiHtHhJztPvxRqn%2BCy1UJV7Scuaf0xb7ZDcabghNA7Jt9efplGVAE%2FO%2BZg5afn8k34ub1suilYYnGElnfRElnGp858QtKWOrwBrwwods3pIQ%2FgupRTvegNzZMgzNagD458NsNi8JqTIjcsoDpq%2BQVW%2BLpClQz1r5IHKbsukT7Ozqe81DSsUYdkO3lI6Mvitg%3D%3D","2020-03-23T20:08:36.508Z","featured-with-play.opt.1584994086834.jpg",1584994086834,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Ffeatured-with-play.opt.1584994086834.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=LGTXTxEhRdNgvAHBC%2FXcaES%2F8k%2FDUD%2BM6em78OMGhRZdTFcFdnKznQnwnSnugnaYaLqOj6b%2FAezKPfEkGIDpyHDm%2FMGHdeuXbfM%2ByTSXek8LPTJPsw4QVXdVraX2vrMBjHNvtWOdQObrGHKCjb6PI765UdeBMiMzLqpF9vxH91UCVCzgBTGT5iNAzuGczrNGHC6sB3NTDlhOorxFubFzWQQKQhdsD1cV7VkHlvznsNdG7w9mIa8%2Bw1wW5y1dIefGg35kIRFRH2hYtiOuseJ6ThV5CtE27aIv7aXnv11PmYJ0tx%2Bg5Tjbl24fOAGyc%2FI2A19H8pIhrFESw0%2F0v%2BKCYw%3D%3D","2020-04-21T17:59:12.330Z","problemwithprops_play_opt.jpg",1587491924135,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fproblemwithprops_play_opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=AojHbQ9eBnw1N7udFcBD%2BGsUzFvFZvyDvtGkvosdI1TuwsuQqkFquCcwXsn5mtOtArSdBYT71e79K2uK3iaV51ucKzitv2PCHkytMRxKppkpMpH%2F3wZ7vDxFiQ7bgslkwwawpW9Nv92EAjJ0L5PjZ0JWYYmgMPBM0C8WShryHko%2FruRoM1%2B%2BZG4n2vxc73W0szb9zIAoRG8XJD77oFiSlIJQW1TiIedFv%2Fxo90Buw5Dh1JVtSvnkY%2BSUBwIeFbbB%2BZoTKBVMQ1U0iSqkbMQFFeIfGyF2XeG31tvdIDIu8pf1mlsb9q%2B0NX9EPWetPSShs9tJc8JxqS262zcb6nvBsg%3D%3D","2020-06-23T00:00:00-04:00","00:04:41","00:03:24","00:05:57","2020-07-07T00:00:00-07:00","00:04:50","2020-07-21T00:00:00-07:00","00:07:33","2020-09-08T00:00:00-07:00",16,1586809041873,1586809240575,"2020-05-05T00:02:01.924Z","DD1-play.jpg",1588636894794,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FDD1-play.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=Wc%2Boh%2FE168GXViNfGieETqKy6TrJZRdW8%2BJpYARdtBKXkJ2M3kz3w34yT4Y19A9NOOYe6QimYFOCm4uiyQxrSTw48Mv3D2pdmSdmQnYixzHN4bKc8%2FAnJ4m6mFdaABeB4JfSrBU95HLuaW%2BRFLqBcPLPMyzxiSPCwR5BSFfwuLcmKrxIvt2RXhj5TeG8pHEcH4DGHLpLI3JTysEAc84svAdsddL%2BrphnQzXEVkWrniU%2FD%2FwgZbkQ%2F%2Bycybv6wO08unOq3reaBZ4KR0aF1hhd0e0omf79%2Fxu7pmZew%2BKslWnPrKh41WEuOW4Ti9OOA7bSVH%2Fj4mNs8CMulkyy1m%2FdfQ%3D%3D","00:07:19","2020-05-05T01:58:49.903Z","DD2-play.jpg",1588643838340,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FDD2-play.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=ADIptRgag12L81LIyw4JjLQ9X4Dn3MsctF9yDzPgu%2Bjn1kXlpwRmYSwqoJT7AaFrlpnuAC0Lu5kEhdEJ7xeikK8Q1w%2F%2BYMeyqYUEDxJR1I8Rqe5eFW5hsRPKumfRthoccpBaIkFO2LBib%2FcJJDusqOcgW4J8QKpIcVdq6RicYQrOZEG%2Fmk8I5cfdSx0VnncxbqFotHRgejHH9Lh1JeRamSv%2B670jwdUMEtTnOIMmc4RceYKk4E4EH2LmdEUmwo8mWwwmwqvrRjogfvilsyu%2B8Tdbj1gXqipOVunPpKzBE0S30M%2FXoIifCUurWZFofz%2BLSDbX%2B3UpfQVOL6KYlSLlOQ%3D%3D","2020-05-05T15:03:20.086Z","DD3-play.jpg",1588690977980,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FDD3-play.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=OSt1Z%2BPE2yiylyle1zTvB85mbr%2B40L78dYQvnC2pt6DEH6NjoE%2BAN38e%2BHRkwBLQPv8k1UiMbht%2F3haPVurp0v5m8xwJODfBkrEQFNUvxMzwrmLsJhqB8su6FDVPjDG%2FgZDA%2Fb2aFB1J2oJnfxl%2BY4JSp7R80njmun%2BC1z8NkorX0FvoX6I5hWzvBI8Nm5FgD2B%2FFcQ%2FyICuqlu80a8yRI0CcngXl8GupgU5xOkoNfbeouW%2B1zF47kMAPx1ZTmiElwlKyRGkWa3jeMORT0H0JJRIVUO5nOjymB36so04kajMviEBNoKP42mbFdyC%2B9drgIBsgqQ9ymKhQI5uMf0KvA%3D%3D","2020-05-05T15:10:19.426Z","DD4-play.jpg",1588691402696,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FDD4-play.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=g%2FAfo%2Fg6YIUqTzMIqR1zFPrMxutXYWSxpO4t7HbMPobBbZ07ao17VYHOE8a%2Brg8UPC25bZEeA40dkY2KwHAH%2FpoYscaOIyT70auexV%2BL7ysGObzhwGy6CcYYymxvWSiMmzD43ygrVRgakOC9knJ3g2LB3VyWajTNaDwEwHUTU7xyeuZxFXgBJq5%2B%2BBTe25y%2FTKAJlKHQbqrMAKqK7WPbgUiXy2KNhvizCQG3jEyCeJ6jI5g8M7ZPAQNLAPT8hgfkBMKCtlTrM5EBqm2o%2F8S3TvQmjpx4UxZcWW4InDJOgSVX1IeR0j0PktP64oHzcYnCk0%2BPgFhmJu98tDXOCqJEZg%3D%3D","2020-05-05T15:20:45.558Z","DD5-play.jpg",1588692027727,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FDD5-play.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=dFazngFQFOccfHZsOoEPiAMqMAEYKtVbGlQLp%2BcLo52tsJmmcK1K15IcJ5v9bzR5OViUkX3yxHyOOuV6ZqE%2BZ2clGcHcn6C6Oxx%2FhQDBrXzwaeEr3V%2B1irr6YCeHSN4mtoXljcTzZ2dHuODeeAcoPiNMRleGGsvpMuqS8HLbC7tQfHZfV6AXOWS6802vabi5c2xeLGIV6NRdngyTKtRJnIoWWKNwTeo71SbpkdhwioHpsTTnGqz9rHNbEGO7k2KAE0hMNxm1N1khhIuhSUqvXLZhNUQobpL%2F%2BylW9zgGA8nedGcaBTRCr%2F%2BI%2FW9q%2BPdkHgZz%2Fvx7EjsqTIXOQ7FN4w%3D%3D","2020-05-05T15:31:27.009Z","DD6-play.jpg",1588692670695,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FDD6-play.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=PnVYcE%2B94DbschWjPsCrjld%2F2mUx2ehuImq4z4G14MuLmqR8AvGd8n41hj15o7iOi1CFHjV6Tf4WN0rgoaAlcQd2JysgwSA1Fz7vizVQFlJqOabBJ2yP0q5fuRK6qGiEtVGzLavfVS1q4orkCEnWHajRzF4tKWAwyFX0mtll%2B8sbudbXaYh5ADt2iTItNey7pJVsR%2F7mJMlwptNEZNWnPj26N1yGB2SjYg%2F6YFfWH00Q%2B25U%2BPmqfJTTshs2bKIncFqhaAjFN1W7OybBr29GV1hhgZ0CuaBSDNZ%2B3x3DihfCGN5TFBNfcrlJT2YRxDi2V89apHvZ0Iac2WbLuDUeGw%3D%3D","2020-05-05T15:52:42.954Z","DD7-play.jpg",1588693946153,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FDD7-play.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=mHrQB8U8Pvowsiks0npmzZBIwmaAMffE1OP4jlB%2FJo6LCYYw9xpNCEep9rQEC3pkdiTtXr1uw6KnKBYvYo%2BegufbgvEYN8sQ22vRxCDyoe5c4TTz%2FjFcwR%2FUXkfRLZ%2BEBgGa%2BgsQ7JPEC6oc%2BAZIACsqVipfQAhIr%2FvR8IF1uDVPl8de4pkg0pRV%2FaG7INStNd96wyTgY5vgE1fhB4cqvRZPE6gw6hny%2FMRKU4wY9kwU84mYHCx%2FiPDZXO8Dc65W%2Bar0j2V5G%2Fu5y%2BIpSibdw7%2Bu1hy6IcnhHMi1dwzlUTRx9yMebdN9Lm8PAw2QE8abj9ZlUw0gimjDKLQvXXvQhA%3D%3D","2020-05-05T15:58:45.674Z","DD8-play.jpg",1588694309131,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FDD8-play.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=uTVpLWwOmOmDgg07jvWEIZwYSgxCdRgGXURXcv6b%2ByOXlV85zKtajTlW9wToi4xfAxAfWDFxCDDXoQMVxGJSqBXl86AMYeRmVeejNSIT5rOL3DKWRFjeWEMiRufjW7sgd54b%2FEtPQw4kY3Jx1WBKsjclL36VZXrUY83EFL9E3AsriOr1WeJ20LGq1v1dLi7trzTav4aek68AnglKn%2BLOVf7%2BPviti0J%2BLQMrEJfysgr5hKej%2FoRVa3lLQbJWzWFH4uXkn8okIy2guZKrreXQkmDULAZjXk1zfEQg7n%2F0jM%2BhEH9odLv98rBMivtA6TqMWY5UtOuC0dEaESAjMc3HVA%3D%3D","2020-05-05T16:06:34.168Z","DD9-play.jpg",1588694777234,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FDD9-play.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=lG3rFg1FChslK4bU32JUGi677zggfgT19MZwXUUycawd%2F8jGqCC%2F7pjv4vZY4eYqMYsqAxdVY8AkKynsSIOTRdeIIZD7jCgfjTpkXhejrW10OMVwPkIQSqIehaqtt029AFjQHMb88hK3GNsnYujkWlKC2WnV8kurmBsseChM95n%2F0Z3WnSaD6GLW6vhTOh6T9hc0GmipLao9Hxd%2BNoRkwo%2BG5n%2FcfcoYO2C4%2BD9fCZSTkbOD8FawtXnxMeRnIcfpNb9xrHJyTnuKGmFTu179g4%2FOFSRGp2O06RYKAO0pHvUUvRS%2BDRhMu4cA0H1%2F7mB6qHiy0vzE7zBcibbKnWnnbw%3D%3D","00:10:35","2020-05-05T16:14:36.956Z","DD10-play.jpg",1588695257925,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FDD10-play.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=UeGTNArKLm52IjKc%2FYiLDL6a8IC5ksypG5kxtWB8ojke%2FsPVT5jDiCHLUUQAZrw47N0nBzsgODK%2FCXk9vDGX4ym5FyIwZ5OSVwYD6ss1iizk9nD83c6Gjsu%2BCWEiE3OHFpnHyWYsamdgYKsP0CQWvmWd%2FCF53cne8wQw6D7XcdS3eO1EUvhDANS%2Bmy5%2BknTkF6v3vO9%2FRnphtApcXjRsbu%2BAXJrm5oetT2826Ei%2BQZSTd1zq9adfVhkX8rbqiWABePBpTO2hpeNw1MqY3FzXK%2FlNdxzShWjjClfQ89CxIRTxDYRZCnG1f0Zb00XkqMR79yx4As3dNbcPP%2B4wKDQ73g%3D%3D","2020-05-05T16:19:59.900Z","DD11-play.jpg",1588695590442,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FDD11-play.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=FyOheqtqxUQWndjj49KfTFEZghyY4P1MaXWDNjoMaTeto4y%2BwfI2Z5rnQuTEwgZ17cneGi%2ByPj6YT3J1fhBsjsi9uDc46neuCHinuw6%2FsvJQ8h27k7695kYZJwQ0bhU2aAoJpzD3uYOw7AJnNhE4iPQZUtWJzu15c9GCfL%2F1AKHRff9%2BwzrscR8L3%2Fscw4vlK9vztFP6iKK2t17C4dtKht71ZiJr4%2BNhzTslMpiivvtluNJynnO9usjSjRFKutROGnGuW4KMxrpZb4T%2B1IUAL4nx%2Fo2Az392NFL%2FUYZCm5jbub7JMl4PLqbGaE3YQN4xssF8HydOwiz1OWKRDe638A%3D%3D","2020-05-05T16:24:08.667Z","DD12-play.jpg",1588695831966,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FDD12-play.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=VKYpwQAEN0dX2CCvIYZYbKnp9IRYRg8e4U8O9GrFiaeZA3JeN0kS8sJ10FGwvSOIsyyL1r8EhblH4iuDsbcaaXrNckAXEunuxHGhqwQ3tkmsQVk3EkZpU4WOzBI7keZKcpB73t63mBlXNUKOrcOUZBjDVPK4t6mbZsPrp%2BukaIwczEpxfR%2BNW41CEQEBA%2F8HI1o%2B9ImwNMAvpyvYxH1SGnoy8WlZqu6zH%2BizOEwH0Cw2byVZFu4Jl5EJWSeXUiA02epExlWhkE%2BjtkPFCwlvjxfRK%2Bz%2Bpa%2BO%2BFLaeEm4cmYomaoXRC8GwpgmXUsleVlek3AJxCPCBM2ZhIV28FlHew%3D%3D","2020-05-05T16:28:09.033Z","DD13-play.jpg",1588696072069,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FDD13-play.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=infpes3MpIrXn6gbOhkL%2B%2BkKxTrlMlVhGlgkmggwKgOFAjQOa0QXHnzpHPux6hkraOhGgJxtxVj%2BRvzALJdnyf1BDTkA3jG7MC9UoFSyNdpGY62H%2B80KlNcFYHHxuJoCQOSKaplyIA20gPNwRV9drfmdctX9MV1rkmp66cB6cq%2B4hRUzFfyqyF4HiU63mhaTjAdyHEJd5qgGoVSsfiofEU0cBZqpQTih7BHjPmatcUZkoKB%2BNzKkAb3EZeCMnlXa1%2BvgC3bYDsyusjv%2BmZxYjBBngxttZ1vpEgmgzrXj8i3NX9z97AfpAstjpIXAJpFVLLIQ3Hpjn6PAuObNdgzyzw%3D%3D","2020-05-05T16:33:18.681Z","DD14-play.jpg",1588696379153,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FDD14-play.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=Z9HR0YlnuOrWcyIVkHXtHcM91lDxBzXGQ8HGU6bDIqJ8YtddL7%2F44qTtygWAgA%2FdFmOmj9DnnySP3ju6kq5iWqqqfwOCAYg6ATcenR3egS7XXKN%2BFYdOh%2Bhmm4mvkXGxPvpDHY%2FnopiVjX2NWMI2XFO8f6gZXN2w02m%2FiwNBY35krtrqqkDZ7275oVTpM3NhoMOz3JWiou6emiUHLQfpyhvJaCLwiClbXBsri9jwV0mDecGfCCHr%2B0sQO1mEqZkEyqHB5w2M0dceE7Irau0fz6WE6%2BhzqmPW1rLunSkLXapYYDUF%2F2x1kh0tpxVPzlMhezQjEPWgWNvuO2UzakOZJA%3D%3D","2020-05-05T16:37:51.560Z","DD15-play.jpg",1588696653713,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FDD15-play.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=uevw4iRQrIgeYQXHQjfo0%2FNwd1hRlT0ThqxGMzRE7e%2By4p8PuSEDGFqRXrvSN%2FOrLhbJD0wrJ5yS%2B7o7pLajNQgIwFHf88yMvDzRm%2FC8ZeF7mSM2Feg42TigztyrqqkJfuqpRXscvxfwafBJ7A66XBujnpEhIUaS9EOZ6a8S3SHDgcE4o4ThIBUtgO7uEAZYBqifCy5mAN6ytHjS8Ozi8OaS7tzGy%2F49AogFSOc7xshEyzCFiBSBtEP2as%2F1z7MdaKZRbmTZNRcPqGay33mP0V5V1ITIE4TWExAX%2FeckSGgqssq0aA1of2PUsUS4T6GBHVvpc6WYz4hWdMof07OVPQ%3D%3D","Learn the fundamentals of Vue 3 in this course that starts with the very basics.","2020-08-03T19:04:44.508Z","Untitled 2.001.jpeg",1596481469529,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FUntitled%202.001.jpeg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=tHqJfimp6px7h5LGGFFoE9ld7kckHqE%2F0OpZZOmk7tKL5HcVOtciR%2Fj0KkMpyllmkx%2BjRoGrvPVK4f%2B52UFwrNKigkxCfH9aLwGjf3eQUrSTmSWf9U6kN7zvyhEP47QOC%2BHBv%2FNEv77j0uoxeCOWO0fvGq2WxHPerC%2BERb164jKV2rZ7F%2FOkDMfWXFFKpj7qRuLLFFGp3pD4u95A5%2FJc6Co%2B1D%2B6yry%2BHzyK6ktahoLojAe%2FOb1nQwrIaFKw%2BtML7C46Ju%2BBcRn8GyDMJAWekFcCV7%2B1Cp22N4H1utUBL61NmQq6MDOBiO0cAki5LnWT8dtNBvvpETVrF2jZ5DE4wA%3D%3D","Components & Props","00:06:35","From Vue 2 to Vue 3","Learn the fundamentals of building a production-level single page application with Vue 3.","2020-09-29T19:30:02.287Z","RealWorldVue3.png",1601407792829,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FRealWorldVue3.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=TCxLI3Nj7VbdQ6uUc5HzBuiEjabznddisvuy2PaTm%2FKIvkhUrFrvdIYY5rV8%2BtnNJ9qfi9nWAF6bp2uSYsPkJp11xX8rU4GzuUV6%2BTiJp3nw%2BnvY6uOgZC5pY1UG6%2BDLrVWgUkEhaBG2E3xUqevS%2FYDMrlvKmKHwt2VgK8op34tLgpLLvTf05M8I3LyXNHyw2brHH0DVq0z2Pc7Yq68QnPdQB2liwpsp3SyhnyLwRu4j62sfFyutLR5ZCKRxu%2BlL6Jz5uUqgOjP2GqAqEzbU6qkXSlfslUOsimU8dliPwEvL0fZzDY7e4ACPmO4v4b9JeueaUNR9vqCjxiLNVFLimw%3D%3D","Building a Vue 3 app","2022-11-08T23:05:12.308Z","Building a Vue 3 App 704.jpg",1667948703936,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FBuilding%20a%20Vue%203%20App%20704.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=csG4OAfACmu7%2BhjwQgo%2FPgzrqix0%2B8pMXV1GvRQ6W0bEYRtr%2BQmBU2czkKEvElIPT%2Fhb%2FMMjVBr8nNCEFuv6s7FErgry5SKrT1VX4baTot0rbroEoSSUJi5meWWsuDbeyppXWdR8hbiMNoNbnkDZFlYHs0ATSZJHofxFN%2F9SchPWukbtkRuURhNqL58cPmuiWbRIJTnaGVeeT6lnCOavfGCLUfwQGQgRmuLZy0YGAWskZcKKFr6y%2F8eczQhC1WuP9bg5s4uKtqIJHXDGe%2FUnrFEt8cZhjjtklv4ALIQ5I%2BhVo9K7UQn03nu%2Foi9oWKB6VDRRCvaTqtMi2ctiXcAogw%3D%3D","00:09:38","Single File Components","I'm learning what .vue files are on @VueMastery","Vue Router Essentials","Learn how to use Vue Router for app navigation","Fetching external data into our app using Axios, a popular library for performing API calls","Dynamic Routing","Implementing dynamic routing using Vue Router","I'm learning how to implement dynamic routing using Vue Router on @VueMastery","Deploying with Render","Learn how to deploy your Vue app using Render","I learned how to deploy my Vue app using @Render on @VueMastery","Scaling the app","Tour what potential next steps can be taken to scale up an app in different directions.","I completed the Real World Vue 3 course on @VueMastery","2020-10-13T14:46:04.056Z","lesson-01-ts-featured.001.opt.jpg",1602600350475,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Flesson-01-ts-featured.001.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=m6OGdLnyDyzdGH2fj38mdh2rYFbormUS%2FIm7GKufpou5hMnoltvbxKpBCcpfm7gjT7eL647hTCYiCNtVYMzvoZ%2FCbUI7GEJ2bjxAD08AQDuOmEnNaH5p3UdoUgzzGOv%2BBSg%2B67VkVA1rqeks3M%2B74kpxSxX1bzHlx1DYvnTvRKMMEVQUKgvyqpUM2tXB7enGBDyDA4HNSY37DFOGbFkZiGH9%2FAp%2Brzb9JvYjHCCFuNzd%2B6pxsStrwFgkYUaiO8mMZp%2FS4U6Ho7AdFIw7A8JWFgVAV%2FNlQrIVis6vw0KdJpyKA1UpczhnTYCDVGAp7WGvdIbDLUAU1TFhAjt%2FAe3RxQ%3D%3D","00:05:55","00:04:09","00:06:23","Explore how Vue Router gives your Vue 3 app the navigation features it needs to scale.","2020-10-26T17:37:37.896Z","vue_router.opt.png",1603733818712,1603733846284,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Fvue_router.opt.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=XdvTKNKAEqFev8Idl2RfqyVLbbwL%2B07wLjggGuGBY%2FT0V8heWexna7S6Ne4eS57RA%2Fydvr9BSe4lJF7DdoLN6LwCA2vauJ9CAt0lcpnP%2Ftg4LBS6T8KdkIGLCwW32%2BjjCHtQrEQ1xMRviXwEAdEj2hbtn4CbEG2f8GunLRQVsQVzV8PwhUJQtn8Fqel6puxNbAZcQowPeq0OV1vbmTaws8CwgmUOloDoFrQS2fgptV9CR7oHpG%2F%2BIqTvdb%2BwVCT1GhaFgEOM2RsB%2BLwHK5BN9vzUpa%2BJczp2pKkJ3hpwgaPk45zX%2BecHcU1W0B%2F5fb0wARrpeu6p%2Ba0%2BA%2B0d%2FvA2Iw%3D%3D","2022-05-15T19:45:44.493Z","touring-vue-router.png",1652643742946,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Ftouring-vue-router.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=kEe6veS62f2bAHK1Ye7ZWMh%2B06B3WvE94AzS2lNIoyFQHw41nCY94HjI%2BJCEjeW2luXo7omEEFfNhwGd8CKRMfi8KSFOdXxcF0UWTiiPmKtwLskzdoNyv4FdV9Ywzrp8ivvaeyqjbea0SnTcaTR2zh%2FyvbFjJOqwGtAwidTYXjJGYIDQ%2FW7ZFqPy%2FPUOJe3831eGbUf3FRneLBkH9KHGdXQQC5LaGjrH2oE7ozBCSv3y8AmNFyCJWm%2FNqYPlNt85twJW9T2BDqda4%2BL4aABIMkNtAqR5HiejXMteXa3s3qzxL%2FoP9JYbqpYlgLJQRVn0cxSlxSrzVLjl4HTSx%2FO2vA%3D%3D","2020-10-27T00:00:00-07:00","Receiving URL Parameters","Explore the different ways we can send information from our URL and routing configuration into our components.","I learned the different ways to send information from URL into my Vue 3 components on @VueMastery","Building Pagination","Let's use our new Vue Router skills to build simple pagination in our Vue 3 application.","I learned how to build out pagination in a Vue 3 app with Vue Router with @VueMastery","Nested Routes","As our applications get bigger, you may need to nest our routes to reduce duplication and keep our code organized.","I learned how to use Nested Routes to reduce duplication with Vue Router on @VueMastery","Redirect & Alias","Programmatic Navigation","Learn how to navigate routes programmatically rather than using the router-link component.","I learned how to navigate routes programmatically with @VueMastery","Error Handling and 404s","Our application needs to account for three common errors our user may encounter.","Flash Messages","How to create temporary notifications for your users which can be displayed across your application.","00:05:27","I learned how to create temporary notifications in my web apps in @VueMastery's Touring Vue Router Course","Wrapping Up","00:09:44","In this lesson, we’ll assess our strategy for testing components that make network requests.","00:05:42","I'm learning how to assess a strategy for testing components that make network requests on @VueMastery","2021-03-30T00:00:00-07:00","00:05:36","2021-04-06T00:00:00-07:00","00:03:28","2021-07-06T00:00:00-07:00","2021-11-16T17:42:00.859Z","GraphQL L1 IMAGE.opt.jpg",1637084512004,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FGraphQL%20L1%20IMAGE.opt.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=Y6Lj5E8VoK%2FfwOJrCW8wSLRvTirXC99nFl8kXxeHerORxKh7MoKtrutK2r25XSmTM8DxspmRRgCLOuB%2F2brPwWlGseOwc%2BgRi2GLJa2Gju0xABKcgfwZZqTdwkjvdEzR%2Fcb%2F7ZzdusjFlrzi3BRMOvcZC1FiPHq8EYIAS65IgR69h1LwkGD8OkH%2FxbO9SQPu6KKxuR1NSRvARYhxAYzUeFcSHDUj1hbmrQuOEBSSeMg3mlZzZc4VtCAeVcn9y0WvJiRa4YuqYE736oLe%2By1IMXOMddhO4vYPwEhRvj8gpWKVHu3wObs0%2B%2B2DsduKzmju2NwqQY42%2FRRV1k60aH8gZA%3D%3D","00:05:52","00:05:01","00:04:46",1626279861986,"2021-07-29T16:11:39.926Z","Vite L1 IMAGE.jpg",1627575091791,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FVite%20L1%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=tRR3cGvzeoVOV5QPzm%2BFexH4r9AQ0BOTLWCCVxWhoGcHT2%2FtHBHB3YMxzUMhXuacZ1GEIeIik%2FgmbvFWEl5QTs%2FDoURZSDR4icqqhVTmMHqbNBal5C9auzzB%2BgT4n%2FNpgzIsFuYEZy1qbGfKQug5Dy7SDmYcMgUmfAgsuvWR4AzjnaquU1JpVgy82MJm9jKycg38LYNF7t1B1kNYF6yXnuxbQfL%2BBaJHg3UYyJxrQLSuRbE8tZ7fYtG13CchLbamaWHxJJseVJzdg1pv4SV6fS9ntOw1xK%2BYuVxzEVJdBcE%2FobgebYVeGhORxkEpm2z%2BmKkFrpwb5Atx2Yxdg4y8ng%3D%3D",1635274286909,"2022-02-28T22:42:29.439Z","Pinia.opt.png",1646087862560,1646088141085,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FPinia.opt.png?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=u%2BARNxOp0EForS6T%2F4wFI2fP4LtmWP1BpG4VXJLs8Xc%2B2hl2FIhGbCaTDxbwDsp187IOhm0tf9CnJBczvN4gPeN%2F9IFvlYIJ0wsFhVma7crABOfX5Utv0CJ%2FD2VP%2BDqwHANHD1qaCjHgvMpaeTuefljV3sAuDFx7i%2BCO4Y0Z95%2B4nqC%2FYJMlHKfVOBqBK1Cqgst%2BYJsxcsrUz%2FxnZjlpKUjj1NdlBBzi5TTXkHeTnktl%2BRheukLchYhQ7%2B3ZC8588ghuwI9wJ%2FqZyoHq%2FRrJ%2FImnFBqOfRZDTOa43U9sl6Zj96jXtjM171Z%2B8I8b1W6cYLI%2B7vuyx6SSaTPPnIJoFg%3D%3D","What is Pinia?","2022-03-01T21:01:00.755Z","Pinia L1 IMAGE.jpg",1646168453099,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FPinia%20L1%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=PyFXHD6UvJXjtkP%2FAbfLD7FVqMCabqBqnwHFYbmaUx2XSYqJ6tEjJqeqds3dzZQCB3lcA99TL5Yytk15f9ufSshm0kekpGoamVgmehN5pyrEwm1BnxtZi%2Fm%2By8f87h8dtw0maAh9eJSJ6Kq0oeyR%2BGwFI5gkW1aB7W28lH0CG6hFoe%2BxQEMUQb9WIAzbCNQZnZ%2Fm2h0O06e5uSAZFQICYBtGFdouSC7BANcLV1qAOT9haVcXzsZP%2F21HX6lDzUAp2uM5ae0QOtPo3vyweUUQKnClr%2BYaXZQ31mnAPgEI%2BV0yBb%2BbWxEVYe2hzI3NQNdY7uClhp7%2FugNvxleZCwQumw%3D%3D","00:04:00","2022-05-03T00:00:00+01:00",1646258194200,"2022-07-05T00:00:00-07:00","2022-08-02T00:00:00-07:00","2022-08-16T00:00:00-07:00","Learn from the expert in this recording of a live Q&A with Creator of Pinia Eduardo San Martin Morote.","pinia-qa","Pinia Q&A","Eduardo","San Martin Morote","Vue.js Core Team Member","2022-05-24T23:50:16.931Z","eduardo-san-martin-morote.jpg",1653436205787,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002Feduardo-san-martin-morote.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=UQROU5P7nIQdxJI6dfcbo4yZe9xquxOs8xqCQyC98SDZlr5GtLtXH4zwXdGU7DFj2E82X3JyJ6gZ8ZyL%2Bye6Vu6BdFtZtM%2Bt8gewnmMMv%2FfwdilAVA1fX2N7Qj1sqTimoJhoQGqkRg9dujIP6B4tDnP4%2Ba3IddL54BLRqDxzKgzm%2BlvkEw9ckO9slcqi9h6SgrcFg1P675B8MUHfRUmRsa3bwhFQsshTiDWOsbp9ecZwxmQDs8JYyMprgS5qC3zm3oAqEikfjAAOrAJ4uohvDOV2quAforL0h9MgSexqNJgxxPrMLROH1FJ%2B%2BbLF3F4LGDFjaXQRQc1aFy7E7Kf1sQ%3D%3D",1654193683276,"2022-06-02T20:19:33.726Z","Composables L1 IMAGE.jpg",1654201159463,"https:\u002F\u002Fstorage.googleapis.com\u002Fvue-mastery.appspot.com\u002Fflamelink\u002Fmedia\u002FComposables%20L1%20IMAGE.jpg?GoogleAccessId=firebase-adminsdk-jyioc%40vue-mastery.iam.gserviceaccount.com&Expires=16725225600&Signature=Q%2FUnoN0737HjSlVbmfQ12j9tiXjF9QEcJu6TaMEhNCPkQektw0fCnSBVM3MxFrduc%2FEoRe%2FXWHh2piECcRSxsOy97zubIZ%2FHPPRhXDdo5EIM8ZvUUccVZIBpdLcLp9ZSsCcRH3kySNE%2BK6o%2FH6oojWGGU4vmWIlWxycdyQU8KU%2FBc9oultliGY6fWPZk%2BEa9HvPxn%2BZh0r7PZf7LMB1t3ylXzzW5VXqQyBAFbqlPxpWFQs3IBiXHKH8TA012TjExFySO%2FlQGoxGr7MqFuYt0bMCL7NjnSsAbyG0%2F2cug0crDi535O4ejXwpd8ZZQog%2BJXTfy%2FNgXWbA0QK2KgbGJxQ%3D%3D","00:02:49","I'm learning how to modernize my styles with Tailwind, a utility-first CSS framework on @VueMastery","00:03:14","2022-09-09T00:00:00-07:00","00:03:39","2022-09-20T00:00:00-07:00",1660853673653,"00:06:04","00:03:49","00:01:32","00:03:50","2023-07-21T00:00:00-07:00","2023-08-03T00:00:00-07:00","2022-12-26T00:00:00-08:00","00:04:20","2022-12-27T00:00:00-08:00","Discover how to use Pinia like a pro by watching its creator demonstrate 5 elegant ways to use Vue’s state management library.","00:08:18","00:01:51","00:03:52","00:03:55","2023-04-20T00:00:00-07:00","2023-04-24T00:00:00-07:00","2023-10-17T00:00:00-07:00","Server Routes","2023-10-19T00:00:00-07:00","2023-08-01T00:00:00-07:00","00:08:01","2023-09-08T00:00:00-07:00","00:01:14",19,"00:08:33","2024-02-20T00:00:00-08:00","2024-01-30T00:00:00-08:00","This hands-on course teaches how to build web apps using Nuxt.js","00:08:03","I'm learning about Vue + Nuxt app rendering modes on @VueMastery","rendering-revealed","Rendering Revealed","00:00:00","2024-05-22T00:00:00-07:00","00:04:45","2024-05-30T00:00:00-07:00","2024-08-22T00:00:00-07:00","00:18:42",1751041483349,"top-ai-tools-for-developers","Top AI Tools for Developers")));