2.0.0 • Published 3 years ago

vue-clipboard3 v2.0.0

Weekly downloads
224
License
MIT
Repository
github
Last release
3 years ago

vue-clipboard3

Easily copy to clipboard in Vue 3 (composition-api) using clipboard.js 📋

Thanks to vue-clipboard2 for inspiration!

Install

yarn add vue-clipboard3

or

npm install --save vue-clipboard3

About

For use with Vue 3 and the Composition API. I decided to keep in line with the Vue 3 spirit and not make a directive out of this (if you want a vue directive, please make a pull request). I think it makes more sense and provides more clarity to just use this as a method in the setup() function.

Keep it simple.

Usage

Simple

<template lang="html">
  <button @click="copy">Copy!</button>
</template>

<script lang="ts">
import { defineComponent } from '@vue/composition-api'
import useClipboard from 'vue-clipboard3'

export default defineComponent({
  setup() {
    const { toClipboard } = useClipboard()

    const copy = async () => {
      try {
        await toClipboard('Any text you like')
        console.log('Copied to clipboard')
      } catch (e) {
        console.error(e)
      }
    }

    return { copy }
  }
})
</script>

With ref

<template lang="html">
  <div>
    <input type="text" v-model="text">
    <button @click="copy">Copy!</button>
  </div>
</template>

<script lang="ts">
import { defineComponent, ref } from '@vue/composition-api'
import useClipboard from 'vue-clipboard3'

export default defineComponent({
  setup() {
    const { toClipboard } = useClipboard()

    const text = ref('')

    const copy = async () => {
      try {
        await toClipboard(text.value)
        console.log('Copied to clipboard')
      } catch (e) {
        console.error(e)
      }
    }

    return { copy, text }
  }
})
</script>

API

useClipboard(options: Options)
interface Options {
  /** Fixes IE by appending element to body. Defaults to true. */
  appendToBody: boolean
}

returns an object with a single key: toClipboard

toClipboard(text: string, container?: HTMLElement)

requires that you pass in at least one argument that is a string. This is the text to be copied to the clipboard. The second optional argument is a html element that will be used as the container internally when using clipboard.js.

Contribution

PRs and issues welcome!

git clone https://github.com/JamieCurnow/vue-clipboard3.git
cd vue-clipboard3
yarn install
yarn watch

License

MIT License

el-dialog-hook@tencentcloud/chat-cs-vueashster-vue2-testchat-uikit-vue2@tomer.yechiel/pev2uuikitashster-chat@infinitebrahmanuniverse/nolb-vue-clipfzmtool@ashster/chat-uikit-vueashster-uikit-vue@everything-registry/sub-chunk-3076silvia-test@tyrosking/chat-uikit-vueashster-111manage-layouttccc-vue-uikittest-fdtwind-report-vue3-ant3vue-loong-uivue-layout.jsvue-layout3.jsvue-i-componentsxiaoyath12123vitepress-plugin-awesome-musicplayerafast-uiithui-plusitg-uijsplus-dgjf-ant-vxe-vue3-tsjam-utilslemon-boxfront-panelquick-bisunsun-uitool-test-003@bamboo-assets/vue-next-basic-clipboard@baosight/er@baosight/erxylcr-templatexs_web_uizycloud-uivue-safe-force-graphvue-safe-force-graph-polarisvue-show-uivirtai-ui-plusvirtai-plusvfgzngue_ts_common@gwdata/im@ifan_tsai/cc-ui@ifan_tsai/cc-ui-test@liuyunxi/antd-extend@liuyunxi/lds-ui@lcz-creater/form@far/components@fanjianyi/zm-utils@miitvip/admin-pro@mora-light/vue@pivoto/ui-base@opentiny/tiny-engine-plugin-datasource@opentiny/tiny-engine-plugin-i18nmw-td-vnext-libmgltestoa-app-uipage-generatorwhhpage-genwhhpage-generator_patchpage-generatorswhhpanel-frontruntime-containersbd-core-componentsnewtv-ui-3.0pev2pingxianxian_rendererqordialresource-managementsmarthome-h5-componentssmarthome-h5-components-plusgs-base-webhui-plughs-one-storage-uihs-admin-uihlxd-ui-vue3h-components-nextguns-uildp-uilive-open-platformmagicbean-saas-commonlongi-vue3-clilaiyutestpackage-testlaiyu@wltech/hooks@wwtelescope/embed-creator@yakj/check@yakj/y5@yyw15564054/cy-web-ui@tencentcloud/ai-desk-customer-uniapp@tencentcloud/ai-desk-customer-vue
2.0.0

3 years ago

1.0.1

4 years ago

1.0.0

4 years ago

0.0.2

4 years ago

0.0.1

4 years ago