舉報

會員
Hands-On Design Patterns with React Native
ReactNativehelpsdevelopersreusecodeacrossdifferentmobileplatformslikeiOSandAndroid.ThisbookwillshowyoueffectivedesignpatternsintheReactNativeworldandwillmakeyoureadyforprofessionaldevelopmentinbigteams.ThebookwillfocusonlyonthepatternsthatarerelevanttoJavaScript,ECMAScript,ReactandReactNative.However,youcansuccessfullytransferalotoftheskillsandtechniquestootherlanguages.Icallthem"Ideapatterns".ThisbookwillstartwiththemoststandarddevelopmentpatternsinReactlikecomponentbuildingpatterns,stylingpatternsinReactNativeandthenextendthesepatternstoyourmobileapplicationusingrealworldpracticalexamples.Eachchaptercomeswithfull,separatesourcecodeofapplicationsthatyoucanbuildandrunonyourphone.Thebookisalsodivingintoarchitecturalpatterns.EspeciallyhowtoadaptMVCtoReactenvironment.YouwilllearnFluxarchitectureandhowReduxisimplementingit.Eachapproachwillbepresentedwithitsprosandcons.YouwilllearnhowtoworkwithexternaldatasourcesusinglibrarieslikeReduxthunkandReduxSaga.Theendgoalistheabilitytorecognizethebestsolutionforagivenproblemforyournextmobileapplication.
目錄(233章)
倒序
- 封面
- Title Page
- Copyright and Credits
- Hands-On Design Patterns with React Native
- Dedication
- Packt.com
- Why subscribe?
- Packt.com
- Contributors
- About the author
- About the reviewer
- Packt is searching for authors like you
- Preface
- Who this book is for
- What this book covers
- To get the most out of this book
- Download the example code files
- Download the color images
- Conventions used
- Get in touch
- Reviews
- React Component Patterns
- Stateless and stateful components
- What are the advantages of stateless components?
- Component composition
- Composing the application layout
- What about component inheritance?
- Testing components on high-level patterns
- Snapshot testing expandable components
- Test-driven development approach
- Presentational components
- Decoupling styles
- Container component
- HOC
- HOC composition
- Examples of useful HOCs
- Summary
- View Patterns
- Technical requirements
- Introduction to JSX
- JSX standard tricks
- A beginner's guide to naming
- Type checking with PropTypes
- Built-in components you need to know about
- The ScrollView component
- The Image component
- The TextInput component
- The Button component
- Touchable opacity
- Building forms
- Controlled inputs
- Uncontrolled input
- Introduction to error boundaries
- How error boundaries catch errors
- Understanding error boundaries
- When to use error boundaries
- Why Mixins are anti-patterns
- Mixin example
- Using HOCs instead
- Linters and code style guide
- Adding a linter to create a React Native app
- Airbnb React style guide rules
- Fixing errors
- Summary
- Styling Patterns
- Technical requirements
- How React Native styles work
- Surprising styles inheritance
- Workaround for limited inheritance
- Learning unitless dimensions
- Absolute and relative positioning
- Using the Flexible Box pattern
- Positioning items with Flexbox
- Styling flex items
- Styling content
- Solving the text overflow problem
- Scaling the font down
- Truncating text
- Using the Kilo social media notation
- React Native animated
- What are animations?
- Changing attributes over time
- The easing function
- Scheduling events
- Measuring FPS
- How to measure FPS
- Summary
- Flux Architecture
- One-direction dataflow pattern
- React's one-way data binding
- Event problems
- Further issues with binding
- Introduction to Flux
- Replacing MVC
- Flux by example
- Detailed Flux diagram
- What are side effects?
- Why recognize side effects?
- Working with side effects in MVC
- Working with side effects in Flux
- Summary
- Questions
- Further reading
- Store Patterns
- Using Redux stores
- Minimal Redux application example
- How Redux fits into Flux
- Moving to Redux
- Redux as a pattern
- Core principles of Redux
- Moving to a single source of truth
- Creating an alternative with MobX
- Moving to MobX
- Using PropTypes with annotations
- Comparing Redux and MobX
- Using system storage in React Native
- Effect patterns
- Handling side effects
- Summary
- Further reading
- Data Transfer Patterns
- Preparation
- Fetching data with the built-in function
- Refactoring to activity indicator
- Handling error scenarios
- Naive stateful component fetching
- The Thunk pattern and Redux Thunk
- Lifting the state to Redux
- Benefits of refactoring to Redux
- Using Redux Thunk
- Understanding the Thunk pattern
- The saga pattern and Redux Saga
- Introduction to the iterator pattern
- The generator pattern
- Redux Saga
- Redux Saga benefits
- Summary
- Further reading
- Navigation Patterns
- React Native navigation alternatives
- Designers navigation patterns
- Navigation to top-level screens
- Navigating between different levels of the graph
- Navigating on the same level of the graph
- Developers' navigation patterns
- Restructuring your application
- React Navigation
- Using React Navigation
- Multiple screens with React Navigation
- Tab navigation
- Drawer navigation
- Issues with duplicated data
- React Native Navigation
- A few words on the setup
- Basics of React Native Navigation
- Further investigation
- Summary
- Further reading
- JavaScript and ECMAScript Patterns
- JavaScript and functional programming
- ES6 map filter and reduce
- Using reduce to reimplement filter and map
- Counting items in an array
- The iterator pattern
- Defining a custom iterator
- Using generators as a factory for iterators
- Making an API call to fetch task details with a generator
- Alternatives to generators
- Selectors
- Selecting from the Redux store
- Caching the selectors
- Learning functions from the Ramda library
- Composing functions
- Fighting the confusing code
- Currying functions
- Flipping
- Summary
- Further reading
- Elements of Functional Programming Patterns
- Mutable and immutable objects
- Immutable primitives in JavaScript
- Immutability cost explained
- Benchmark on read/write operations
- Pure functions
- Pure functions in Redux
- Caching pure functions
- Referential transparency
- Everything but monads
- Call me Maybe
- Monad interface requirements
- Higher-order functions
- Examples of higher-order functions
- Functional languages aside
- Terminology
- Building abstractions
- React is not obsessed with pure functions
- Summary
- Further reading
- Managing Dependencies
- The singleton pattern
- Implementing the singleton pattern in ECMAScript
- Why using the singleton pattern is discouraged
- The many singleton flavors in JavaScript
- ES6 modules and beyond
- The DI pattern
- Using the DI pattern with storybooks
- Nested stories with DI
- DI with React context
- Using the React Context API
- React Redux aside
- Managing the code base
- Quick wins
- Establishing conventions
- Summary
- Further reading
- Type Checking Patterns
- Introduction to types
- Introduction to TypeScript
- Configuring TypeScript
- Learning the basic types
- enums and constants patterns
- Creating union types and intersections
- Generic types
- Understanding TypeScript
- Type inference
- Structural typing
- Immutability with TypeScript
- readonly
- Using linter to enforce immutability
- Summary
- Further reading
- Other Books You May Enjoy
- Leave a review - let other readers know what you think 更新時間:2021-08-13 15:13:36
推薦閱讀
- 編程卓越之道(卷3):軟件工程化
- Android 9 Development Cookbook(Third Edition)
- Blockly創(chuàng)意趣味編程
- Cassandra Data Modeling and Analysis
- 精通Python設計模式(第2版)
- ExtJS高級程序設計
- Mastering React
- Learning YARN
- App Inventor創(chuàng)意趣味編程進階
- 移動互聯網軟件開發(fā)實驗指導
- C編程技巧:117個問題解決方案示例
- Vue.js 3應用開發(fā)與核心源碼解析
- Anaconda數據科學實戰(zhàn)
- 數據科學中的實用統計學(第2版)
- Solr權威指南(下卷)
- JavaWeb從入門到精通(視頻實戰(zhàn)版)
- Spring Boot學習指南:構建云原生Java和Kotlin應用程序
- C語言王者歸來
- PHP程序設計高級教程
- 物聯網及低功耗藍牙5.x高級開發(fā)
- Apache Cassandra Essentials
- HTML5+CSS3+JavaScript從入門到精通(微課精編版)
- 測試反模式:有效規(guī)避常見的92種測試陷阱
- Python科學與工程數據分析實戰(zhàn)
- 數據分析與挖掘:R語言
- UML與Rose建模實用教程
- Python高并發(fā)與高性能編程:原理與實踐
- C++程序設計教程
- Raspberry Pi Android Projects
- Scratch 3.0趣味編程精彩實例