ShareService:複数のタブを構築するためのライブラリ
3503 ワード
我々は簡単に1つのページのアプリを作成するために反応を使用することができます、反応は、UIの状態をレンダリングするのに役立ちます.しかし、すべての新しいタブについては、アプリケーションのレンダリングに反応するためのデータを持って私たちのビジネスロジックやサービスを実行する必要があります.それで、我々は我々のビジネス論理とサービスを集中させることができますか?
すべてのページが閉じられるまで、ShareWorkerインスタンスは同じドメインを持つクロスブラウザタブで再利用されます. アプリケーションは、ユーザーが最初のタブを開いたときにデータを読み込むデータを読み込むためにShareWorkerを作成します. アプリケーションは、ユーザーが2番目のタブを読み込むときに既存のShareWorkerインスタンスからUI状態を取得します. ユーザーがWebページにアクションを持っているときにShareWorkerインスタンスで実行するアクションを送信する ShareWorkerインスタンスを実行した後に使用するタブにUI状態を送信する
私はあなたと反応アプリを起動していると仮定する
1 .最初のステップ:インストール
< div >
<p>3.シェアワーカー労働者の共有サービスを接続してください.JSファイル:< p >
< div class ="LagagCount - gig - Link - tag "
"スクリプトのID "https://gist.github.com/embbnux/6d19a3a1f56d4e6aeb38924557928d04.js//>
< div >
<P>4.反応コンポーネントで
< div class ="LagagCount - gig - Link - tag "
"スクリプトのID "https://gist.github.com/embbnux/f156a3062f2f0b160e5ccb9166f8fc42.js//>
< div >
単純な状態論理のために、我々はちょうど使うことができます
複雑な動作に対しては、
まず、実行者を
< div class ="LagagCount - gig - Link - tag "
"スクリプトのID "https://gist.github.com/embbnux/7a94cddc93a4c09bd9126ad5b4b8e14c.js//>
< div >
<高橋潤子>
< div class ="LagagCount - gig - Link - tag "
"スクリプトのID "https://gist.github.com/embbnux/02674501faa13d34e264a9bde423e8ab.js//>
< div >
<p>5.データ持続性
<川合>ここでは
< div class ="LagagCount - gig - Link - tag "
"スクリプトのID "https://gist.github.com/embbnux/4e222d54838bc7e60fa5bd9083ad97ba.js//>
< div >
我々はオンラインデモをしているhere . 完全なデモソースコードはhere .
ShareWorkersはSafariやIEの現在サポートされていないので、我々は実行することはできません
いくつかの藤堂があります
< OL > サポートを追加する サポートブラウザの拡張子 サポート電子メインとレンダリングプロセス < OL >
ブラウザ拡張と電子アプリを中心にサービスをサポートします.p >
オリジナル・オリジナルlink
SharedWorker
解決策です.そして我々はshared-service ライブラリは、あなたのビジネスの論理とサービスを集中し、複数のタブを構築するための痛みなしでアプリケーションを反応させる.動作方法
すべてのページが閉じられるまで、ShareWorkerインスタンスは同じドメインを持つクロスブラウザタブで再利用されます.
ShareServiceライブラリで動作する
私はあなたと反応アプリを起動していると仮定する
create-react-app
.1 .最初のステップ:インストール
$ npm install @shared-service/core @shared-service/react
2 .あなたの反応アプリケーションルートエンドポイントのinit共有サービス:< div >
<p>3.シェアワーカー労働者の共有サービスを接続してください.JSファイル:< p >
< div class ="LagagCount - gig - Link - tag "
"スクリプトのID "https://gist.github.com/embbnux/6d19a3a1f56d4e6aeb38924557928d04.js//>
< div >
<P>4.反応コンポーネントで
< div class ="LagagCount - gig - Link - tag "
"スクリプトのID "https://gist.github.com/embbnux/f156a3062f2f0b160e5ccb9166f8fc42.js//>
< div >
単純な状態論理のために、我々はちょうど使うことができます
setCount
関数リターンuseSharedState
更新するSharedService
.複雑な動作に対しては、
sharedServiceServer
.まず、実行者を
sharedServiceServer
アットworker.js
:< div class ="LagagCount - gig - Link - tag "
"スクリプトのID "https://gist.github.com/embbnux/7a94cddc93a4c09bd9126ad5b4b8e14c.js//>
< div >
<高橋潤子>
< div class ="LagagCount - gig - Link - tag "
"スクリプトのID "https://gist.github.com/embbnux/02674501faa13d34e264a9bde423e8ab.js//>
< div >
<p>5.データ持続性
<川合>ここでは
localforage
ストレージを処理するためのlibp >< div class ="LagagCount - gig - Link - tag "
"スクリプトのID "https://gist.github.com/embbnux/4e222d54838bc7e60fa5bd9083ad97ba.js//>
< div >
オンラインデモ
我々はオンラインデモをしているhere . 完全なデモソースコードはhere .
問題
ShareWorkersはSafariやIEの現在サポートされていないので、我々は実行することはできません
share-service
ブラウザの共有ワーカーで.ご覧くださいhere Safariでアプリケーションを作成するにはp >その他
いくつかの藤堂があります
shared-service
図書館: < p >< OL >
Vue.js
図書館.ブラウザ拡張と電子アプリを中心にサービスをサポートします.p >
オリジナル・オリジナルlink
Reference
この問題について(ShareService:複数のタブを構築するためのライブラリ), 我々は、より多くの情報をここで見つけました https://dev.to/embbnux/shareservice-a-library-for-building-multiple-tabs-react-app-4fgiテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol