LoginSignup
3
2

More than 5 years have passed since last update.

ReactをREPLで動かしてみる

Posted at
$ mkdir react-repl
$ cd react-repl
$ npm i react react-dom
$ node
> var React = require('react')
undefined

> React
{ Children:
   { map: [Function: mapChildren],
     forEach: [Function: forEachChildren],
     count: [Function: countChildren],
     toArray: [Function: toArray],
     only: [Function: onlyChild] },
  Component: [Function: ReactComponent],
  PureComponent: [Function: ReactPureComponent],
  createElement: [Function: createElement],
...

> var ReactDOM = require('react-dom')
undefined

> ReactDOM
{ findDOMNode: [Function: findDOMNode],
  render: [Function: render],
  unmountComponentAtNode: [Function: unmountComponentAtNode],
  version: '15.4.2',
  unstable_batchedUpdates: [Function: batchedUpdates],
  unstable_renderSubtreeIntoContainer: [Function: renderSubtreeIntoContainer] }


> var ReactDOMServer = require('react-dom/server');
undefined

> ReactDOMServer
{ renderToString: [Function: renderToString],
  renderToStaticMarkup: [Function: renderToStaticMarkup],
  version: '15.4.2' }
# https://facebook.github.io/react/docs/react-without-jsx.html
> class Hello extends React.Component {
...   render() {
.....     return React.createElement('div', null, `Hello ${this.props.toWhat}`);
.....   }
... }
[Function: Hello]

> var element = React.createElement(Hello, {toWhat: 'World'}, null);
undefined

> element
{ '$$typeof': Symbol(react.element),
  type: [Function: Hello],
  key: null,
  ref: null,
  props: { toWhat: 'World', children: null },
  _owner: null,
  _store: {} }

> ReactDOM.render(element, document.getElementById('root'));
ReferenceError: document is not defined
    at repl:1:26
    at sigintHandlersWrap (vm.js:22:35)
    at sigintHandlersWrap (vm.js:96:12)
    at ContextifyScript.Script.runInThisContext (vm.js:21:12)
    at REPLServer.defaultEval (repl.js:313:29)
    at bound (domain.js:280:14)
    at REPLServer.runBound [as eval] (domain.js:293:12)
    at REPLServer.<anonymous> (repl.js:513:10)
    at emitOne (events.js:101:20)
    at REPLServer.emit (events.js:188:7)

> ReactDOMServer.renderToString(element)
'<div data-reactroot="" data-reactid="1" data-react-checksum="999625590">Hello World</div>'

> ReactDOMServer.renderToStaticMarkup(element)
'<div>Hello World</div>'
3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2