Skip to content

Commit fe0e971

Browse files
committed
update examples
1 parent d12a4fb commit fe0e971

34 files changed

+6461
-2
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
__COMPLEX__ streamed SSR example
2+
3+
- `yarn start` - simple `renderToString` SSR + used style extraction
4+
- `yarn start:stream` - complex `renderToStream` example
5+
- if `stream-server/middleware` is used - all styles would be in HEAD
6+
- if `stream-server/interleaved-middleware` is used - all styles would be _interleaved_ in result HTML

examples/SSR/parcel-react-ssr/stream-server/interleaved-middleware.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,6 @@ export default function middleware(req, res) {
7070

7171
MultiStream(streams).pipe(res);
7272

73-
const importedStream =
74-
7573
// start by piping react and styled transform stream
7674
htmlStream.pipe(styledStream);
7775
styledStream.on('end', () => {
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"plugins": ["react-imported-component/babel"]
3+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
version: 2
2+
jobs:
3+
build:
4+
docker:
5+
- image: debian:stretch
6+
steps:
7+
- checkout
8+
- run:
9+
name: Greeting
10+
command: echo Hello, world.
11+
- run:
12+
name: Print the Current Time
13+
command: date
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
node_modules
2+
*.log
3+
.cache
4+
dist
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
Example using `runtime chunk` or `manifest` to speed up chunk loading
2+
3+
4+
-- not complete!
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
body {
2+
background-color: #EEE;
3+
}
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
import * as React from "react";
2+
import Home from "./components/Home";
3+
import importedComponent, {ComponentLoader, loadableResource} from "react-imported-component";
4+
5+
const Another = importedComponent(() => import(/* webpackChunkName: namedChunk-0 */"./components/Another"), {
6+
LoadingComponent: () => <div>loading</div>
7+
});
8+
const Other1 = importedComponent(() => import(/* webpackChunkName: "namedChunk-1" */"./components/Other"));
9+
const Other2 = importedComponent(() => import(/* webpackChunkName: "namedChunk-1" */"./components/OtherTween"));
10+
11+
const AnotherWrapped = importedComponent(
12+
() => import(/* webpackChunkName: namedChunk-0 */"./components/Another"), {
13+
render(Component, state, props: { prop: number }) {
14+
if (state.loading) {
15+
return <span/>
16+
}
17+
return <div className="wrapped"><Component test={props.prop} p2={props.prop}/></div>
18+
}
19+
});
20+
//import Another from "./components/Another";
21+
22+
// @ts-ignore
23+
// const importCss = () => im port("./App.css");
24+
25+
export default function App() {
26+
return (
27+
<div>
28+
[not-trackable]
29+
<ComponentLoader
30+
loadable={() => import("./components/Another")}
31+
/>
32+
<ComponentLoader
33+
loadable={loadableResource(() => import("./components/Another"))}
34+
/>
35+
[/not-trackable]
36+
[home]<Home/>[/home]
37+
<Another test={42} p2={42}/>
38+
39+
<AnotherWrapped prop={24}/>
40+
41+
<Other1 test={42}/>
42+
{0 && <Other2/>}
43+
<Home/>
44+
</div>
45+
);
46+
}
1.12 KB
Binary file not shown.
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
import { rehydrateMarks } from "react-imported-component";
2+
import * as React from "react";
3+
import ReactDOM from "react-dom";
4+
import { BrowserRouter } from "react-router-dom";
5+
import { Provider } from "react-redux";
6+
import { configureStore } from "./store";
7+
import "./imported"; // eslint-disable-line
8+
9+
import App from "./App";
10+
11+
const preloadedState = window.__PRELOADED_STATE__;
12+
delete window.__PRELOADED_STATE__;
13+
14+
const store = configureStore(preloadedState);
15+
16+
const element = document.getElementById("app");
17+
18+
const app = (
19+
<Provider store={store}>
20+
<BrowserRouter>
21+
<App />
22+
</BrowserRouter>
23+
</Provider>
24+
);
25+
26+
rehydrateMarks().then(() => {
27+
console.log(element.innerHTML);
28+
ReactDOM.hydrate(app, element);
29+
console.log(element.innerHTML);
30+
});

0 commit comments

Comments
 (0)