patternplate-transform-react-to-markup
v1.1.0
Published
patternplate transform creating markup from react components
Readme
patternplate-transform-react-to-markup
patternplate transform creating markup from react components.
Installation
npm install --save patternplate-transform-react-to-markup react react-domTransformation
Input
module.exports = React.createClass({
displayName: 'MyAwesomePattern',
render: function() {
return React.createElement('div', {className: 'my-awesome-pattern'}, 'My awesome Pattern.');
}
});Output
<!-- default settings -->
<div class="my-awesome-pattern">
My awesome Pattern
</div>
<!-- with static rendering disabled -->
<div class="my-awesome-pattern" react-id=".cd5akchxj4.1.0">
My awesome Pattern
</div>
<!-- with automount enabled -->
<div data-mountpoint>
<div class="my-awesome-pattern" react-id=".cd5akchxj4.1.0">
My awesome Pattern
</div>
</div>Configuration
Install patternplate-transform-react-to-markup,
patternplate-transform-react, react and react-dom in your
patternplate project.
patternplate-server currently ships with
patternplate-transform-react working on *.jsx and *.html files by default.
Parameters
// configuration/patternplate-server/transforms.js
module.exports = {
"react-to-markup": {
"opts": {
"automount": false, // ignore any js files and mount the component as live React component on the frontend, implies static: false
"static": true // render static markup without react-ids
}
}
}Component auto mounting
patternplate-transform-react-to-markup is capable of rendering output needed
for automatic mounting of react components.
To enable this globally for your project specify
// configuration/patternplate-server/transforms.js
module.exports = {
"react-to-markup": {
"opts": {
"automount": true
}
}
}To enable auto mounting on a per pattern basis specify
// patterns/my-awesome-pattern/package.json
{
"name": "my-awesome-pattern",
"version": "0.1.0",
"options": {
"react-to-markup": {
"opts": {
"automount": true
}
}
}
}React version interoperability
patternplate-transform-react-to-markup provides interoperability
with react 0.13 and 0.14. The decision making on the used call
happens according to these rules:
if React.version gte 0.14
if require.resolve('react-dom') fails
warn
use React.render
else if require.resolve('react') succeeds
use ReactDOM.render
else
use React.renderThis means you can use react with and without react-dom -
you'll see a warning with react >= 0.14, though:
[ ⚠ External Deprecation ⚠ ] React version 0.14.7 deprecated React.renderToString and moved it to react-dom/server's renderToString, but react-dom is not available via require.resolve. Consider installing react-dom.Copyright 2016 by SinnerSchrader Deutschland GmbH and contributors. Released under the MIT license.
