reflect
v9.2.0
☄แนบที่เก็บเอฟเฟกต์เพื่อตอบสนองส่วนประกอบโดยไม่มีตะขอ
npm install @effector/reflect
# or
pnpm add @effector/reflectเริ่มต้นใช้งาน | เอกสาร API
จุดไตร่ตรองคืออะไร?
มันคือการออกแบบ API ที่ใช้รูปแบบแบบคลาสสิกเหมือนกันช่วยให้คุณเขียนส่วนประกอบที่ตอบสนองด้วยเอฟเฟกต์ในวิธีที่มีประสิทธิภาพและสามารถผสมได้
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 ของเราจะทำให้ SubmentButton ได้รับการแสดงซ้ำอีกครั้งและสำหรับส่วนอื่น ๆ ทั้งหมดของ <UserForm /> ของเราจะมีงานทำปฏิกิริยา เป็นศูนย์ อย่างแท้จริง
หากต้องการเรียนรู้เพิ่มเติมโปรดอ่านบทความแรงจูงใจเต็มรูปแบบ