WebコンポーネントのReduxコントローラを書きましょう
8975 ワード
エリオットMarquezは、私にLit & Friends slackの上でReduxコントローラを書くよう訴えました.
-アクションボタン
背景色:うんちD 7 Die 2!重要
カラー:竜華ffffff!重要
ボーダーカラー:5 .重要
}
Elliottに続く
I work on Developer experiences at Chrome and closely with the web platform
それで、クラックをしましょう!
ステップ0 :セットアップ
最初のステップは、新しいプロジェクトを作成し、いくつかの依存関係をインポートを開発しましょう.
ステップ1:減速機
我々のコントローラは、若干の状態
ステップ2:アクション
信じられるかどうかは、我々はかなり行われている.我々が必要とする最後の部分は242479142のアクションを実行し、ホストを更新する
コントローラを使いたいなら、互換性のあるホスト(litterのような)で作成してください.
Live Demo
-アクションボタン
背景色:うんちD 7 Die 2!重要
カラー:竜華ffffff!重要
ボーダーカラー:5 .重要
}
Elliottに続く
I work on Developer experiences at Chrome and closely with the web platform
それで、クラックをしましょう!
ステップ0 :セットアップ
最初のステップは、新しいプロジェクトを作成し、いくつかの依存関係をインポートを開発しましょう.
mkdir controllers
cd controllers
git init
npm init --yes
npm i -D typescript lit
touch reducer.ts
次に、コントローラのクラスを設定します.TSimport type { ReactiveController, ReactiveControllerHost } from 'lit';
export class ReducerController implements ReactiveController {
constructor(
public host: ReactiveControllerHost,
) {
host.addController(this);
}
hostUpdate()?: void;
}
そのhostUpdate
シグネチャは、タイプスクリプトが文句を言わないようにするだけです.🤷.ステップ1:減速機
我々のコントローラは、若干の状態
T
と若干のアクションA
を取って、若干の他の、または、同じ状態T
を返す機能の上で、基本的にいくつかの状態性を結びつけます.そのためには、type Reducer<T, A> = (state: T, action: A) => T;
コントローラはいくつかの初期状態と共にその還元器を取り、クラスインスタンスにそれらをピンでとめなければなりません.export class ReducerController<T = unknown, A = unknown> implements ReactiveController {
public state: T;
constructor(
private host: ReactiveControllerHost,
public reducer: Reducer<T, A>,
public initialState: T,
) {
this.host.addController(this);
this.state = initialState;
}
hostUpdate?():void
}
ステップ2:アクション
信じられるかどうかは、我々はかなり行われている.我々が必要とする最後の部分は242479142のアクションを実行し、ホストを更新する
dispatch
メソッドを実装することです.dispatch(action: A): void {
this.state = this.reducer(this.state, action);
this.host.requestUpdate();
}
そして、シェフジョンが言うように、それはそれです!コントローラを使いたいなら、互換性のあるホスト(litterのような)で作成してください.
Live Demo
Reference
この問題について(WebコンポーネントのReduxコントローラを書きましょう), 我々は、より多くの情報をここで見つけました https://dev.to/bennypowers/lets-write-a-redux-controller-for-web-components-4edlテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol