We want to hear from you!Take our 2021 Community Survey!

ری‌اکت بدون JSX

برای استفاده از ری‌اکت شما نیاز به JSX ندارید.استفاده نکردن از JSX در ری‌اکت هنگامی راحت‌تر است که نیاز به راه اندازی یک محیط تولید(build environment) ندارید.

هر المنت JSX فقط کدی (syntactic sugar) برای فراخوانی React.createElement(component, props, ...children) است. بنابراین هرکاری که با JSX می‌توانید انجام دهید، می شود با جاوااسکریپت ساده هم انجام داد.

برای مثال، این کد با JSX نوشته شده است:

class Hello extends React.Component {
  render() {
    return <div>Hello {this.props.toWhat}</div>;
  }
}

ReactDOM.render(
  <Hello toWhat="World" />,
  document.getElementById('root')
);

که می‌توان همین کد را بدون نیاز به JSX کامپایل کرد:

class Hello extends React.Component {
  render() {
    return React.createElement('div', null, `Hello ${this.props.toWhat}`);
  }
}

ReactDOM.render(
  React.createElement(Hello, {toWhat: 'World'}, null),
  document.getElementById('root')
);

اگر کنجکاو هستید که نمونه های بیشتری از چگونگی تبدیل JSX به جاوا اسکریپت ببینید، می‌توانید از کامپایلر آنلاین Babel استفاده کنید.

کامپوننت هم می‌توان به صورت string باشد هم به صورت یک subclass از React.Component و یا یک تابع.

اگر از نوشتن React.createElement خسته شده اید، یک الگوی معمول این است که از اختصارنویسی استفاده نمایید:

const e = React.createElement;

ReactDOM.render(
  e('div', null, 'Hello World'),
  document.getElementById('root')
);

اگر شما از این اختصارنویسی در React.createElement استفاده نمایید، می‌تواند به اندازه استفاده نکردن از JSX در ری‌اکت راحت باشد.

در صورت نیاز، شما می‌توانید به انجمن‌هایی نظیر react-hyperscript و hyperscript-helpers که مثال‌های دیگر را در اختیارتان می‌گذارد مراجعه نمایید.

آیا این صفحه مفید است؟ویرایش این صفحه