Snippets
Usage
image.element
Example 1 - Display the return HTML media tag using v-html
Use v-html only for SSR (Server-side rendering) because it is not secured and can lead to XSS attacks
<template>
  <div>
    <div v-html="element.toHtml()"/>
  </div>
</template>
<script>
export default {
  asyncData({ $cloudinary }) {
    const element = $cloudinary.image.element('example', {
      width: 500,
      crop: 'scale',
    })
    return { element }
  }
}
</script>
Example 2 - Display the return HTML media tag using dynamic component
<template>
  <div>
    <component :is="image" />
  </div>
</template>
<script>
export default {
  computed: {
    image() {
      return {
        template: this.$cloudinary.image
          .element('example', {
            width: 500,
            crop: 'scale',
          })
          .toHtml(),
      }
    },
  },
}
</script>
video.thumbnail
Example 1 - Display poster for a video
<template>
  <div>
    <video width="320" height="240" controls :poster="thumbnail.url">
      <source :src="video" type="video/mp4" />
    </video>
  </div>
</template>
<script>
export default {
  data() {
    return {
      video_id: 'dog',
    }
  },
  computed: {
    video() {
      return this.$cloudinary.video
        .url(this.video_id, {
          fetch_format: 'mp4',
          controls: true,
        })
    },
    thumbnail() {
      return this.$cloudinary.video
        .thumbnail(this.video_id, {
          crop: 'scale',
          width: 320,
        })
    }
  }
}
</script>
Feature
Add image placeholder
<template>
  <div>
    <cld-image public-id="example" width="500">
      <cld-placeholder type="blur" />
    </cld-image>
  </div>
</template>
Responsive and lazy-loading image delivery
<template>
  <div>
    <cld-image public-id="example" responsive loading="lazy" />
  </div>
</template>
Fetch and optimize an image not hosted in Cloudinary
Example 1 - Using CldImage
<template>
  <div>
    <cld-image
      public-id="https://icatcare.org/app/uploads/2018/07/Thinking-of-getting-a-cat.png"
      type="fetch"
      reponsive
      loading="lazy"
    />
  </div>
</template>
Example 2 - Using image.fetchRemote
<template>
  <div>
    <img :src="image" loading="lazy" />
  </div>
</template>
<script>
export default {
  data() {
    return {
      image: this.$cloudinary.image.fetchRemote("https://icatcare.org/app/uploads/2018/07/Thinking-of-getting-a-cat.png")
    }
  }
}
</script>
For v0.0.11 and older, use $cloudinary().fetchRemote() instead.