Skip to content

Latest commit

ย 

History

History
262 lines (203 loc) ยท 11.7 KB

components-and-props.md

File metadata and controls

262 lines (203 loc) ยท 11.7 KB
id title permalink redirect_from prev next
components-and-props
ุงู„ู…ูƒูˆู†ุงุช ูˆุงู„ุฎุงุตูŠุงุช
docs/components-and-props.html
docs/reusable-components.html
docs/reusable-components-zh-CN.html
docs/transferring-props.html
docs/transferring-props-it-IT.html
docs/transferring-props-ja-JP.html
docs/transferring-props-ko-KR.html
docs/transferring-props-zh-CN.html
tips/props-in-getInitialState-as-anti-pattern.html
tips/communicate-between-components.html
rendering-elements.html
state-and-lifecycle.html

ุชุชูŠุญ ู„ู†ุง ุงู„ู…ููƒูˆูู‘ู†ุงุช (Components) ุชู‚ุณูŠู… ูˆุงุฌู‡ุฉ ุงู„ู…ุณุชุฎุฏู… ุฅู„ู‰ ู‚ุทุน ู…ูุณุชู‚ูู„ูŽู‘ุฉ ู‚ุงุจู„ุฉ ู„ุฅุนุงุฏุฉ ุงู„ุงุณุชุฎุฏุงู…ุŒ ูˆุงู„ุชููƒูŠุฑ ุจูƒู„ ู‚ุทุนุฉ ุนู„ู‰ ุงู†ูุฑุงุฏ. ุณู†ุชุญุฏู‘ุซ ููŠ ู‡ุฐู‡ ุงู„ุตูุญุฉ ุนู† ู…ูู‚ุฏู‘ู…ุฉ ุฅู„ู‰ ู…ูู‡ูˆู… ุงู„ู…ููƒูˆูู‘ู†ุงุชุŒ ุจุฅู…ูƒุงู†ูƒ ุฃู† ุชุฌุฏ ู…ุฑุฌุนู‹ุง ู…ููุตูŽู‘ู„ู‹ุง ุญูˆู„ ูˆุงุฌู‡ุฉ ุจุฑู…ุฌุฉ ุงู„ุชุทุจูŠู‚ (API) ุงู„ุฎุงุตู‘ุฉ ุจุงู„ู…ููƒูˆูู‘ู†ุงุช ู…ู† ู‡ู†ุง.

ุชูุดุจูู‡ ุงู„ู…ููƒูˆูู‘ู†ุงุช ู…ู† ุงู„ู†ุงุญูŠุฉ ุงู„ู†ุธุฑูŠู‘ุฉ ุฏูˆุงู„ JavaScriptุŒ ูู‡ูŠ ุชู‚ุจู„ ู…ูุฏุฎูŽู„ุงุช ุงู„ู…ุณุชุฎุฏู… (ูˆุงู„ุชูŠ ุชูุฏุนู‰ props ุงุฎุชุตุงุฑู‹ุง ู„ู„ูƒู„ู…ุฉ properties ูˆุชุนู†ูŠ ุงู„ุฎุงุตูŠู‘ุงุช) ูˆุชูุนูŠุฏ ุนู†ุงุตุฑ React ูˆุตู ู…ุง ุงู„ุฐูŠ ูŠู†ุจุบูŠ ุนุฑุถู‡ ุนู„ู‰ ุงู„ุดู‘ุงุดุฉ.

ู…ูƒูˆู†ุงุช ุงู„ุฃุตู†ุงู ูˆุงู„ุฏูˆุงู„ {#function-and-class-components}

ุฅู†ู‘ ุฃุจุณุท ุทุฑูŠู‚ุฉ ู„ุชุนุฑูŠู ู…ููƒูˆูู‘ู† ู‡ูŠ ูƒุชุงุจุฉ ุฏุงู„ุฉ JavaScript:

function Welcome(props) {
  return <h1>Hello, {props.name}</h1>;
}

ุชูุนุฏู‘ ู‡ุฐู‡ ุงู„ุฏุงู„ุฉ ู…ููƒูˆูู‘ู†ู‹ุง ุตุงู„ุญู‹ุง ููŠ React ู„ุฃู†ู‘ู‡ุง ุชู‚ุจู„ ูˆุณูŠุทู‹ุง ูˆุงุญุฏู‹ุง ู…ู† ุฎุงุตูŠู‘ุงุช ุงู„ูƒุงุฆู† "props" (ุงุฎุชุตุงุฑู‹ุง ู„ู„ูƒู„ู…ุฉ properties ูˆุชุนู†ูŠ ุงู„ุฎุงุตูŠู‘ุงุช) ู…ุน ุจูŠุงู†ุงุชู‡ ูˆุชูุนูŠุฏ ุนู†ุตุฑ React. ู†ุฏุนูˆ ู…ุซู„ ู‡ุฐู‡ ุงู„ู…ููƒูˆูู‘ู†ุงุช ุจุงู„ู…ููƒูˆูู‘ู†ุงุช ุงู„ุฏุงู„ูŠู‘ุฉ "function components" ู„ุฃู†ู‘ู‡ุง ุนุจุงุฑุฉ ุนู† ุฏูˆุงู„ JavaScript.

ุจุฅู…ูƒุงู†ูƒ ุฃูŠุถู‹ุง ุฃู† ุชุณุชุฎุฏู… ุงู„ุฃุตู†ุงู "ES6 class" ู„ุชุนุฑูŠู ุงู„ู…ููƒูˆูู‘ู†ุงุช ูƒู…ุง ูŠู„ูŠ:

class Welcome extends React.Component {
  render() {
    return <h1>Hello, {this.props.name}</h1>;
  }
}

ุฅู†ู‘ ุงู„ู…ููƒูˆูู‘ู†ูŠู† ุงู„ุณุงุจู‚ูŠู† ู…ูุชูƒุงููุฆุงู† ู…ู† ูˆุฌู‡ุฉ ู†ุธุฑ React.

ุชู…ุชู„ูƒ ุงู„ุฃุตู†ุงู ุจุนุถ ุงู„ู…ูŠู‘ุฒุงุช ุงู„ุฅุถุงููŠู‘ุฉ ุงู„ุชูŠ ุณู†ุชุญุฏู‘ุซ ุนู†ู‡ุง ููŠ ู‚ุณู… ุงู„ู‚ุณู… ุงู„ุชุงู„ูŠ. ูˆุญุชู‰ ุฐู„ูƒ ุงู„ูˆู‚ุช ุณู†ุณุชุฎุฏู… ุงู„ู…ููƒูˆูู‘ู†ุงุช ุงู„ุฏุงู„ูŠู‘ุฉ ู„ุจุณุงุทุชู‡ุง.

ุชุตูŠูŠุฑ ุงู„ู…ูƒูˆู‘ู†ุงุช (Rendering) {#rendering-a-component}

ู… ู†ุตุงุฏู ุญุชู‰ ุงู„ุขู† ุฅู„ู‘ุง ุนู†ุงุตุฑ React ุชูู…ุซูู‘ู„ ุนู†ุงุตุฑ DOM ุงู„ู…ูุนุชุงุฏุฉ:

const element = <div />;

ูˆู„ูƒู† ูŠูู…ูƒูู† ู„ู„ุนู†ุงุตุฑ ุฃู† ุชูู…ุซูู‘ู„ ู…ููƒูˆูู‘ู†ุงุช ู…ูุนุฑูŽู‘ูุฉ ู…ู† ู‚ุจู„ ุงู„ู…ุณุชุฎุฏู…:

const element = <Welcome name="Sara" />;

ุนู†ุฏู…ุง ุชุฌุฏ React ุนู†ุตุฑู‹ุง ูŠูู…ุซูู‘ู„ ู…ููƒูˆูู‘ู†ู‹ุง ู…ูุนุฑูŽู‘ูู‹ุง ู…ู† ู‚ุจู„ ุงู„ู…ุณุชุฎุฏู…ุŒ ูุณุชูู…ุฑูู‘ุฑ ุฎุงุตูŠู‘ุงุช JSX ุฅู„ูŠู‡ ุนู„ู‰ ุดูƒู„ ูƒุงุฆู† ูˆุญูŠุฏุŒ ู†ุฏุนูˆ ู‡ุฐุง ุงู„ูƒุงุฆู† "props".

ู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุชุนุฑุถ ู‡ุฐู‡ ุงู„ุดูŠูุฑุฉ ุนุจุงุฑุฉ "Hello, Sara" ููŠ ุงู„ุตู‘ูุญุฉ:

function Welcome(props) {
  return <h1>Hello, {props.name}</h1>;
}

const element = <Welcome name="Sara" />;
ReactDOM.render(
  element,
  document.getElementById('root')
);

ุชู„ุฎูŠุต ู…ุง ุญุฏุซ ููŠ ู‡ุฐุง ุงู„ู…ุซุงู„:

  1. ู†ุณุชุฏุนูŠ ุงู„ุชู‘ุงุจุน ReactDOM.render() ู…ุน ุงู„ุนู†ุตุฑ <Welcome name="Sara" />.
  2. ุชุณุชุฏุนูŠ React ุงู„ู…ููƒูˆูู‘ู† Welcome ู…ุน ุชู…ุฑูŠุฑ {name: 'Sara'} ูƒุฎุงุตูŠู‘ุฉ props.
  3. ูŠูุนูŠุฏ ุงู„ุนู†ุตุฑ Welcome ุงู„ุนู†ุตุฑ <h1>Hello, Sara</h1> ูƒู†ุชูŠุฌุฉ ู„ู‡.
  4. ุชูุญุฏูู‘ุซ React DOM ุจูƒูุงุกุฉ DOM ู„ูŠูุทุงุจูู‚ <h1>Hello, Sara</h1>.

ู…ู„ุงุญุธุฉ: ูŠุฌุจ ุฃู† ุชุจุฏุฃ ุฃุณู…ุงุก ุงู„ู…ููƒูˆูู‘ู†ุงุช ุฏูˆู…ู‹ุง ุจุฃุญุฑู ูƒุจูŠุฑุฉ.

ุชูุนุงู…ูู„ React ุงู„ู…ููƒูˆูู‘ู†ุงุช ุงู„ุชูŠ ุชุจุฏุฃ ุจุฃุญุฑู ุตุบูŠุฑุฉ ูƒุนู†ุงุตุฑ DOMุŒ ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ูŠูู…ุซูู‘ู„ <div /> ุนู†ุตุฑ HTML ุงู„ุฐูŠ ูŠูุฏุนู‰ divุŒ ุจูŠู†ู…ุง ุชูู…ุซูู‘ู„ <Welcome /> ู…ููƒูˆูู‘ู†ู‹ุง ููŠ React ูˆุชุชุทู„ูŽู‘ุจ ุฃู† ูŠูƒูˆู† ุชุนุฑูŠู ู‡ุฐุง ุงู„ู…ููƒูˆูู‘ู† ู…ูˆุฌูˆุฏู‹ุง ุถู…ู† ุงู„ู…ุฌุงู„ ุงู„ู…ูุญุฏูŽู‘ุฏ.

ุจุฅู…ูƒุงู†ูƒ ู‚ุฑุงุกุฉ ุงู„ู…ุฒูŠุฏ ุนู† ุงู„ู…ู†ุทู‚ ุงู„ูƒุงู…ู† ูˆุฑุงุก ู‡ุฐู‡ ุงู„ุงุชูุงู‚ูŠู‘ุฉ ู…ู† ู‡ู†ุง.

ุชุฑูƒูŠุจ ุงู„ู…ูƒูˆู†ุงุช {#composing-components}

ูŠูู…ูƒูู† ู„ู„ู…ููƒูˆูู‘ู†ุงุช ุฃู† ุชุดูŠุฑ ุฅู„ู‰ ู…ููƒูˆูู‘ู†ุงุช ุฃุฎุฑู‰ ููŠ ู†ุงุชุฌู‡ุงุŒ ูŠุณู…ุญ ู„ู†ุง ู‡ุฐุง ุจุงุณุชุฎุฏุงู… ู†ูุณ ุงู„ู…ููƒูˆูู‘ู† ุงู„ู…ูุฌุฑูŽู‘ุฏ ู„ุฃูŠ ุฏุฑุฌุฉ ู…ู† ุงู„ุชูุตูŠู„ุŒ ุฒุฑ (button)ุŒ ุฃูˆ ุญู‚ู„ ุฅุฏุฎุงู„ (form)ุŒ ุฃูˆ ู…ุฑุจู‘ุน ุญูˆุงุฑ (dialog)ุŒ ุฃูˆ ุดุงุดุฉ (screen)ุŒ ูููŠ React ูŠูุนุจูŽู‘ุฑ ุนู†ู‡ุง ุฌู…ูŠุนู‡ุง ุจุงู„ู…ููƒูˆูู‘ู†ุงุช.

ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ูŠูู…ูƒู†ู†ุง ุฅู†ุดุงุก ู…ููƒูˆูู‘ู† ุงุณู…ู‡ App ูŠุนุฑุถ ููŠ ู†ุงุชุฌู‡ ุงู„ู…ููƒูˆูู‘ู† Welcome ุนุฏู‘ุฉ ู…ุฑู‘ุงุช:

function Welcome(props) {
  return <h1>Hello, {props.name}</h1>;
}

function App() {
  return (
    <div>
      <Welcome name="Sara" />
      <Welcome name="Cahal" />
      <Welcome name="Edite" />
    </div>
  );
}

ReactDOM.render(
  <App />,
  document.getElementById('root')
);

ุชุญุชูˆูŠ ุชุทุจูŠู‚ุงุช React ุงู„ุฌุฏูŠุฏุฉ ุนุงุฏุฉู‹ ุนู„ู‰ ุงู„ู…ููƒูˆูู‘ู† App ููŠ ุงู„ู…ุณุชูˆู‰ ุงู„ุฃุนู„ู‰ ูˆุชู†ุญุฏุฑ ุนู†ู‡ ุจุงู‚ูŠ ุงู„ู…ููƒูˆูู‘ู†ุงุชุŒ ูˆู„ูƒู† ุฅู† ูƒู†ุช ุชุฏู…ุฌ React ู…ุน ุชุทุจูŠู‚ ู…ูˆุฌูˆุฏ ู…ูุณุจู‚ู‹ุง ูู‚ุฏ ุชุจุฏุฃ ู…ู† ุงู„ู…ุณุชูˆู‰ ุงู„ุณูู„ูŠ ุจู…ููƒูˆูู‘ู† ุตุบูŠุฑ ู…ุซู„ ุงู„ุฒุฑ Button ูˆุชุตุนุฏ ุชุฏุฑูŠุฌูŠู‹ู‘ุง ุญุชู‰ ุงู„ู…ุณุชูˆู‰ ุงู„ุฃุนู„ู‰ ููŠ ู‡ูŠูƒู„ูŠู‘ุฉ ุงู„ุชุทุจูŠู‚.

ุงุณุชุฎุฑุงุฌ ุงู„ู…ูƒูˆู†ุงุช {#extracting-components}

ู„ุง ุชุชุฑุฏุฏ ุจุชู‚ุณูŠู… ุงู„ู…ููƒูˆูู‘ู†ุงุช ุฅู„ู‰ ู…ููƒูˆูู‘ู†ุงุช ุฃุตุบุฑ.

ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุงู†ุธุฑ ุฅู„ู‰ ู…ููƒูˆูู‘ู† ุงู„ุชุนู„ูŠู‚ุงุช Comment ุงู„ุชุงู„ูŠ:

function Comment(props) {
  return (
    <div className="Comment">
      <div className="UserInfo">
        <img className="Avatar"
          src={props.author.avatarUrl}
          alt={props.author.name}
        />
        <div className="UserInfo-name">
          {props.author.name}
        </div>
      </div>
      <div className="Comment-text">
        {props.text}
      </div>
      <div className="Comment-date">
        {formatDate(props.date)}
      </div>
    </div>
  );
}

ูŠู‚ุจู„ ู‡ุฐุง ุงู„ู…ููƒูˆูู‘ู† ุงู„ูƒุงุฆู† authorุŒ ูˆุงู„ุณู„ุณู„ุฉ ุงู„ู†ุตูŠู‘ุฉ textุŒ ูˆุงู„ุชุงุฑูŠุฎ date ูƒุฎุงุตูŠุงุช props ู„ู‡ุŒ ูˆูŠูู…ุซูู‘ู„ ุชุนู„ูŠู‚ู‹ุง ุนู„ู‰ ู…ูˆุงู‚ุน ุงู„ุชูˆุงุตู„ ุงู„ุงุฌุชู…ุงุนูŠ.

ู…ู† ุงู„ุตุนุจ ุชุบูŠูŠุฑ ู‡ุฐุง ุงู„ู…ููƒูˆูู‘ู† ุจุณุจุจ ู‡ุฐู‡ ุงู„ุชุฏุงุฎู„ุงุชุŒ ูˆู…ู† ุงู„ุตุนุจ ุฃูŠุถู‹ุง ุฅุนุงุฏุฉ ุงุณุชุฎุฏุงู… ุฃุฌุฒุงุก ู…ู†ู‡ุŒ ูู„ู†ุญุงูˆู„ ุงุณุชุฎุฑุงุฌ ุจุนุถ ุงู„ู…ููƒูˆูู‘ู†ุงุช ู…ู†ู‡.

ุณู†ุณุชุฎุฑุฌ ููŠ ุงู„ุจุฏุงูŠุฉ ู…ููƒูˆูู‘ู† ุงู„ุตูˆุฑุฉ ุงู„ุฑู…ุฒูŠู‘ุฉ Avatar:

function Avatar(props) {
  return (
    <img className="Avatar"
      src={props.user.avatarUrl}
      alt={props.user.name}
    />
  );
}

ู„ุง ูŠุญุชุงุฌ ุงู„ู…ููƒูˆูู‘ู† Avatar ุฅู„ู‰ ู…ุนุฑูุฉ ุฃู†ู‘ู‡ ู…ูุณุชุฎุฏูŽู… ููŠ ุงู„ู…ููƒูˆูู‘ู† Comment. ูˆู„ุฐู„ูƒ ุฃุนุทูŠู†ุง ุฎุงุตูŠู‘ุงุชู‡ prop ุงุณู…ู‹ุง ุฃูƒุซุฑ ุนู…ูˆู…ูŠู‘ุฉู‹ ูˆู‡ูˆ: user ุจุฏู„ู‹ุง ู…ู† author.

ู†ูˆุตูŠ ุจุชุณู…ูŠุฉ ุงู„ุฎุงุตูŠู‘ุงุช props ู…ู† ูˆุฌู‡ุฉ ู†ุธุฑ ุงู„ู…ููƒูˆูู‘ู† ู†ูุณู‡ ูˆู„ูŠุณ ููŠ ุงู„ุณูŠุงู‚ ุงู„ุฐูŠ ุชูุณุชุฎุฏูŽู… ููŠู‡.

ุจุฅู…ูƒุงู†ู†ุง ุงู„ุขู† ุชุจุณูŠุท ุงู„ู…ููƒูˆูู‘ู† Comment ู‚ู„ูŠู„ู‹ุง:

function Comment(props) {
  return (
    <div className="Comment">
      <div className="UserInfo">
        <Avatar user={props.author} />
        <div className="UserInfo-name">
          {props.author.name}
        </div>
      </div>
      <div className="Comment-text">
        {props.text}
      </div>
      <div className="Comment-date">
        {formatDate(props.date)}
      </div>
    </div>
  );
}

ุณู†ุณุชุฎุฑุฌ ุงู„ุขู† ู…ููƒูˆูู‘ู† ู…ุนู„ูˆู…ุงุช ุงู„ู…ุณุชุฎุฏู… UserInfo ูˆุงู„ุฐูŠ ูŠุนุฑุถ ุงู„ู…ููƒูˆูู‘ู† Avatar ุจุฌุงู†ุจ ุงุณู… ุงู„ู…ุณุชุฎุฏู…:

function UserInfo(props) {
  return (
    <div className="UserInfo">
      <Avatar user={props.user} />
      <div className="UserInfo-name">
        {props.user.name}
      </div>
    </div>
  );
}

ูŠูุชูŠุญ ู„ู†ุง ู‡ุฐุง ุชุจุณูŠุท ุงู„ู…ููƒูˆูู‘ู† Comment ุฃูƒุซุฑ:

function Comment(props) {
  return (
    <div className="Comment">
      <UserInfo user={props.author} />
      <div className="Comment-text">
        {props.text}
      </div>
      <div className="Comment-date">
        {formatDate(props.date)}
      </div>
    </div>
  );
}

ูŠุจุฏูˆ ุงุณุชุฎุฑุงุฌ ุงู„ู…ููƒูˆูู‘ู†ุงุช ููŠ ุงู„ุจุฏุงูŠุฉ ุนู…ู„ู‹ุง ู…ุฌู‡ุฏู‹ุงุŒ ูˆู„ูƒู† ุณู†ุฑู‰ ุงู„ูุงุฆุฏุฉ ุงู„ูƒุจูŠุฑุฉ ู„ุงู…ุชู„ุงูƒ ุนุฏู‘ุฉ ู…ููƒูˆูู‘ู†ุงุช ู‚ุงุจู„ุฉ ู„ุฅุนุงุฏุฉ ุงู„ุงุณุชุฎุฏุงู… ุนู†ุฏ ุจู†ุงุก ุชุทุจูŠู‚ุงุช ูƒุจูŠุฑุฉ. ุงู„ู‚ุงุนุฏุฉ ู‡ู†ุง ู‡ูŠ: ุฅู† ุงุณุชุฎุฏู…ู†ุง ุฃุฌุฒุงุก ูˆุงุฌู‡ุฉ ุงู„ู…ุณุชุฎุฏู… ุนุฏู‘ุฉ ู…ุฑู‘ุงุช (ู…ุซู„ ุงู„ุฒุฑ ButtonุŒ ูˆ ุงู„ู„ูˆุญุฉ PanelุŒ ูˆุงู„ุตูˆุฑุฉ ุงู„ุฑู…ุฒูŠู‘ุฉ Avatar)ุŒ ุฃูˆ ูƒุงู†ุช ู‡ุฐู‡ ุงู„ุฃุฌุฒุงุก ู…ูุนู‚ู‘ุฏุฉ ุจุญุฏ ุฐุงุชู‡ุง (ู…ุซู„ ู…ููƒูˆูู‘ู† ุงู„ุชุทุจูŠู‚ AppุŒ ูˆ FeedStoryุŒ ูˆุงู„ุชุนู„ูŠู‚ Comment)ุŒ ูู‡ูŠ ู…ูุฑุดูŽู‘ุญุฉ ุจุดูƒู„ ูƒุจูŠุฑ ู„ุฃู† ู†ุฌุนู„ู‡ุง ู…ููƒูˆูู‘ู†ุงุช ู‚ุงุจู„ุฉ ู„ุฅุนุงุฏุฉ ุงู„ุงุณุชุฎุฏุงู….

ุงู„ุฎุงุตูŠุงุช props ู‚ุงุจู„ุฉ ู„ู„ู‚ุฑุงุกุฉ ูู‚ุท {#props-are-read-only}

ู„ุง ูŠุฌุจ ุชุนุฏูŠู„ ุฎุงุตูŠู‘ุงุช ุงู„ู…ููƒูˆูู‘ู†ุงุชุŒ ุณูˆุงุกู‹ ุตุฑู‘ุญู†ุง ุนู†ู‡ุง ูƒุฏุงู„ุฉ ุฃูˆ ูƒุตู†ูุŒ ูู„ู†ุฃุฎุฐ ู‡ุฐุง ุงู„ู…ุซุงู„ ุนู† ุฏุงู„ุฉ ุงู„ุฌู…ุน sum:

function sum(a, b) {
  return a + b;
}

ุชูุฏุนู‰ ู‡ุฐู‡ ุงู„ุฏูˆุงู„ ุจุงู„ุฏูˆุงู„ ุงู„ู†ู‚ูŠู‘ุฉ (Pure Functions) ู„ุฃู†ู‘ู‡ุง ู„ุง ุชุญุงูˆู„ ุชุบูŠูŠุฑ ู…ูุฏุฎู„ุงุชู‡ุง ูˆุชูุนูŠุฏ ุฏูˆู…ู‹ุง ู†ูุณ ุงู„ู†ุชูŠุฌุฉ ู„ู†ูุณ ุงู„ู…ูุฏุฎู„ุงุช.

ุนู„ู‰ ุงู„ุนูƒุณ ู…ู† ุฐู„ูƒ ู†ุฌุฏ ุฃู†ู‘ ู‡ุฐู‡ ุงู„ุฏุงู„ุฉ ุบูŠุฑ ู†ู‚ูŠุฉ ู„ุฃู†ู‘ู‡ุง ุชูุบูŠูู‘ุฑ ู…ูุฏุฎู„ุงุชู‡ุง:

function withdraw(account, amount) {
  account.total -= amount;
}

ุฅู†ู‘ React ู…ุฑู†ุฉ ุฌุฏู‹ู‘ุง ูˆู„ูƒู† ู„ุฏูŠู‡ุง ู‚ุงุนุฏุฉ ูˆุงุญุฏุฉ ุตุงุฑู…ุฉ ูˆู‡ูŠ:

ูŠุฌุจ ุฃู† ุชุณู„ูƒ ู…ููƒูˆูู‘ู†ุงุช React ุณู„ูˆูƒ ุงู„ุฏูˆุงู„ ุงู„ู†ู‚ูŠู‘ุฉ ู…ุน ุงุญุชุฑุงู…ู‡ุง ู„ุฎุงุตูŠู‘ุงุชู‡ุง (props).

ุชุชุบูŠู‘ุฑ ูˆุงุฌู‡ุงุช ุงู„ู…ุณุชุฎุฏู… ุงู„ุฎุงุตู‘ุฉ ุจุงู„ุชุทุจูŠู‚ ู…ุน ุงู„ุฒู…ู† ุจุงู„ุทุจุนุŒ ุณู†ุชุญุฏู‘ุซ ููŠ ุงู„ู‚ุณู… ุงู„ุชุงู„ูŠุŒ ุญูˆู„ ู…ูู‡ูˆู… ุฌุฏูŠุฏ ูˆู‡ูˆ ุงู„ุญุงู„ุฉ (state). ุญูŠุซ ุชุณู…ุญ ุงู„ุญุงู„ุฉ ู„ู…ููƒูˆูู‘ู†ุงุช React ุจุชุบูŠูŠุฑ ู†ุงุชุฌู‡ุง ู…ุน ู…ุฑูˆุฑ ุงู„ุฒู…ู† ุงุณุชุฌุงุจุฉู‹ ู„ุชูุงุนู„ ุงู„ู…ุณุชุฎุฏู…ุŒ ูˆุงู„ุฑุฏูˆุฏ ุงู„ู‚ุงุฏู…ุฉ ู…ู† ุงู„ุดุจูƒุฉุŒ ูˆุฃูŠ ุดูŠุก ุขุฎุฑุŒ ุจุฏูˆู† ุฎุฑู‚ ู‡ุฐู‡ ุงู„ู‚ุงุนุฏุฉ.