Skip to content

Commit 3cade33

Browse files
committed
Add readme
1 parent 5de572d commit 3cade33

File tree

8 files changed

+57
-41
lines changed

8 files changed

+57
-41
lines changed

frameworks/keyed/rendrjs/README.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Rendrjs Implementation
2+
3+
4+
See the implementation
5+
```sh
6+
http://localhost:8080/frameworks/keyed/rendrjs/
7+
```
8+
9+
Run the benchmark
10+
```sh
11+
npm run bench -- --framework keyed/rendrjs --chromeBinary /var/lib/flatpak/exports/bin/com.google.Chrome && npm run results
12+
```
13+
14+
See the results
15+
```sh
16+
http://localhost:8080/webdriver-ts-results/dist/index.html
17+
```

frameworks/keyed/rendrjs/src/App.js

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { rendr, useState } from '@rendrjs/core';
2-
import Jumbotron from './Jumbotron';
3-
import Row from './Row';
2+
import { Jumbotron } from './Jumbotron';
3+
import { Row } from './Row';
4+
import { RemoveIcon } from './RemoveIcon';
45

56
let random = (max) => Math.round(Math.random() * 1000) % max;
67

@@ -28,12 +29,9 @@ let buildData = (count) => {
2829
return data;
2930
};
3031

31-
let preloadIcon = rendr('span', {
32-
class: 'preloadicon glyphicon glyphicon-remove',
33-
'aria-hidden': true,
34-
});
32+
export let preloadIcon = rendr(RemoveIcon, { pre: true });
3533

36-
let App = () => {
34+
export let App = () => {
3735
let [state, setState] = useState({ arr: [], sel: 0 });
3836

3937
let run = () => setState({ arr: buildData(1000), sel: 0 });
@@ -58,7 +56,7 @@ let App = () => {
5856
old.arr.splice(old.arr.findIndex((d) => d.id === id), 1);
5957
return { ...old };
6058
});
61-
let select = id => setState(old => ({ ...old, sel: id }));
59+
let sel = id => setState(old => ({ ...old, sel: id }));
6260

6361
return rendr('div', {
6462
class: 'container',
@@ -70,8 +68,8 @@ let App = () => {
7068
slot: state.arr.map(item => rendr(Row, {
7169
key: `${item.id}`,
7270
item,
73-
sel: state.sel === item.id,
74-
select,
71+
hi: state.sel === item.id,
72+
sel,
7573
del,
7674
memo: [item.id === state.sel, item.label],
7775
})),
@@ -81,5 +79,3 @@ let App = () => {
8179
],
8280
});
8381
};
84-
85-
export default App;
Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
import { rendr } from '@rendrjs/core';
2+
import { colSm6 } from './classes';
23

3-
let Button = (props) => {
4+
export let Button = (props) => {
45
return rendr('div', {
5-
class: 'col-sm-6 smallpad',
6+
class: `${colSm6} smallpad`,
67
slot: rendr('button', {
78
id: props.id,
89
onclick: props.cb,
@@ -12,5 +13,3 @@ let Button = (props) => {
1213
}),
1314
});
1415
};
15-
16-
export default Button;

frameworks/keyed/rendrjs/src/Jumbotron.js

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
11
import { rendr } from '@rendrjs/core';
2-
import Button from './Button';
2+
import { Button } from './Button';
3+
import { colMd6 } from './classes';
34

4-
let Jumbotron = (props) => {
5+
export let Jumbotron = (props) => {
56
return rendr('div', {
67
class: 'jumbotron',
78
slot: rendr('div', {
89
class: 'row',
910
slot: [
1011
rendr('div', {
11-
class: 'col-md-6',
12+
class: colMd6,
1213
slot: rendr('h1', { slot: 'Rendrjs keyed' }),
1314
}),
1415
rendr('div', {
15-
class: 'col-md-6',
16+
class: colMd6,
1617
slot: rendr('div', {
1718
class: 'row',
1819
slot: [
@@ -29,5 +30,3 @@ let Jumbotron = (props) => {
2930
}),
3031
});
3132
};
32-
33-
export default Jumbotron;
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import { rendr } from '@rendrjs/core';
2+
3+
export let RemoveIcon = ({ pre }) => rendr('span', {
4+
class: `${pre ? 'preloadicon ' : ''}glyphicon glyphicon-remove`,
5+
'aria-hidden': true,
6+
});

frameworks/keyed/rendrjs/src/Row.js

Lines changed: 13 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,30 @@
11
import { rendr } from '@rendrjs/core';
2+
import { colMd1, colMd4, colMd6 } from './classes';
3+
import { RemoveIcon } from './RemoveIcon';
24

3-
let Row = props => {
5+
export let Row = ({ hi, sel, item, del }) => {
46
return rendr('tr', {
5-
class: props.sel ? 'danger' : undefined,
7+
class: hi ? 'danger' : undefined,
68
slot: [
79
rendr('td', {
8-
class: 'col-md-1',
9-
slot: `${props.item.id}`,
10+
class: colMd1,
11+
slot: `${item.id}`,
1012
}),
1113
rendr('td', {
12-
class: 'col-md-4',
14+
class: colMd4,
1315
slot: rendr('a', {
14-
onclick: () => props.select(props.item.id),
15-
slot: props.item.label,
16+
onclick: () => sel(item.id),
17+
slot: item.label,
1618
}),
1719
}),
1820
rendr('td', {
19-
class: 'col-md-1',
21+
class: colMd1,
2022
slot: rendr('a', {
21-
onclick: () => props.del(props.item.id),
22-
slot: rendr('span', {
23-
class: 'glyphicon glyphicon-remove',
24-
'aria-hidden': true,
25-
}),
23+
onclick: () => del(item.id),
24+
slot: rendr(RemoveIcon, {}),
2625
}),
2726
}),
28-
rendr('td', {
29-
class: 'col-md-6',
30-
}),
27+
rendr('td', { class: colMd6 }),
3128
],
3229
});
3330
};
34-
35-
export default Row;
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
export let colMd1 = 'col-md-1';
2+
export let colMd4 = 'col-md-4';
3+
export let colMd6 = 'col-md-6';
4+
export let colSm6 = 'col-sm-6';

frameworks/keyed/rendrjs/src/main.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
import { mount, rendr } from '@rendrjs/core';
2-
import App from './App';
2+
import { App } from './App';
33

44
mount(document.querySelector('#root'), rendr(App));

0 commit comments

Comments
 (0)