React に貼り付けてアップロードする

昨年、React-Uploady のリリースについて最初にブログを書いて以来、このライブラリはかなりのユーザー ベースを獲得し、 Githubで数百のスターを獲得し(スターを付けていない場合は、何をすればよいかお分かりでしょう⭐️️)、数千のダウンロードを獲得しました。月。

React でファイルをアップロードする新しい方法

Uploady が 1.0.0 のリリースに向けて動き出す中、その API は安定しており、しばらく静かであったことを嬉しく思います。そのため、破壊的な変更が前進するとは考えていません。

この投稿では、Uploady がテーブルにもたらす便利なコンポーネント、フック、およびユーティリティのランクに参加する最新のパッケージを共有したいと思います — rpldy/upload-paste . 貼り付けイベントからのアップロードの開始を簡単にします。

Whatsapp Web は、実際に貼り付けてアップロードする良い例です。ボタンをクリックしてファイル選択ダイアログを開いたり、ファイルをドラッグ アンド ドロップしてアップロードを開始したり、ファイルをクリップボードにコピーして貼り付けたりして、UI に集中することができます。これにより、アップロード フローが開始されます。これは非常に便利です。

これで、貼り付けてアップロードを React アプリに簡単に追加できるようになりました。@rpldy/upload-pasteは、HOC (高次コンポーネント) と、独自のコンポーネントでこれを有効にするカスタム フックを提供します。数行のコードしか必要としません。

アクションで貼り付けてアップロード

上記の例のコードは、次のサンドボックスにあります。

コードタイム

Uploady のドラッグ アンド ドロップと新しい貼り付けによるアップロード機能の両方を組み合わせた例を見てみましょう。その結果、ユーザーは複数の方法でアップロードを開始できる、非常に優れたユーザー エクスペリエンスが実現します。

上記のコードはUploadDropZone ( @rpldy/upload-drop-zoneから) を使用し、 withPasteUpload HOCでラップします。本当にそれだけです。私たちの新しいコンポーネントである PasteUploadDropZone は、ドロップまたはペーストによってファイルを受け入れるようになりました。

withPasteUploadは、ほぼすべての React コンポーネントをラップできます。結果のコンポーネントは、いくつかの基本的な props (id、classname) とextraPropsと呼ばれる特別な props を受け入れます。この prop (オブジェクト) には、ラップされた基本コンポーネントに渡したい他の props を含めることができます。上記のように、新しいコンポーネントは通常の Uploadyオプション(例: autoUpload、params など)これは重要です。

しかし、待ってください、他にもあります…カスタムフック!

ページ全体またはカスタム要素で貼り付けてアップロードを有効にしたい場合は、usePasteUploadが最適です。

上記のコードは、カスタム フックを使用して、特定の要素で貼り付けてアップロードできるようにする方法を示しています。

フック関数のすべてのパラメーターはオプションです。

最初のパラメーターは、アプリで以前に <Uploady> プロバイダーに渡された props とオーバーライド/マージするために渡すことができるUpload Optionsオブジェクトです。

2番目のパラメーターは要素の参照です。ref が省略された場合、フックはグローバル オブジェクト (ウィンドウ) の貼り付けイベントをリッスンします。

3 番目のパラメーターは、貼り付けイベントによってアップロードが開始された後に呼び出される関数です。{ count: number }という形のオブジェクトが与えられます。Count は、貼り付けられたファイルの数です。

フックは、toggle と getIsEnabled の 2 つのメソッドを持つオブジェクトを返します。前者はリスナーを切り替えて、アンマウントせずに貼り付けリスニングを制御できるようにします。後者は、その名前が示すように、リスナーがアクティブな場合は true を返し、そうでない場合は false を返します。

React-Uploady の使命は、ファイル アップロード機能を React アプリケーションに追加することをできるだけ簡単にすることです。これは、多くのカスタマイズと拡張オプションを提供しながらもそうします。したがって、新しいupload-pasteパッケージは、既存の Uploady 機能とうまく適合すると思います。

試してみてください。あなたの経験をぜひ聞かせてください。

提案された投稿

脳卒中の壊滅的な結果を避ける: 家族の旅から学ぶ 。

脳卒中の壊滅的な結果を避ける: 家族の旅から学ぶ 。

はじめに 脳卒中は、いつでも誰でも起こり得る医療上の緊急事態です。これは、脳の一部への血流が中断され、脳機能が突然失われることで発生します。

ノーコード革命: Webflow、Framer、Bubble.io でビジネスの繁栄を解き放つ

ノーコード革命: Webflow、Framer、Bubble.io でビジネスの繁栄を解き放つ

これらの驚くべきノーコード プラットフォームの未開発の可能性を活用しながら、革新と成功のスリリングな旅に乗り出しましょう。注目すべき女性起業家であるサプナについての話をさせてください。

関連記事

脅威ハンティングのための OSINT の収集

脅威ハンティングのための OSINT の収集

サイバー愛好家の皆さん、こんにちは!OSINT for Threat Hunting シリーズへようこそ。最初の記事では、OSINT の概要と脅威ハンティングにおけるその重要性について説明しました。

お子様向けの初めてのハイになる本

お子様向けの初めてのハイになる本

(警告 - これは風刺であり、大喜びで破壊的な意図があります - 絶対に子供向けではありません) あなたは、お母さんとお父さんがキッチンに隠れて臭いタバコを吸っているのを見たことがあるでしょう。彼らはあなたに言います。

ライティングスキルを向上させる実証済みの 3 つの方法

書くことの利点とそれを助けるための戦略

ライティングスキルを向上させる実証済みの 3 つの方法

2022 年には GPT-3 がリリースされるため、ライティング スキルの重要性は低くなるようです。AI を使えば、文章が苦手な人でも質の高い人材を生み出すことができます。

デザインに 2 年 - 良い点、悪い点、そして醜い点…

デザインに 2 年 - 良い点、悪い点、そして醜い点…

「Hey Siri、オリビア・ディーンの『ミー・ダイブ』をかけて」私がナイジェリアのアクレにあるフューチャー アカデミー アフリカでインターンシップを始めたのは、2021 年 5 月のことでした。