Title Page Copyright and Credits React and React Native Second Edition Packt Upsell Why subscribe? www.packt.com Contributors About the author About the reviewer Packt is searching for authors like you Dedication Preface Who this book is for What this book covers Part I: React Part II: React Native Part III: React Architecture To get the most out of this book Download the example code files Conventions used Get in touch Reviews Why React? What is React? React is just the view Simplicity is good Declarative UI structure Time and data Performance matters The right level of abstraction What's new in React 16 Core architecture revamped Lifecycle methods Context API Rendering fragments Portals Rendering lists and strings Handling errors Server-side rendering Summary Test your knowledge Further reading Rendering with JSX What is JSX? Hello JSX Declarative UI structure Just like HTML Built-in HTML tags HTML tag conventions Describing UI structures Creating your own JSX elements Encapsulating HTML Nested elements Namespaced components Using JavaScript expressions Dynamic property values and text Mapping collections to elements Fragments of JSX Wrapper elements Avoiding unnecessary tags using fragments Summary Test your knowledge Further reading Component Properties, State, and Context What is component state? What are component properties? Setting component state Initial component state Setting component state Merging component state Passing property values Default property values Setting property values Stateless components Pure functional components Defaults in functional components Container components Providing and consuming context Summary Test your knowledge Further reading Event Handling, the React Way Declaring event handlers Declaring handler functions Multiple event handlers Importing generic handlers Event handler context and parameters Getting component data Higher-order event handlers Inline event handlers Binding handlers to elements Synthetic event objects Event pooling Summary Test your knowledge Further reading Crafting Reusable Components Reusable HTML elements The difficulty with monolithic components The JSX markup Initial state and state helpers Event handler implementation Refactoring component structures Start with the JSX Implementing an article list component Implementing an article item component Implementing an add article component Making components functional Leveraging render props Rendering component trees Feature components and utility components Summary Test your knowledge  Further Reading The React Component Lifecycle Why components need a lifecycle Initializing properties and state Fetching component data Initializing state with properties Updating state with properties Optimize rendering efficiency To render or not to render Using metadata to optimize rendering Rendering imperative components Rendering jQuery UI widgets Cleaning up after components Cleaning up asynchronous calls Containing errors with error boundaries Summary Test your knowledge Further Reading Validating Component Properties Knowing what to expect Promoting portable components Simple property validators Basic type validation Requiring values Any property value Type and value validators Things that can be rendered Requiring specific types Requiring specific values Writing custom property validators Summary Test your knowledge Further reading Extending Components Component inheritance Inheriting state Inheriting properties Inheriting JSX and event handlers Composition with higher-order components Conditional component rendering Providing data sources Summary Test your knowledge Further reading Handling Navigation with Routes Declaring routes Hello route Decoupling route declarations Parent and child routes Handling route parameters Resource IDs in routes Optional parameters Using link components Basic linking URL and query parameters Summary Test your knowledge Further reading Server-Side React Components What is isomorphic JavaScript? The server is a render target Initial load performance Sharing code between the server and the browser Rendering to strings Backend routing Frontend reconciliation Fetching data Summary Test your knowledege Further reading Mobile-First React Components The rationale behind mobile-first design Using react-bootstrap components Implementing navigation Lists Forms Summary Test your knowledge Further reading Why React Native? What is React Native? React and JSX are familiar The mobile browser experience Android and iOS, different yet the same The case for mobile web apps Summary Test your knowledge Further reading Kickstarting React Native Projects Installing and using the create-react-native-app Creating a React Native app Running your app Installing and using Expo Using simulators iOS simulators Android simulators Summary Test your knowledge Further reading Building Responsive Layouts with Flexbox Flexbox is the new layout standard Introducing React Native styles Building flexbox layouts Simple three column layout Improved three column layout Flexible rows Flexible grids Flexible rows and columns Summary Test your knowledge Further reading Navigating Between Screens Navigation basics Route parameters The navigation header Tab and drawer navigation Handling state Summary Test your knowledege Further reading Rendering Item Lists Rendering data collections Sorting and filtering lists Fetching list data Lazy list loading Summary Test your knowledege Further reading Showing Progress Progress and usability Indicating progress Measuring progress Navigation indicators Step progress Summary Test your knowledge Further reading Geolocation and Maps Where am I? What's around me? Annotating points of interest Plotting points Plotting overlays Summary Test your knowledge Further reading Collecting User Input Collecting text input Selecting from a list of options Toggling between off and on Collecting date/time input Summary Test your knowledge Further reading Alerts, Notifications, and Confirmation Important information Getting user confirmation Success confirmation Error confirmation Passive notifications Activity modals Summary Test your knowledge Further reading Responding to User Gestures Scrolling with your fingers Giving touch feedback Swipeable and cancellable Summary Test your knowledge Further reading Controlling Image Display Loading images Resizing images Lazy image loading Rendering icons Summary Test your knowledge Further reading Going Offline Detecting the state of the network Storing application data Synchronizing application data Summary Test your knowledge Further reading Handling Application State Information architecture and Flux Unidirectionality Synchronous update rounds Predictable state transformations Unified information architecture Implementing Redux Initial application state Creating the store Store provider and routes The App component The Home component State in mobile apps Scaling the architecture Summary Test your knowledge Further reading Why Relay and GraphQL? Yet another approach? Verbose vernacular Declarative data dependencies Mutating application state The GraphQL backend and microservices Summary Test your knowledge Further reading Building a Relay React App TodoMVC and Relay The GraphQL schema Bootstrapping Relay Adding todo items Rendering todo items Completing todo items Summary Test Your Knowledge Answers Chapter 1 Chapter 2 Chapter 3 Chapter 4 Chapter 5 Chapter 6  Chapter 7 Chapter 8 Chapter 9 Chapter 10 Chapter 11 Chapter 12 Chapter 13 Chapter 14 Chapter 15 Chapter 16 Chapter 17 Chapter 18 Chapter 19 Chapter 20 Chapter 21 Chapter 22 Chapter 23 Chapter 24 Chapter 25 Other Books You May Enjoy Leave a review - let other readers know what you think