reflect
v9.2.0
☄️エフェクターストアを接続して、フックなしでコンポーネントを反応させます。
npm install @effector/reflect
# or
pnpm add @effector/reflect開始| APIドキュメント
反射のポイントは何ですか?
APIデザインは、古典的なHOC様パターンを使用して、効率的で構成可能な方法でエフェクターを使用して反応コンポーネントを書き込むことができます。
import { reflect , variant } from '@effector/reflect' ;
export function UserForm ( ) {
return (
< FormCard >
< Name />
< LastName />
< SubmitButton />
</ FormCard >
) ;
}
const Name = reflect ( {
view : Input ,
bind : {
value : model . $name ,
onChange : model . nameChanged ,
} ,
} ) ;
const LastName = reflect ( {
view : Input ,
bind : {
value : model . $lastName ,
onChange : model . lastNameChanged ,
} ,
} ) ;
const SubmitButton = reflect ( {
view : Button ,
bind : {
type : 'submit' , // plain values are allowed too!
disabled : model . $formValid . map ( ( valid ) => ! valid ) ,
onClick : model . formSubmitted ,
} ,
} ) ;ここでは、このコンポーネントを小さな部分に分離しました。これは、 reflect演算子を使用して便利な方法で作成されました。これは、 props -> valuesマッピングの非常に簡単な説明であり、読みやすく修正しやすいです。
@effector/reflect使用すると、 $formValidアップデートにより、submitbuttonが再レンダリングされるだけで、 <UserForm />の他のすべての部分については、文字通りゼロのReact作業があります。
詳細については、Motivationの完全な記事をご覧ください。