반응에서 복사 기능을 구현하는 방법: 1. "클립보드에 복사" 라이브러리를 통해 복사 기능을 구현합니다. 2. "반응-클립보드에 복사" 라이브러리를 사용하여 복사 기능을 구현합니다. "navigator.clipboard.writeText" (e)" 메소드를 통해 복사를 구현합니다. 4. "document.execcommand("copy")" 메소드를 사용하여 복사를 구현합니다. 5. "copy-js" 라이브러리를 사용하여 복사를 구현합니다. 기능.
이 튜토리얼의 운영 환경: Windows 10 시스템, React 버전 18.0.0, Dell G3 컴퓨터.
React에서 원클릭 복사 - 5가지 방법
1. 설치 방법
// npm安装---这种方式可能会对babel的版本有限制 npm i --save copy-to-clipboard //cdn引入 <script src="https://wzrd.in/standalone/copy-to-clipboard@latest" async></script>
2.react-copy- to-clipboard
import copy from 'copy-to-clipboard';const handleClick = ()=>{ copy('复制的内容'); message.success('复制成功')}<Button onClick={handleClick}>复制</Button>
이 있습니다
. <CopyToClipboard></CopyToClipboard>
에는 루트 요소가 하나만 있을 수 있습니다. 그리고 개인적으로 시도해 보았습니다. <CopyToClipboard></CopyToClipboard>
에서 루트 요소가 div 및 버튼과 같은 두 개의 형제 노드로 래핑되면 복사가 적용되지 않습니다. 이유를 알고 있다면 관심이 있으면 소스 코드를 확인해 보세요.
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")
그러나 일부 브라우저에서는 여전히 사용할 수 있는 것 같습니다. 자세한 내용은 설명서를 참조하세요.클릭하세요
// npm包下载npm install copy-js --save// CDN导入<script src="//cdn.rawgit.com/duyetdev/copy.js/master/dist/copy.min.js"></script>
이 라이브러리를 발견하고 한번도 사용해본 적이 없는데, 소스코드 맨 아래 레이어에서도 를 사용하고 있는 것을 보니 document.execcommand("복사")
1.
import copy from 'copy-to-clipboard';copy('hello world', function(err) { if (err) console.log('Some thing went wrong!'); console.log('Copied!');});
를 설치합니다. 2.const { 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} />로그인 후 복사navigator.clipboard.writeText(e)
를 사용합니다. 이 방법에도 개발 시간이 비교적 짧고 함정이 있습니다. 자세한 이유는 연구해 보겠습니다
이 방법의 매개 변수 e는 입력 텍스트 상자의 값을 복사된 노드로 가져오는 것입니다
위 내용은 반응에서 복사 기능을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!