Skip to content

Commit dda6748

Browse files
committed
Update to React 16.4.0 kay-is#9
1 parent 25fccc1 commit dda6748

17 files changed

+181
-188
lines changed

00-object-elements.html

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
<title>00 Object Elements - React From Zero</title>
44

5-
<script src="https://unpkg.com/react@15.4.2/dist/react.js"></script>
6-
<script src="https://unpkg.com/react-dom@15.4.2/dist/react-dom.js"></script>
5+
<script src="https://unpkg.com/react@16.4.0/umd/react.development.js"></script>
6+
<script src="https://unpkg.com/react-dom@16.4.0/umd/react-dom.development.js"></script>
77

88
<div id="app">
99
<!--The render target of our React application-->
@@ -12,7 +12,7 @@
1212
<script>
1313
// React uses ES2015 Symbols to "tag" its element-objects.
1414
// It uses a magic number as fallback on older browsers.
15-
var magicValue = (Symbol && Symbol.for('react.element')) || 0xeac7
15+
var magicValue = (Symbol && Symbol.for("react.element")) || 0xeac7
1616

1717
// React uses virtual DOM elements, which become real DOM elements on a render.
1818
// A virtual DOM element can be defined as a simple object literal.
@@ -25,44 +25,49 @@
2525
// React.createElement() sets it for your
2626
$$typeof: magicValue,
2727

28+
// This will also be checked by React. We will be talking about references
29+
// later, but if you're not using them, this has to be set to null and not
30+
// undefined
31+
ref: null,
32+
2833
// This defines the HTML-tag
29-
type: 'h1',
34+
type: "h1",
3035

3136
// This defines the properties that get passed down into the element
3237
props: {
3338

3439
// In this example there is just a single text node as child
35-
children: 'Hello, world!',
40+
children: "Hello, world!",
3641

3742
// a CSS class
38-
className: 'abc',
43+
className: "abc",
3944

4045
// styles can be passed as object literals
4146
// React uses camelCase instead of dashed-case (like CSS/D3 do)
4247
style: {
43-
textAlign: 'center',
48+
textAlign: "center",
4449
},
4550

4651
// event handlers can be added as properties, too
4752
// React uses synthetic events, which basically try to normalize browser behaviour
48-
onClick: function (notYourRegularEvent) { alert('click') },
53+
onClick: function (notYourRegularEvent) { alert("click") },
4954
},
5055

5156
}
5257

53-
// another element that doesn't have much configuration
58+
// another element that doesn"t have much configuration
5459
var anotherElement = {
5560
$$typeof: magicValue,
56-
type: 'p',
61+
ref: null,
62+
type: "p",
5763
props: {
58-
children: 'A nice text paragraph.',
64+
children: "A nice text paragraph.",
5965
},
6066
}
6167

6268
// React needs a DOM element as render target
63-
var renderTarget = document.getElementById('app')
69+
var renderTarget = document.getElementById("app")
6470

6571
// ReactDOM is responsible for inserting the element into the DOM
6672
ReactDOM.render(reactElement, renderTarget)
67-
6873
</script>

01-element-factory.html

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,33 +2,32 @@
22

33
<title>01 Element Factory - React From Zero</title>
44

5-
<script src="https://unpkg.com/react@15.4.2/dist/react.js"></script>
6-
<script src="https://unpkg.com/react-dom@15.4.2/dist/react-dom.js"></script>
5+
<script src="https://unpkg.com/react@16.4.0/umd/react.development.js"></script>
6+
<script src="https://unpkg.com/react-dom@16.4.0/umd/react-dom.development.js"></script>
77

8-
<div id='app'></div>
8+
<div id="app"></div>
99

1010
<script>
1111
// React.createElement() needs type, properties, children.
1212
// This is less verbose than using plain object literals,
13-
// it hides the $$type/Symbol stuff mentioned in 0
14-
var reactElement = React.createElement('h1', {
13+
// it hides the $$type/Symbol and ref mentioned in lesson 0
14+
var reactElement = React.createElement("h1", {
1515

16-
className: 'abc',
16+
className: "abc",
1717

1818
style: {
19-
textAlign: 'center',
19+
textAlign: "center",
2020
},
2121

22-
onClick: function () { alert('click') },
22+
onClick: function () { alert("click") },
2323

24-
}, 'Hello, world!')
24+
}, "Hello, world!")
2525

