با عرض سلام خدمت کاربران محترم سایت پی وی لرن.
با جلسه ای دیگر از سری جلسات دوره آموزش React JS در خدمت شما عزیزان هستیم.
در این جلسه قصد داریم به آموزش State ها در React JS بپردازیم.
کلاس Component از React، دارای یک شی به نام State هست.
در State ها مقادیری که متعلق به کامپوننت ها میباشد را میتوانیم ذخیره کنیم.
هنگامی که شی State تغییر میکند، کامپوننت به صورت خودکار re-render میشود. (آپدیت میشود)
میتوانیم شی State و مقادیر آن را در تابع سازنده مقداردهی کنیم.
مثال:
1 2 3 4 5 6 7 8 9 10 11 12 13 | class Car extends React.Component { constructor(props) { super(props); this.state = {brand: "Ford"}; } render() { return ( <div> <h1>My Car</h1> </div> ); } } |
همچنین این شی میتواند چندین مقدار داشته باشد:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | class Car extends React.Component { constructor(props) { super(props); this.state = { brand: "Ford", model: "Mustang", color: "red", year: 1964 }; } render() { return ( <div> <h1>My Car</h1> </div> ); } } |
با استفاده از دستور this.state.propertyname میتوانیم به شی state و خاصیت (property) مورد نظر دسترسی داشته باشیم.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | class Car extends React.Component { constructor(props) { super(props); this.state = { brand: "Ford", model: "Mustang", color: "red", year: 1964 }; } render() { return ( <div> <h1>My {this.state.brand}</h1> <p> It is a {this.state.color} {this.state.model} from {this.state.year}. </p> </div> ); } } |
خروجی:
1 2 3 | My Ford It is a red Mustang from 1964. |
با استفاده از متد ()this.setState میتوانیم state ها را تغییر دهیم.
همانطور که در ابتدا گفتیم، با تغییر هر state، کامپوننت به صورت خودکار re-render میشود. یعنی بر اسا مقادیر جدید state ها بروز میشود.
مثال:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | class Car extends React.Component { constructor(props) { super(props); this.state = { brand: "Ford", model: "Mustang", color: "red", year: 1964 }; } changeColor = () => { this.setState({color: "blue"}); } render() { return ( <div> <h1>My {this.state.brand}</h1> <p> It is a {this.state.color} {this.state.model} from {this.state.year}. </p> <button type="button" onClick={this.changeColor} >Change color</button> </div> ); } } |
برای تغییر state ها همیشه از متد فوق استفاده کنید. این متد باعث میشود تا بعد از هر تغییر، تابع ()render کامپوننت اجرا شده و کامپوننت بروز شود.
چلسه آموزش State ها در React JS نیز به پایان رسید.
در جلسه بعد به چرخه عمر کامپوننت ها در React JS خواهیم پرداخت.