.
Singleton
, , , ES6 . , , .
.
? , -, ES6 . JS
, ?
, React App
reactDom.render() :
import React from 'react'
import ReactDOM from "react-dom"
import { Provider } from "react-redux"
import MyApp from "./pathto/myapp.js"
import store from "./pathto/store.js"
window.RenderApp = function () {
new ReactDom.render(
<Provider store={store}><MyApp /></provider,
document.getElementById('root_element')
);
}
, , ES6. , , , window, JS.
, -, :
<div id="root_element"></div>
<script src="path/to/bundle.js></script>
<script>
window.RenderApp();
</script>
, ? , , :) , :
...
window.RenderApp = function (outside_variable) {
new ReactDom.render(
<Provider store={store}><MyApp someProp={outside_variable} /></provider,
document.getElementById('root_element')
);
}
HTML
...
<script>
var x = 72;
window.RenderApp(x);
</script>
Redux?
, , , , , redux. . , , ES6 .
, . defaultStore.js.
let defaultStore = {
item: "one",
other: "two"
}
export default (defaultStore);
:
import defaultStore from "path/to/defaultStore.js"
export default function app( state = defaultStore, action ) {
switch (action.type) {
}
return state;
}
, , :
...
import defaultStore from "path/to/defaultStore.js"
window.RenderApp = function (outside_variable) {
defaultStore.item = outside_variable;
new ReactDom.render(
<Provider store={store}><MyApp /></provider,
document.getElementById('root_element')
);
}
, , , .
js HTML
...
<script>
var x = 72;
window.RenderApp(x);
</script>
! , .