站長資訊網
        最全最豐富的資訊網站

        react 怎么實現拷貝功能

        react實現拷貝功能的方法:1、通過“copy-to-clipboard”庫實現復制功能;2、使用“react-copy-to-clipboard”庫實現復制功能;3、通過“navigator.clipboard.writeText(e)”方法實現復制;4、通過“document.execcommand(“copy”)”方法實現復制;5、通過“copy-js”庫實現拷貝功能。

        react 怎么實現拷貝功能

        本教程操作環境:Windows10系統、react18.0.0版、Dell G3電腦。

        react 怎么實現拷貝功能?

        React中實現一鍵復制——五種辦法

        • copy-to-clipboard庫(推薦)
        • react-copy-to-clipboard庫(推薦)
        • navigator.clipboard.writeText(e)(推薦)
        • document.execcommand(“copy”)
        • copy-js庫

        copy-to-clipboard

        1、安裝方式

        // npm安裝---這種方式可能會對babel的版本有限制 npm i --save copy-to-clipboard   //cdn引入 <script src="https://wzrd.in/standalone/copy-to-clipboard@latest" async></script>
        登錄后復制

        2、使用方式

        import copy from 'copy-to-clipboard';const handleClick = ()=>{ 	copy('復制的內容'); 	message.success('復制成功')}<Button onClick={handleClick}>復制</Button>
        登錄后復制

        react-copy-to-clipboard

        該方法是基于copy-to-clipboard的,如果在安裝copy-to-clipboard的時候,發現和其他部分npm包有版本限制的話,那估計這個也不行,但是也不是不可以試試
        1、安裝

        npm i --save react-copy-to-clipboard
        登錄后復制

        2、用法——這里有個地方要注意,在<CopyToClipboard></CopyToClipboard>中,只能有一個根元素,并且本人親試,如果在<CopyToClipboard></CopyToClipboard>中,一個根元素裹著兩個兄弟節點比如div和一個button的話,復制也不會生效,我也不知道為啥,有興趣的小伙伴可以去看看源碼。

        import { CopyToClipboard } from 'react-copy-to-clipboard';   <CopyToClipboard text={'復制的內容'}    onCopy={(_, result) => {      if (result) {        message.success('復制成功');      } else {        message.error('復制失敗,請稍后再試');      }    }}  >    <Button      type='primary'      icon={<CopyOutlined />}    />  </CopyToClipboard>
        登錄后復制

        document.execcommand(“copy”)——已被棄用

        不過好似有的瀏覽器還可以使用,具體看文檔點我
        這個方法我沒有使用過,有什么坑我也不清楚。

        使用方法

        <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);   })
        登錄后復制

        copy-js庫

        這塊我只是找到了這個庫,也沒有使用過,但是我看源碼底層也是使用的document.execcommand("copy")
        1、安裝

        // npm包下載npm install copy-js --save// CDN導入<script src="//cdn.rawgit.com/duyetdev/copy.js/master/dist/copy.min.js"></script>
        登錄后復制

        2、使用

        import copy from 'copy-to-clipboard';copy('hello world', function(err) {     if (err) console.log('Some thing went wrong!');       console.log('Copied!');});
        登錄后復制

        navigator.clipboard.writeText(e)

        這個方法也有踩坑的地方,開發時間比較短,也沒有具體去研究原因
        這個方法的參數e,是需要拿到input文本框的value值為復制的節點

        但是這個方法可能在一些應用里邊的端內瀏覽器會有限制,在正常瀏覽器里是可以使用的,但是比如說現在在飛書端內瀏覽器里邊是沒有clipboard這個對象的。還是得看場景使用。

        1、使用方法

        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}  />
        登錄后復制

        可能還有其他一些方法,暫時沒有想到的

        推薦學習:《react視頻教程》

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 刺激无码在线观看精品视频| 久久精品国产WWW456C0M| 国产精品亚洲αv天堂无码| 国产成人精品电影在线观看| 无码精品人妻一区二区三区免费| 国产成人AV无码精品| 青青青国产精品国产精品久久久久 | 国产精品1区2区3区在线播放| 无码精品人妻一区二区三区免费 | 亚洲精品国产综合久久一线| 9re热国产这里只有精品| 久久国产成人精品麻豆| 国产精品一区二区久久国产| 人人妻人人澡人人爽欧美精品 | 国产一成人精品福利网站| 国内少妇偷人精品视频免费| 无码人妻丰满熟妇精品区| 真实国产精品vr专区| 婷婷成人国产精品| 欧美精品三区| 热综合一本伊人久久精品 | 国产精品网站在线观看免费传媒| 亚洲av午夜福利精品一区| 亚洲国产精品自在拍在线播放| 欧美日韩精品一区二区三区不卡 | 精品国产国产综合精品| 91精品视频在线| 午夜精品在线观看| 国产精品你懂的| 99在线精品免费视频九九视| 欧洲精品99毛片免费高清观看| 在线中文字幕精品第5页| 亚洲精品制服丝袜四区| 无码人妻精品一区二区三区东京热| 亚洲国产另类久久久精品黑人| 亚洲日韩国产精品第一页一区 | 98香蕉草草视频在线精品看| 91精品国产麻豆国产自产在线 | 亚洲午夜精品久久久久久人妖| 日韩欧国产精品一区综合无码| 精品视频在线v|