(eBook PDF) Learning React: Modern Patterns for Developing React Apps 2nd Edition instant download
(eBook PDF) Learning React: Modern Patterns for Developing React Apps 2nd Edition instant download
https://ebookluna.com/product/ebook-pdf-learning-react-modern-
patterns-for-developing-react-apps-2nd-edition/
https://ebookluna.com/product/learning-react-modern-patterns-for-
developing-react-apps-2nd-edition-ebook-pdf/
ebookluna.com
https://ebookluna.com/product/ebook-pdf-instructional-patterns-
strategies-for-maximizing-student-learning/
ebookluna.com
https://ebookluna.com/product/ebook-pdf-reflections-patterns-for-
reading-and-writing-2nd-edition/
ebookluna.com
https://ebookluna.com/product/ebook-pdf-patterns-of-modern-chinese-
history-by-charles-a-desnoyers/
ebookluna.com
Modern Sample Preparation for Chromatography, 2nd Edition
Serban Moldoveanu - eBook PDF
https://ebookluna.com/download/modern-sample-preparation-for-
chromatography-2nd-edition-ebook-pdf/
ebookluna.com
https://ebookluna.com/product/original-pdf-learning-for-teaching-
teaching-for-learning-with-student-resour/
ebookluna.com
https://ebookluna.com/product/ebook-pdf-developing-content-area-
literacy-40-strategies-for-middle-and-secondary-classrooms-2nd-
edition/
ebookluna.com
https://ebookluna.com/download/business-communication-developing-
leaders-for-a-networked-world-ebook-pdf/
ebookluna.com
https://ebookluna.com/product/ebook-pdf-patterns-of-world-history-
combined-volume-2nd-edition/
ebookluna.com
c. Typechecking for React Applications
i. PropTypes
ii. Flow
iii. TypeScript
d. Test-Driven Development
i. TDD and Learning
e. Incorporating Jest
Copyright © 2020 Alex Banks and Eve Porcello. All rights reserved.
The views expressed in this work are those of the authors, and do not
represent the publisher’s views. While the publisher and the authors
have used good faith efforts to ensure that the information and
instructions contained in this work are accurate, the publisher and the
authors disclaim all responsibility for errors or omissions, including
without limitation responsibility for damages resulting from the use of
or reliance on this work. Use of the information and instructions
contained in this work is at your own risk. If any code samples or other
technology this work contains or describes is subject to open source
licenses or the intellectual property rights of others, it is your
responsibility to ensure that your use thereof complies with such
licenses and/or rights.
978-1-492-05172-5
[LSI]
Preface
This book is for developers who want to learn the React library while
learning the latest techniques currently emerging in the JavaScript
language. This is an exciting time to be a JavaScript developer. The
ecosystem is exploding with new tools, syntax, and best practices that
promise to solve many of our development problems. Our aim with this
book is to organize these techniques so you can get to work with React
right away. We’ll get into state management, React Router, testing, and
server rendering, so we promise not to introduce only the basics and
then throw you to the wolves.
This book does not assume any knowledge of React at all. We’ll
introduce all of React’s basics from scratch. Similarly, we won’t
assume that you’ve worked with the latest JavaScript syntax. This will
be introduced in Chapter 2 as a foundation for the rest of the chapters.
Along the way, check out the GitHub repository. All of the examples
are there and will allow you to practice hands-on.
Italic
Indicates new terms, URLs, email addresses, filenames, and file
extensions.
Constant width
Used for program listings, as well as within paragraphs to refer to
program elements such as variable or function names, databases,
data types, environment variables, statements, and keywords.
TIP
This element signifies a tip or suggestion.
NOTE
This element signifies a general note.
WARNING
This element indicates a warning or caution.
Using Code Examples
Supplemental material (code examples, exercises, etc.) is available for
download at https://github.com/moonhighway/learning-react.
This book is here to help you get your job done. In general, if example
code is offered with this book, you may use it in your programs and
documentation. You do not need to contact us for permission unless
you’re reproducing a significant portion of the code. For example,
writing a program that uses several chunks of code from this book does
not require permission. Selling or distributing examples from O’Reilly
books does require permission. Answering a question by citing this
book and quoting example code does not require permission.
Incorporating a significant amount of example code from this book into
your product’s documentation does require permission.
If you feel your use of code examples falls outside fair use or the
permission given above, feel free to contact us at
permissions@oreilly.com.
How to Contact Us
Please address comments and questions concerning this book to the
publisher:
Sebastopol, CA 95472
707-829-0104 (fax)
We have a web page for this book, where we list errata, examples, and
any additional information. You can access this page at
https://oreil.ly/learningReact_2e.
For news and information about our books and courses, visit
http://oreilly.com.
Acknowledgments
Our journey with React wouldn’t have started without some good old-
fashioned luck. We used YUI when we created the training materials
for the full-stack JavaScript program we taught internally at Yahoo.
Then in August 2014, development on YUI ended. We had to change
all our course files, but to what? What were we supposed to use on the
front-end now? The answer: React. We didn’t fall in love with React
immediately; it took us a couple hours to get hooked. It looked like
React could potentially change everything. We got in early and got
really lucky.
We appreciate the help of Angela Rufino and Jennifer Pollock for all
the support in developing this second edition. We also want to
acknowledge Ally MacDonald for all her editing help in the first
edition. We’re grateful to our tech reviewers, Scott Iwako, Adam
Rackis, Brian Sletten, Max Firtman, and Chetan Karande.
There’s also no way this book could have existed without Sharon
Adams and Marilyn Messineo. They conspired to purchase Alex’s first
computer, a Tandy TRS 80 Color Computer. It also wouldn’t have
made it to book form without the love, support, and encouragement of
Jim and Lorri Porcello and Mike and Sharon Adams.
When React was first released, there was a lot of conversation around
whether it was good, and there were many skeptics. It was new, and the
new can often be upsetting.
To respond to these critiques, Pete Hunt from the React team wrote an
article called “Why React?” that recommended that you “give it
[React] five minutes.” He wanted to encourage people to work with
React first before thinking that the team’s approach was too wild.
Yes, React is a small library that doesn’t come with everything you
might need out of the box to build your application. Give it five
minutes.
Yes, in React, you write code that looks like HTML right in your
JavaScript code. And yes, those tags require preprocessing to run in a
browser. And you’ll probably need a build tool like webpack for that.
Give it five minutes.
A Strong Foundation
Whether you’re brand new to React or looking to this text to learn
some of the latest features, we want this book to serve as a strong
foundation for all your future work with the library. The goal of this
book is to avoid confusion in the learning process by putting things in a
sequence: a learning roadmap.
Before digging into React, it’s important to know JavaScript. Not all of
JavaScript, not every pattern, but having a comfort with arrays, objects,
and functions before jumping into this book will be useful.
In the next chapter, we’ll look at newer JavaScript syntax to get you
acquainted with the latest JavaScript features, especially those that are
frequently used with React. Then we’ll give an introduction to
functional JavaScript so you can understand the paradigm that gave
birth to React. A nice side effect of working with React is that it can
make you a stronger JavaScript developer by promoting patterns that
are readable, reusable, and testable. Sort of like a gentle, helpful
brainwashing.
From there, we’ll cover foundational React knowledge to understand
how to build out a user interface with components. Then we’ll learn to
compose these components and add logic with props and state. We’ll
cover React Hooks, which allow us to reuse stateful logic between
components.
Once the basics are in place, we’ll build a new application that allows
users to add, edit, and delete colors. We’ll learn how Hooks and
Suspense can help us with data fetching. Throughout the construction
of that app, we’ll introduce a variety of tools from the broader React
ecosystem that are used to handle common concerns like routing,
testing, and server-side rendering.
Another huge event on the timeline was the release of React Fiber in
2017. Fiber was a rewrite of React’s rendering algorithm that was sort
of magical in its execution. It was a full rewrite of React’s internals that
changed barely anything about the public API. It was a way of making
React more modern and performant without affecting its users.
In the future, we’ll inevitably see more change, but one of the reasons
for React’s success is the strong team that has worked on the project
over the years. The team is ambitious yet cautious, pushing forward-
thinking optimizations while constantly considering the impact any
changes to the library will send cascading through the community.
As changes are made to React and related tools, sometimes there are
breaking changes. In fact, future versions of these tools may break
some of the example code in this book. You can still follow along with
the code samples. We’ll provide exact version information in the
package.json file so that you can install these packages at the correct
version.
Beyond this book, you can stay on top of changes by following along
with the official React blog. When new versions of React are released,
the core team will write a detailed blog post and changelog about
what’s new. The blog has also been translated into an ever-expanding
list of languages, so if English isn’t your native language, you can find
localized versions of the docs on the languages page of the docs site.
To install, head over to the GitHub repository. There, you’ll find links
to the Chrome and Firefox extensions.
Once installed, you’ll be able to see which sites are using React.
Anytime the React icon is illuminated in the browser toolbar as shown
in Figure 1-1, you’ll know that the site has React on the page.
Other documents randomly have
different content
“Maybe you shouldn’t go,” Pauline began.
Flo agreed with her. “I’ll have golden hair, too. It’s
bound to make me look better. Don’t you think so,
Judy?”
“Did your mother call it dull and drab?” asked Flo. “Is
that why you’ve hypnotized the rest of us into buying
this golden hair wash?”
37
CHAPTER VI
An Unfortunate Gift
“Take mine, too. I don’t like the looks of the stuff when
it’s spilled. And I’d be afraid to use it after what that
druggist said,” declared Flo. “I wish—”
“I can just see you being swept up into the clouds with
that white scarf trailing behind you. Like the witch who
rides through the sky on Hallowe’en.”
But Judy didn’t see any reason why she shouldn’t leave
her seat if the others saved it for her. She shook the
snow from her coat and left it there so people would
know the seat was taken.
“You people out there are part of the show, too,” Irene 42
continued. “When the hands of the studio clock point to
seven we will go on the air. In the meantime, I’d like to
present four of my best friends to the studio audience.”
43
CHAPTER VII
A Hidden Danger
The area between the first row of seats and the Golden
Girl set was filled with a complicated maze of technical
equipment. Judy nearly tripped over a trailing cable on
the way to join Irene on the studio floor.
“You can settle it when you see her,” Irene told them as 45
they entered the crowded dressing room. The girls who
were to be good fairies on the program were fluttering
about in their filmy dresses. Two of them were seated
before a long dressing table putting on make-up that
gave their faces a yellowish tinge. A third girl, made up
to look like an old woman, was dipping a sponge into a
bowl of green stuff and then applying it to her face.
46
47
“I’m afraid I don’t either,” Irene confessed. “She wore a
black wig in the Mikado and looked quite like a
Japanese schoolgirl. She is late, but I’m sure she’ll be
here in time to play the part of the Sleeping Beauty. She
doesn’t appear until the show is half over. Maybe she
planned to be late so she would have the dressing room
to herself. We had to rehearse without her this
afternoon,” Irene continued, a worried note creeping
into her voice, “but she assured me, over the telephone,
that she knows the part.”
“I see.”
She could hear voices that made her even more curious.
“It’s forbidden!” someone was almost shouting. “This
thing is still in the experimental stage. It may be as
dangerous as an atom bomb!”
She was calm as she entered the small room that was
still charged with emotion. Rows of shelves and
pigeonholes lined the walls. Two men were glaring at
each other across a high desk.
“You are from our agency! Why did you tell the guide
you were from Hollywood?” Flo demanded.
“Did you say line or lie?” Flo was angry now and
justifiably so, Judy thought. Without in the least
understanding what was going on, she felt herself on
the side of truth. Something Clarissa had said back in
the restaurant flashed across her mind. “Doesn’t
anybody in New York care about the truth?” Apparently
there were a number of people who did, among them
the white-haired projectionist, Mr. Lenz.
“The word is lie,” he said icily. “So you tell people what
they want to hear, do you, Mr. van Pelt? I think the
purpose of your agency is to make them dissatisfied
with what they have so they’ll buy what you have to
sell.”
“No, but this is! None of the other networks allow it. I
have my orders from the director of this program,” the
projectionist declared. “Now, suppose you take your film
out of here.”
Young Blake van Pelt picked up a round gray can about
an inch thick and a foot across, and sauntered out of
the room. Did it contain a roll of film or something more
sinister? Judy found herself wondering what Mr. Lenz
meant when he had shouted, “It may be as dangerous
as an atom bomb!” After he had calmed down a little
the projectionist opened a can similar to the one the
younger man had taken away with him and said to
Irene, “This is the ad we’ll run on your show, Mrs.
Meredith. It’s for a tooth paste approved by dentists,
and features a cute little girl cleaning her teeth.”
51
CHAPTER VIII
The Witch’s Curse
The hands of the big studio clock over the exit door 52
moved slowly toward the hour of seven. The camera
men and the boom man, all wearing headphones, stood
ready before their equipment. The floor manager also
waited for the directions he would receive through his
headpiece.
“All set?” asked the announcer.
“If Peter were here I could ask him about it,” Judy
thought.
It was almost too real when the witch whirled in. A gasp
went up from the audience as she interrupted the fairy
song with a hoarse shriek:
“No, oh, no!” Judy almost forgot it was a play and found 55
herself crying out with the fairies. All had given their
gifts except Irene, who was playing the part of the
twelfth fairy.
“You can get them after the show,” Flo whispered back.
She turned to Pauline and said something about the
commercial. Several people left their seats during the
intermission, but Judy stayed where she was. She didn’t
want to miss anything.
It was the same evil voice Judy had heard back in the
dressing room.
“I—I’m afraid.”
59
CHAPTER IX
Into the Mist
All this time Irene had been standing to the left of the
set. She introduced the prince, now seen in a puzzled
pose before the forsaken castle.