Comment implémenter la fonction de copie dans React : 1. Implémentez la fonction de copie via la bibliothèque "copy-to-clipboard" ; 2. Utilisez la bibliothèque "react-copy-to-clipboard" pour implémenter la fonction de copie ; Via la méthode "navigator.clipboard.writeText" (e)" pour réaliser la copie ; 4. Utilisez la méthode "document.execcommand("copy")" pour réaliser la copie ; 5. Utilisez la bibliothèque "copy-js" pour réaliser la copie fonction.
L'environnement d'exploitation de ce tutoriel : système Windows 10, React version 18.0.0, ordinateur Dell G3.
Comment implémenter la fonction de copie dans React ?
Copie en un clic dans React - cinq façons
1 Méthode d'installation
// npm安装---这种方式可能会对babel的版本有限制 npm i --save copy-to-clipboard //cdn引入 <script src="https://wzrd.in/standalone/copy-to-clipboard@latest" async></script>
2. to-clipboard
import copy from 'copy-to-clipboard';const handleClick = ()=>{ copy('复制的内容'); message.success('复制成功')}<Button onClick={handleClick}>复制</Button>
auquel il faut faire attention
Dans <CopyToClipboard></CopyToClipboard>
, il ne peut y avoir qu'un seul élément racine. Et je l'ai personnellement essayé. Si dans <CopyToClipboard></CopyToClipboard>
, un élément racine est enveloppé avec deux nœuds frères tels qu'un div et un bouton, la copie ne prendra pas effet. Je ne sais pas non plus. Si vous savez pourquoi, vous pouvez consulter le code source si vous êtes intéressé.
npm i --save react-copy-to-clipboard
import { CopyToClipboard } from 'react-copy-to-clipboard'; <CopyToClipboard text={'复制的内容'} onCopy={(_, result) => { if (result) { message.success('复制成功'); } else { message.error('复制失败,请稍后再试'); } }} > <Button type='primary' icon={<CopyOutlined />} /> </CopyToClipboard>
不过好似有的浏览器还可以使用,具体看文档点我
这个方法我没有使用过,有什么坑我也不清楚。
使用方法
<button id="btn" style="margin-top: 40px;">一键复制</button>const btn = document.querySelector('#btn'); btn.addEventListener('click', () => { const textarea= document.createElement('textarea'); textarea.setAttribute('readonly', 'readonly'); textarea.value = 'xxxxx'; document.body.appendChild(textarea); textarea.select(); if (document.execCommand('copy')) { document.execCommand('copy'); alert('复制成功'); } document.body.removeChild(textarea); })
这块我只是找到了这个库,也没有使用过,但是我看源码底层也是使用的document.execcommand("copy")
Mais il semble que certains navigateurs peuvent encore l'utiliser, consultez la documentation pour plus de détailsCliquez-moi
// npm包下载npm install copy-js --save// CDN导入<script src="//cdn.rawgit.com/duyetdev/copy.js/master/dist/copy.min.js"></script>
Je viens de trouver cette bibliothèque et je ne l'ai jamais utilisée, mais je vois que la couche inférieure du code source utilise également document.execcommand ("copy")
1. Installez
import copy from 'copy-to-clipboard';copy('hello world', function(err) { if (err) console.log('Some thing went wrong!'); console.log('Copied!');});
2. Utilisezconst { Search } = Input;const copyLink = (e: any) => { navigator.clipboard.writeText(e).then( () => { message.success(intl.t('复制成功')); console.log(e); }, () => { message.error(intl.t('复制失败,请稍后再试')); }, );}; <Search bordered={false} value={window.location.href} enterButton={intl.t('复制链接')} size='middle' onSearch={copyLink} />Copier après la connexionnavigator.clipboard.writeText(e)
Cette méthode présente également des pièges. Le temps de développement est relativement court et. il n'y a pas de détails spécifiques. Étudions la raison
Le paramètre e de cette méthode doit obtenir que la valeur de la zone de texte de saisie soit le nœud copié
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!