Some examples of how to use the library are shown below.
You can pass in the JSON object directly to the animationData prop. Your animation will load up faster using this method.
< template >
     < Vue3Lottie   :animation-data = "SkullJSON"   :height = "200"   :width = "200"  />
 </ template >
 
 < script   setup >
 import  SkullJSON  from   './lotties/skull.json'
 </ script > Copy to clipboard You can also pass in a valid URL link to the lottie file JSON object instead of referring to a local file. The JSON file containing the animation data must be hosted on a server that supports CORS.
< template >
     < Vue3Lottie
          animation-link = "https://assets2.lottiefiles.com/packages/lf20_GbabwrUY2k.json"
          :height = "200"
          :width = "200"
     />
 </ template > Copy to clipboard You can also pass in any valid css unit here. If you pass in a number, It will be inferenced as a pixel value. Some valid examples include 50%, 10em, etc.
< template >
     < Vue3Lottie
          animation-link = "https://assets7.lottiefiles.com/packages/lf20_Yc2PU8DdfX.json"
          :height = "300"
          :width = "300"
     />
 </ template > Copy to clipboard You can pass in the loop prop to make the animation loop infinitely.
You can use this prop if you are using lotties for success or error animations. Set the loop prop to 1 if you want the animation to play only once.
< template >
     < Vue3Lottie
          animation-link = "https://assets2.lottiefiles.com/packages/lf20_GbabwrUY2k.json"
          :height = "200"
          :width = "200"
          :loop = "3"
     />
 </ template > Copy to clipboard You can set the direction to alternate to reverse the animation at the end of a loop.
< template >
     < Vue3Lottie
          animation-link = "https://assets10.lottiefiles.com/packages/lf20_K0864uP6eC.json"
          :height = "200"
          :width = "200"
          direction = "alternate"
     />
 </ template > Copy to clipboard If you have an animation that is too big or too small, you can use the scale prop to scale the animation. This is only on the internal canvas and does not affect the size of the container.
< template >
     < Vue3Lottie
          animation-link = "https://lottie.host/ce7c97f6-e0ea-4ea6-b8c6-50d28928f288/jjsUvZSbD1.json"
          :height = "200"
          :width = "200"
     />
     < Vue3Lottie
          animation-link = "https://lottie.host/ce7c97f6-e0ea-4ea6-b8c6-50d28928f288/jjsUvZSbD1.json"
          :height = "200"
          :width = "200"
          :scale = "2"
     />
     < Vue3Lottie
          animation-link = "https://lottie.host/ce7c97f6-e0ea-4ea6-b8c6-50d28928f288/jjsUvZSbD1.json"
          :height = "200"
          :width = "200"
          :scale = "3"
     />
 </ template > Copy to clipboard If you set pauseOnHover to true, the animation will pause when you hover over the animation.
< template >
     < Vue3Lottie
          animation-link = "https://assets7.lottiefiles.com/packages/lf20_eOLhtkf7AY.json"
          :height = "200"
          :width = "200"
          :pause-on-hover = "true"
     />
 </ template > Copy to clipboard The lottie animation will play when you hover over the animation. Moving the mouse away will pause the animation at its current frame. Hovering over the container will play the animation from where it left off.
< template >
     < Vue3Lottie
          animation-link = "https://assets7.lottiefiles.com/packages/lf20_bNKaWpBPt6.json"
          :height = "200"
          :width = "200"
          :play-on-hover = "true"
     />
 </ template > Copy to clipboard You can also use the pauseAnimation prop to control the play and pause state of the lottie animation.
< template >
     < Vue3Lottie
          animation-link = "https://assets10.lottiefiles.com/packages/lf20_swnrn2oy.json"
          :height = "200"
          :width = "200"
          :pause-animation = "playState"
     />
     < button   @click = "playState = !playState" >
         Play/Pause Animation
     </ button >
 </ template >
 
 < script   setup >
 import  { ref }  from   'vue'
 
 const   playState   =   ref ( true )
 </ script > Copy to clipboard You can use custom assets in your lottie animations. You can use the assetsPath prop to specify the path to the assets folder. This is useful if you want to host your assets on a CDN.
< template >
     < Vue3Lottie
          animation-link = "https://assets1.lottiefiles.com/packages/lf20_xvz0dpbn.json"
          assets-path = "https://source.unsplash.com/user/wsanter"
          :height = "200"
          :width = "200"
     />
 </ template > Copy to clipboard vue3-lottie has support for events to be emitted from the animation.
< template >
     < Vue3Lottie
          animation-link = "https://assets4.lottiefiles.com/datafiles/i0DrGl1AyhF4rvhqpBUbia6zUEekgKoxRociBzZy/stopwatch.json"
          :height = "200"
          :width = "200"
          @on-loop-complete = "completed++"
     />
     < span >
         This animation has completed {{ completed }} times.
     </ span >
 </ template >
 
 < script   setup >
 import  { ref }  from   'vue'
 
 const   completed   =   ref ( 0 )
 </ script > Copy to clipboard You can use the animation ref to control the animation. You can use the play, pause, stop and setSpeed methods to control the animation.
Add a ref to the vue3-lottie component and then call the methods you want.
< template >
     < Vue3Lottie
          ref = "lottieAnimation"
          animation-link = "https://assets2.lottiefiles.com/private_files/lf30_vcwnens3.json"
          :height = "200"
          :width = "200"
     />
 
     < button   @click = "play" >Play</ button >
     < button   @click = "pause" >Pause</ button >
     < button   @click = "stop" >Stop</ button >
     < button   @click = "toggleDirection" >Reverse</ button >
     < button   @click = "getFrameCount" ># of frames</ button >
     < button   @click = "getTimeCount" ># of seconds</ button >
 </ template >
 
 < script   setup >
 import  { ref }  from   'vue'
 
 const   lottieAnimation   =   ref ( null )
 
 const   direction   =   ref ( 'forward' )
 
 const   play   =  ()  =>  {
     lottieAnimation.value. play ()
 }
 
 const   pause   =  ()  =>  {
     lottieAnimation.value. pause ()
 }
 
 const   stop   =  ()  =>  {
     lottieAnimation.value. stop ()
 }
 
 const   toggleDirection   =  ()  =>  {
 if  (direction.value  ===   'forward' ) {
      pause ()
     lottieAnimation.value. setDirection ( 'reverse' )
      play ()
     direction.value  =   'reverse'
 }  else  {
      pause ()
     lottieAnimation.value. setDirection ( 'forward' )
      play ()
     direction.value  =   'forward'
 }
 }
 
 const   getFrameCount   =  ()  =>  {
      alert ( `This animation has ${ lottieAnimation . value . getDuration ( true ) } frames` )
 }
 
 const   getTimeCount   =  ()  =>  {
      alert (
          `This animation takes ${ lottieAnimation . value . getDuration ( false ) } seconds` ,
     )
 }
 </ script > Copy to clipboard