Skip to content

Commit b2b0a21

Browse files
authored
Merge pull request #13 from ReactBangalore/refs
Added exercises for refs
2 parents 9e1e932 + c9aa953 commit b2b0a21

File tree

6 files changed

+53
-6
lines changed

6 files changed

+53
-6
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
code

exercises/src/App.js

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,19 @@
11
import React, { Component } from "react";
22
import { BrowserRouter as Router, Route, Link } from "react-router-dom";
33
import PerformanceOptimizations from "./performance-optimizations";
4+
import RefsExample from './refs'
45
import ErrorBoundaries from "./error-boundaries";
56
import { Provider } from 'react-redux'
67
import { createStore } from "redux";
78

8-
import reducer from ".testing-react-component/components/CounterStore/reducer";
9+
import reducer from "./testing-react-component/components/CounterStore/reducer";
910

1011
const store = createStore(reducer)
1112

13+
function Home() {
14+
return <h1>Advanced React Workshop</h1>
15+
}
16+
1217
class App extends Component {
1318
render() {
1419
return (
@@ -18,20 +23,24 @@ class App extends Component {
1823
<div className="sidebar">
1924
<ul>
2025
<li>
21-
<Link to="/">Refs</Link>
26+
<Link to="/">Home</Link>
27+
</li>
28+
<li>
29+
<Link to="/refs">Refs</Link>
2230
</li>
2331
<li>
24-
<Link to="/performance-optimizations">perfromance optimizations</Link>
32+
<Link to="/performance-optimizations">Perfromance optimizations</Link>
2533
</li>
2634
<li>
2735
<Link to="/error-boundaries">Error Boundaries</Link>
2836
</li>
2937
</ul>
3038
</div>
3139
<div className="content">
32-
<Route exact path="/" component={PerformanceOptimizations} />
40+
<Route exact path="/" component={Home} />
3341
<Route path="/performance-optimizations" component={PerformanceOptimizations} />
3442
<Route path="/error-boundaries" component={ErrorBoundaries} />
43+
<Route path="/refs" component={RefsExample} />
3544
</div>
3645
</div>
3746
</Router>

exercises/src/index.css

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,11 @@ body {
88
.container {
99
display: flex;
1010
flex: 1;
11+
padding-top: 50px;
1112
}
1213

1314
.sidebar {
14-
padding-top: 50px;
15+
1516
flex: 1;
1617
}
1718
.sidebar ul {
@@ -80,4 +81,4 @@ body {
8081

8182
.Counter__disabled {
8283
opacity: 0.3;
83-
}
84+
}

exercises/src/refs/MeasureText.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import React from 'react'
2+
3+
export default class MeasureText extends React.Component {
4+
render() {
5+
return (
6+
<div>
7+
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
8+
</div>
9+
)
10+
}
11+
}

exercises/src/refs/index.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import React from 'react'
2+
import MeasureText from './MeasureText'
3+
4+
export default class RefsExample extends React.Component {
5+
render() {
6+
return (
7+
<div>
8+
<p><strong>Get the widht and height of the div contaning lorem ipsum text in MeasureText
9+
component and set it in the state of the component.</strong></p>
10+
<p><strong>Hint: calling getBoundingClientRect on a DOM node returns it dimensions</strong></p>
11+
<hr />
12+
<MeasureText />
13+
</div>
14+
)
15+
}
16+
}

slides/refs.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
### React Advanced Workshop
2+
3+
Kiran Abburi
4+
[@kiran_abburi](https://twitter.com/kiran_abburi)
5+
6+
---
7+
8+
### Refs
9+
* To imperatively modify a child outside of the typical dataflow

0 commit comments

Comments
 (0)