2016-03-09 1 views
3

Actuellement j'apprends ReactJS. Si je comprends bien, le code, écrit avec JSX, n'a pas de portée de visibilité différente avec JS vanilla. Mais si je veux faire quelques trucs sur JS vanilla et seulement ensuite appeler ReactDOM.render() mais je veux toujours utiliser JSX avec React, est-ce possible et si oui - comment?Est-il possible d'appeler ReactDOM.render() lors de l'utilisation de JSX de vanilla JS?

+0

Certainement possible. Voici un exemple de codepen plutôt simple: http://codepen.io/mikechabot/pen/yONZoW Comme vous pouvez le voir, nous utilisons JSX dans nos composants React, mais nous appelons ReactDOM.render() dans un terrain JS "normal". – lux

Répondre

1
class RootComponent extends React.Component { 
    render() { 
     return (
      <div > 
      Hello, World. 
      </div> 
     ) 
    } 
} 

ReactDOM.render(
    React.createElement(RootComponent), 
    document.getElementById('root') 
); 

Notez que l'appel de rendu n'a pas de JSX. Cela signifie que vous pouvez diviser le principal fichier javascript, et l'appeler dans un contexte, par exemple en ligne javascript dans une balise script < >:

main.js:

class RootComponent extends React.Component { 
    render() { 
     return (
      <div > 
      Hello, World. 
      </div> 
     ) 
    } 
} 

index.html:

<script> 
    ReactDOM.render(
     React.createElement(RootComponent), 
     document.getElementById('root') 
    ); 
</script> 
+0

Bien que ce code puisse répondre à la question, fournir un contexte supplémentaire concernant la façon et/ou la raison pour laquelle il résout le problème améliorerait la valeur à long terme de la réponse. –