🥰

vue-clipboard2でクリップボードにコピーを簡単に実現する(laravel×vue.js)

2021/07/12に公開

vue-clipboardを使えば、vue.jsでクリップボードにコピーがめちゃくちゃ簡単に実現することができます!

VueClipboard2をインストールする

普通にインストールしていきます

npm install --save vue-clipboard2

VueClipboard2をインポートする

import VueClipboard from 'vue-clipboard2'
Vue.use(VueClipboard)

実装していく

クリックしたらコピーしたい要素に下記の要素を埋め込んでいきます。

v-clipboard:copy="selectedMemo.siteUrl" v-clipboard:success="onCopySuccess" v-clipboard:error="onCopyError"

例えば、僕はリンクアイコンをクリックしたら、そのリンクをコピーしたいと考えました。

↓こんなアイコンを用意しました。

vue.jsではこのように記述しています

<template lang="pug">
<img :src="require('../../../assets/svg/link.svg').default" alt="link" v-clipboard:copy="url" v-clipboard:success="onCopySuccess" v-clipboard:error="onCopyError">
</template>

<script>
export default {
  data() {
    return {
      url: "https://google.com"
    }
  },
  methods: {
    onCopySuccess(e) {
      // e.text がコピーしたリンク
      alert(e.text + " のコピーに成功しました")
    },
    onCopyError(e) {
        alert(e.text + " のコピーに失敗しました")
    }
  }
}
</script>

リンクアイコンをクリックしたら無事にアラートが出てきました!

終わりに

ライブラリを使うと何でも簡単に作れてしまいますね。

いろんなライブラリを覚えて、適所で使えるようにしたいと思います。

というわけで、今回はクリップボードにコピーでした。

Discussion