2626

27-
// the second argument is the property object and has to be null if empty
28-
var anotherElement = React.createElement('p', null, 'A nice text paragraph.')
27+
// The second argument is the property object and has to be null if empty
28+
var anotherElement = React.createElement("p", null, "A nice text paragraph.")
2929

30-
var renderTarget = document.getElementById('app')
30+
var renderTarget = document.getElementById("app")
3131

3232
ReactDOM.render(reactElement, renderTarget)
33-
3433
</script>

02-jsx.html

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,47 +2,45 @@
22

33
<title>02 JSX - React From Zero</title>
44

5-
<script src="https://unpkg.com/react@15.4.2/dist/react.js"></script>
6-
<script src="https://unpkg.com/react-dom@15.4.2/dist/react-dom.js"></script>
5+
<script src="https://unpkg.com/react@16.4.0/umd/react.development.js"></script>
6+
<script src="https://unpkg.com/react-dom@16.4.0/umd/react-dom.development.js"></script>
77

88
<script src="https://unpkg.com/@babel/standalone/babel.min.js">
99
// Now we will use JSX, which needs to be converted to JavaScript.
1010
// For this we will use Babel. Babel is normally used to convert ES2015 to ES5, but
1111
// it also can convert JSX to ES5. Babels browser version uses text/babel script tags.
1212
</script>
1313

14-
<div id='app'></div>
14+
<div id="app"></div>
1515

1616
<script type="text/babel">
17-
1817
// JSX is the idiomatic way of creating elements.
1918
// It's basically XHTML with {} for dynamic content
2019
// also class has to be called className
2120
var reactElement =
2221
<h1
23-
className='abc'
24-
style={{textAlign: 'center'}}
25-
onClick={function() { alert('click') }}>
22+
className="abc"
23+
style={{textAlign: "center"}}
24+
onClick={function() { alert("click") }}>
2625
Hello, world!
2726
</h1>
2827

2928
// Is the same as
3029
reactElement =
3130
React.createElement(
32-
'h1',
33-
{className: 'abc', style: {textAlign: 'center'},
34-
onClick: function() { alert('click') }},
35-
'Hello, world!'
31+
"h1",
32+
{className: "abc", style: {textAlign: "center"},
33+
onClick: function() { alert("click") }},
34+
"Hello, world!"
3635
)
3736

3837
// JSX shines especially with simple elements that make up the majority
3938
var anotherElement = <p>A nice text paragraph.</p>
4039
// Is the same as
41-
anotherElement = React.createElement('p', null, 'A nice text paragraph.')
40+
anotherElement = React.createElement("p", null, "A nice text paragraph.")
4241

4342
// As we can see, everything else works as before
44-
var renderTarget = document.getElementById('app')
43+
var renderTarget = document.getElementById("app")
4544

4645
ReactDOM.render(reactElement, renderTarget)
47-
4846
</script>

03-nested-elements.html

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,25 @@
22

33
<title>03 Nested Elements - React From Zero</title>
44

5-
<script src="https://unpkg.com/react@15.4.2/dist/react.js"></script>
6-
<script src="https://unpkg.com/react-dom@15.4.2/dist/react-dom.js"></script>
5+
<script src="https://unpkg.com/react@16.4.0/umd/react.development.js"></script>
6+
<script src="https://unpkg.com/react-dom@16.4.0/umd/react-dom.development.js"></script>
77
<script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
88

99
<div id="app"></div>
1010

1111
<script type="text/babel">
12-
1312
// Elements can be nested, which will result in nested React.createElement calls
1413
// As you can imagine, writing withs without JSX would be pretty tedious
1514
var reactElement =
16-
<div className='abc'>
15+
<div className="abc">
1716
<h1>Hello</h1>
1817
<h2>world</h2>
1918
</div>
2019

2120
// they can also, like mentioned in lesson 2, contain JavaScript in {}
22-
var myClass = 'abc'
21+
var myClass = "abc"
2322

24-
function myText() { return 'world' }
23+
function myText() { return "world" }
2524

2625
// JavaScript insertion has the same syntax in attributes as in normal text or elements
2726
reactElement =
@@ -41,8 +40,8 @@ <h1>Hello</h1>
4140

