JSX Olmadan React

JSX, React’i kullanmak için bir gereksinim değildir. JSX olmadan React’i kullanmak özellikle, geliştirme ortamınızda derleme ayarlarıyla uğraşmak istemediğiniz durumlarda daha uygundur.

Her JSX elementi sadece React.createElement(component, props, ...children)‘i çağırmak için sözdizimsel şekerdir. Yani, JSX ile yapabileceğiniz her şeyi sadece düz JavaScript ile yapabilirsiniz.

Örneğin, bu kod JSX ile yazılmış:

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

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

JSX kullanmayan bu koda derlenebilir:

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’in JavaScript’e nasıl dönüştürüldüğüne dair daha fazla örnek görmek isterseniz, çevrimiçi Babel derleyicisini deneyebilirsiniz.

Bileşen bir dize olarak veya React.Component‘in alt sınıfı olarak veya durumsuz bileşenler için düz bir fonksiyon olarak sağlanabilir.

Eğer çok fazla React.createElement yazmaktan bıktıysanız, genel çözüm bir kısaltmaya atamaktır:

const e = React.createElement;

ReactDOM.render(
  e('div', null, 'Merhaba Dünya'),
  document.getElementById('root')
);

Eğer bu kısaltma halini React.createElement için kullanırsanız, JSX olmadan React’i kullanmak daha pratik olabilir.

Alternatif olarak, react-hyperscript ve hyperscript-helpers gibi terser sözdizimi sunan topluluk projelerine göz atabilirsiniz.