4241
// it is also possible to "spread" an object as properties
4342
var properties = {
44-
className: 'abc',
45-
onClick: function() { alert('click') },
43+
className: "abc",
44+
onClick: function() { alert("click") },
4645
}
4746

4847
reactElement =
@@ -51,8 +50,7 @@ <h1>Hello</h1>
5150
<h2>world</h2>
5251
</div>
5352

54-
var renderTarget = document.getElementById('app')
53+
var renderTarget = document.getElementById("app")
5554

5655
ReactDOM.render(reactElement, renderTarget)
57-
5856
</script>

04-components.html

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,19 @@
22

33
<title>04 Components - React From Zero</title>
44

5-
<script src="https://unpkg.com/react@15.4.2/dist/react.js"></script>
6-
<script src="https://unpkg.com/react-dom@15.4.2/dist/react-dom.js"></script>
5+
<script src="https://unpkg.com/react@16.4.0/umd/react.development.js"></script>
6+
<script src="https://unpkg.com/react-dom@16.4.0/umd/react-dom.development.js"></script>
77
<script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
88

99
<div id="app"></div>
1010

1111
<script type="text/babel">
12-
1312
// The main selling point of React is its component system
1413
// components are used to encapsulate elements and their behaviour
1514
// see them as a mix of controller and view of MVC
1615

1716
// Here we use stand alone elements and some data
18-
var data = 'world'
17+
var data = "world"
1918
var reactElement =
2019
<div>
2120
<h1>Hello</h1>
@@ -26,7 +25,7 @@ <h2>{data}</h2>
2625
// They have to start with a capital letter and
2726
// return exactly ONE root element with or without nested elements
2827
function MyComponent() {
29-
var data = 'world'
28+
var data = "world"
3029
return (
3130
<div>
3231
<h1>Hello</h1>
@@ -45,10 +44,9 @@ <h2>{data}</h2>
4544
// for reference a react-internal <div> tag
4645
var anotherElement = <div/>
4746
// gets converted to
48-
anotherElement = React.createElement('div', null)
47+
anotherElement = React.createElement("div", null)
4948

50-
var renderTarget = document.getElementById('app')
49+
var renderTarget = document.getElementById("app")
5150

5251
ReactDOM.render(reactElement, renderTarget)
53-
5452
</script>

05-properties.html

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,13 @@
22

33
<title>05 Properties - React From Zero</title>
44

5-
<script src="https://unpkg.com/react@15.4.2/dist/react.js"></script>
6-
<script src="https://unpkg.com/react-dom@15.4.2/dist/react-dom.js"></script>
5+
<script src="https://unpkg.com/react@16.4.0/umd/react.development.js"></script>
6+
<script src="https://unpkg.com/react-dom@16.4.0/umd/react-dom.development.js"></script>
77
<script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
88

99
<div id="app"></div>
1010

1111
<script type="text/babel">
12-
1312
// Components, like elements, can use properties, too
1413
function MyComponent(props) {
1514
return (
@@ -20,28 +19,27 @@ <h2>{props.customData}</h2>
2019
)
2120
}
2221

23-
var reactElement = <MyComponent className='abc' customData='world'/>
22+
var reactElement = <MyComponent className="abc" customData="world"/>
2423

2524
// Which also works with an object and the spread (...) operator
2625
var props = {
27-
className: 'abc',
28-
customData: 'world',
26+
className: "abc",
27+
customData: "world",
2928
}
3029

3130
reactElement = <MyComponent {...props}/>
3231

3332
// This allows components with dynamic content
34-
var planets = ['earth', 'mars', 'venus']
33+
var planets = ["earth", "mars", "venus"]
3534

3635
// If an array is used as "child node" each child needs a unique key-property
3736
var elements = planets.map(function(planet, index) {
38-
return <MyComponent className='myClass' customData={planet} key={index}/>
37+
return <MyComponent className="myClass" customData={planet} key={index}/>
3938
})
4039

4140
reactElement = <div>{elements}</div>
4241

43-
var renderTarget = document.getElementById('app')
42+
var renderTarget = document.getElementById("app")
4443

4544
ReactDOM.render(reactElement, renderTarget)
46-
4745
</script>

0 commit comments

Comments
 (0)