Skip to content

Commit

Permalink
Updates, 2018-01-14
Browse files Browse the repository at this point in the history
  • Loading branch information
markerikson committed Jan 14, 2018
1 parent aa5e602 commit e77219d
Show file tree
Hide file tree
Showing 32 changed files with 257 additions and 47 deletions.
4 changes: 4 additions & 0 deletions basic-concepts.md
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,10 @@
https://goshakkk.name/next-steps-official-react-tutorial/
General advice on how to approach learning new things in general without getting overloaded, as well as specific advice for concepts and ideas to learn about after grasping the basics of React.

- **5 practical tips to finally learn React in 2018**
https://goshakkk.name/tips-finally-learn-react/
Common-sense suggestions for simplifying the React learning process, including skipping buzzwords and hardcoding data.

- **Spellbook of Modern Web Dev**
https://github.com/dexteryy/spellbook-of-modern-webdev#gui-framework
A large list of categorized resources for dozens of web development-related topics.
Expand Down
2 changes: 1 addition & 1 deletion boilerplates-and-starter-kits.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@

#### React Project Setup

- **Simple React Development in 2017**
- **Simple React Development in 2018**
https://hackernoon.com/simple-react-development-in-2017-113bd563691f
An excellent set of instructions for setting up a React project with minimal fuss and effort needed. Includes links to some useful resources, and info on deploying the app to production.

Expand Down
4 changes: 4 additions & 0 deletions es6-features.md
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,10 @@
https://www.slideshare.net/HunterLoftis1/connecttech-2017-stop-javascripting-like-its-1999
A slideshow that illustrates how to use async/await and Promises to write cleaner-looking file handling code in a Node environment.

- **Spreading the Spread and Rest Love: Javascript's Spread Syntax**
https://spin.atomicobject.com/2018/01/09/javascript-spread-syntax/
Examples of the new array spread and object rest/spread syntaxes, and how to use them


#### Generators

Expand Down
6 changes: 5 additions & 1 deletion framework-comparisons.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,4 +71,8 @@

- **Migrating complex Javascript applications**
https://javascriptplayground.com/blog/2017/08/migrating-complex-javascript-angular-react/
Jack Franklin describes the lessons learned when his team migrated from Angular to React, including why they migrated, how they approached the architecture changes, how they prioritized what to change, and more. Includes some examples of the Angular->React change, but also good advice in general.
Jack Franklin describes the lessons learned when his team migrated from Angular to React, including why they migrated, how they approached the architecture changes, how they prioritized what to change, and more. Includes some examples of the Angular->React change, but also good advice in general.

- **A Chip off the Monolith**
https://medium.com/onfido-tech/a-chip-off-the-monolith-ec71e06a3015
The Onfido team describes how they extracted a portion of their monolithic Rails+Ember app into a separate React+Redux app.
4 changes: 4 additions & 0 deletions git-resources.md
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,10 @@
https://github.com/blog/2019-how-to-undo-almost-anything-with-git
Instructions for undoing and redoing changes in various scenarios.

- **Undoing in Git**
https://blog.tratif.com/2018/01/04/undoing-in-git/
A summary of the most common ways for undoing things in Git, including bringing back removed commits.


#### E-Books

Expand Down
8 changes: 8 additions & 0 deletions immutable-data.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,10 @@
- **ReactCasts #9: Immutability in Javascript**
https://www.youtube.com/watch?v=4LzcQyZ9JOU
A screencast discussing why immutability is important and its benefits. Compares Javascript's lack of built-in immutability with other languages, and shows how to do immutable operations in plain Javascript.

- **Why Mutation Can Be Scary**
http://alistapart.com/article/why-mutation-can-be-scary
A detailed look at how JS objects and primitives behave in relation to mutability, how `Object.assign` works, and some alternative functions for merging objects.

#### Immutability and React

Expand Down Expand Up @@ -87,6 +91,10 @@

#### Immutable Data Libraries

- **Introducing Immer: Immutability the easy way**
https://hackernoon.com/introducing-immer-immutability-the-easy-way-9d73d8f71cb3
Michel Weststrate, author of MobX, introduces his new Immer library, which uses ES6 proxies to allow writing normal mutative code while the updates are applied immutably.

- **List of immutable libraries**
https://gist.github.com/jlongster/bce43d9be633da55053f
A follow-up to James Longster's article, with pointers to numerous immutable data libraries
Expand Down
2 changes: 1 addition & 1 deletion javascript-resources.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ While this list is primarily focused on learning React and Redux, and generally

- **Eric Elliott's Javascript Resource Lists**
https://medium.com/javascript-scene/10-priceless-resources-for-javascript-learners-bbf2f7d7f84e
https://gist.github.com/ericelliott/d576f72441fc1b27dace/0cee592f8f8b7eae39c4b3851ae92b00463b67b9
https://gist.github.com/ericelliott/d576f72441fc1b27dace/0cee592f8f8b7eae39c4b3851ae92b00463b67b9
Eric Elliott is a strong proponent of Javascript, has written numerous articles about learning and understanding Javascript, and assembled some very useful lists of numerous Javascript resources. (Note that he is very strongly opinionated in his own articles, particularly about certain code patterns that he feels everyone should follow, but overall his advice and information is pretty solid.)

- **Wes Bos's Javascript Resource List**
Expand Down
17 changes: 13 additions & 4 deletions pros-cons-discussion.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
A higher-level, more business-case look at the pros of React

- **React: A Competitive Edge and a Business Decision**
https://reactjs-tampabay-b63e2.firebaseapp.com/#/
https://reactjs-tampabay-b63e2.firebaseapp.com/#/
A slideshow laying out a number of arguments for using React

- **React.js: The Good and the Bad**
Expand Down Expand Up @@ -139,9 +139,17 @@
- **6 mistakes Reacters make that Re-framers avoid**
https://purelyfunctional.tv/article/react-vs-re-frame/
https://news.ycombinator.com/item?id=15157527
https://news.ycombinator.com/item?id=15158334
https://news.ycombinator.com/item?id=15158334
Comparisons between common React/Redux patterns, and how ClojureScript developers using the Reframe toolkit might solve the problems instead. Some decent discussion in the HN comments, including one comment that directly responds to the points in the original article, and discusses how React+Redux give you the power to solve the specific problems you're dealing with.

- **Why is React More Popular than Angular?**
https://javascriptreport.com/why-is-react-more-popular-than-angular/
A look back at the announcements of React and Angular 2, thoughts on the respective paradigms, and how their popularity might change in the future.

- **Me on React: an old dog with new tricks**
https://remysharp.com/2017/08/14/me-on-react-an-old-dog
Remy Sharp, creator of JSBin, gives his thoughts and experiences learning React. Discusses tooling support, styled-components, server-side rendering, hot reloading, tradeoffs and abstractions, and more.


#### Comment Threads and Discussions

Expand Down Expand Up @@ -276,12 +284,13 @@ similar structures in ClojureScript.
- **"Redux app size, boilerplate, and abstraction"**
https://news.ycombinator.com/item?id=15341562
https://news.ycombinator.com/item?id=15344600
https://news.ycombinator.com/item?id=15344447
https://news.ycombinator.com/item?id=15344447
A long subthread of the "React 16" announcement post that discusses several aspects of Redux "boilerplate" and abstraction. I answered a lot of questions about how Redux can and should be used, and there were actually some excellent comments about how Redux usage pays off for long-term app maintainability.

- **How Redux can make you a better developer**
https://medium.cobeisfresh.com/how-redux-can-make-you-a-better-developer-30a094d5e3ec
https://www.reddit.com/r/javascript/comments/7buksy/how_redux_can_make_you_a_better_developer/ A blog post recapping aspects of functional programming and immutability in JS and Redux. The Reddit thread has some excellent discussion on pros and cons of using Redux and how it has benefited people.
https://www.reddit.com/r/javascript/comments/7buksy/how_redux_can_make_you_a_better_developer/
A blog post recapping aspects of functional programming and immutability in JS and Redux. The Reddit thread has some excellent discussion on pros and cons of using Redux and how it has benefited people.

- **"React is focused on making your code understandable, not on making simple examples as short as possible"**
https://twitter.com/dan_abramov/status/930380316463726593
Expand Down
6 changes: 5 additions & 1 deletion react-architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -293,4 +293,8 @@

- **Characteristics of an Ideal React Architecture**
https://medium.com/@robftw/characteristics-of-an-ideal-react-architecture-883b9b92be0b
Some opinionated thoughts on what constitutes good React architecture, including avoiding use of components as controllers, keeping prop passing to just a few levels, and ensuring that diff calculations are cheap.
Some opinionated thoughts on what constitutes good React architecture, including avoiding use of components as controllers, keeping prop passing to just a few levels, and ensuring that diff calculations are cheap.

- **In the Mouth of the Beast**
https://charlespeters.net/writing/in-the-mouth-of-the-beast/
Thoughts on how to approach state management in relation to React, including a focus on the actual needs of your application and what state truly needs to be global.
23 changes: 21 additions & 2 deletions react-component-composition.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@
Explanations and examples of HOCs and their uses

- **ReactCasts: Higher Order Components**
https://youtu.be/LTunyI2Oyzw
https://youtu.be/LTunyI2Oyzw
A screencast that walks through the idea and usage of Higher Order Components

- **Annotations about React Higher-Order Components**
Expand Down Expand Up @@ -107,6 +107,12 @@
https://medium.com/@caseymorrisus/react-composing-higher-order-components-hocs-3a5288e78f55
Gives examples of common use cases for HOCs, shows some example implementations, and demonstrates how to compose HOcs together.

- **Use Default HOcs for Component Logic**
http://arianv.com/post/use-default-hocs-for-component-logic/
Demonstrates how default behavior and logic can be put into a HOC to simplify code and enable reuse.




#### Render Props/Function As Child

Expand Down Expand Up @@ -198,6 +204,15 @@
https://hackernoon.com/curry-away-in-react-7c4ed110c65a
Examples of using currying to create reusable callback functions that can be passed to child components.

- **Killing Switch Statements in React with the Strategy Pattern**
https://glcheetham.name/2016/05/20/killing-switch-statements-in-react-with-the-strategy-pattern/
Describes why the author dislikes switch statements for determining which component to render, and gives an alternative using functions that return the right component type.

- **Functional Approach to Higher Order Components and Recompose**
https://codebrahma.com/functional-approach-higher-order-components-recompose/
Discusses approaches for composing components using functions



#### Comparing Composition Approaches

Expand Down Expand Up @@ -244,4 +259,8 @@

- **How "Controllable" React components maximize reusability**
https://medium.com/myheritage-engineering/how-controllable-react-components-maximize-reusability-86e3d233fa8e
Gives examples of uncontrolled, controlled, and controllable components, looks at pros and cons of those approaches, and describes how controllable components improve reusability.
Gives examples of uncontrolled, controlled, and controllable components, looks at pros and cons of those approaches, and describes how controllable components improve reusability.

- **Composing Reusable Components in React**
https://medium.com/@adamrackis/composing-reusable-components-in-react-de44d862fe5a
Walks through the implementation of a reusable accordion component that supports several modes of operation, and demonstrates several useful techniques for composition.
6 changes: 5 additions & 1 deletion react-component-patterns.md
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,10 @@
http://dylanpaulus.com/reactjs/2017/09/08/tips-on-creating-reusable-components.1/
Examples of using `children` and other props to make components more composable and reusable.

- **How to auto bind props using React elements**
http://www.albertgao.xyz/2017/10/28/how-to-auto-bind-props-by-using-react-element/
Examples of using the `React.Children` API to add additional props to child components


#### React Component Lifecycle

Expand Down Expand Up @@ -220,7 +224,7 @@

- **ReactCasts #4-5: Context (Parts 1 and 2)**
https://www.youtube.com/watch?v=lxq938kqIss
https://www.youtube.com/watch?v=mwYHDXS6uSc
https://www.youtube.com/watch?v=mwYHDXS6uSc
A two-part series explaining what React's `context` feature can be used for, and some potential concerns to be aware of when using it.

- **React Context and Component Coupling**
Expand Down
19 changes: 18 additions & 1 deletion react-deployment.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
### React Deployment

#### Applications

- **Understanding React deployment**
https://medium.com/@baphemot/understanding-react-deployment-5a717d4378fd
An excellent overview of the basic steps needed to deploy a React app, including solutions for common problems such as routing producing 404s and changes not showing up properly.
Expand Down Expand Up @@ -47,4 +49,19 @@

- **How to deploy a React application: an in depth overview of various options to deploy**
https://codebrahma.com/deploy-react-application-depth-overview-various-options-deploy/
A detailed look at what deployment for production means, what files are involved, how to properly build an app for production, and places to host a react app.
A detailed look at what deployment for production means, what files are involved, how to properly build an app for production, and places to host a react app.


#### Libraries

- **Creating react-editables: How to build a set of reusable React components**
https://medium.com/@niwaa/creating-react-editables-how-to-build-a-set-of-reusable-react-components-with-an-hoc-and-write-7a685947a992
Looks at the steps needed to create a set of reusable React components and publish them to NPM. Includes extended thoughts on component design for reusability.

- **Adventures in creating a React component library with Create React App and TypeScript**
https://medium.com/@stokedbits/adventures-in-creating-a-react-component-library-with-create-react-app-and-typescript-26d1116a7d87
Walks through the process of using the TS+CRA starter kit as a baseline for building and publishing a component library.

- **A guide to building a React component for NPM**
https://medium.com/@markus.s.englund/a-guide-to-building-a-react-component-for-npm-68f03b314753
A high-level overview of things to consider when publishing a React-based component library, including accessibility, documentation, naming, and marketing
2 changes: 2 additions & 0 deletions react-implementation.md
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,8 @@

- **Understanding the React Source Code**
https://hackernoon.com/understanding-the-react-source-code-initial-rendering-simple-component-i-80263fe46cf1
https://hackernoon.com/understanding-the-react-source-code-initial-rendering-simple-component-ii-79e7e8bed56c
https://hackernoon.com/understanding-the-react-source-code-initial-rendering-simple-component-iii-69c2711c5f33
Walks through the critical path of React's source code, tracing how a simple component gets rendered.

#### React Fiber
Expand Down
9 changes: 7 additions & 2 deletions react-native.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,8 @@
A number of informative lessons learned building an app using RN and Redux, including components, performance, workflow, and use of Redux.

- **Understanding React Native flexbox layout**
https://medium.com/the-react-native-log/understanding-react-native-flexbox-layout-7a528200afd4 A helpful visual guide to how Flexbox works, both in general and specific to React Native
https://medium.com/the-react-native-log/understanding-react-native-flexbox-layout-7a528200afd4
A helpful visual guide to how Flexbox works, both in general and specific to React Native

- **How to Create An Authentication System and a Persistent User Session with React Native**
http://www.theodo.fr/blog/2017/03/how-to-create-an-authentication-system-and-a-persistent-user-session-with-react-native/
Expand Down Expand Up @@ -120,4 +121,8 @@

- **React Native Events in Gory Details: What Happens on the Way to Listeners**
https://levelup.gitconnected.com/react-native-events-in-gory-details-what-happens-on-the-way-to-listeners-2cee6c55940c
A deep dive into the internnal behavior and implementation of React Native's event system.
A deep dive into the internnal behavior and implementation of React Native's event system.

- **Simplifying react-native navigation with a Redux router**
https://medium.com/@ericacooksey/simplifying-react-native-navigation-with-a-redux-wrapper-8d5d530af8fc
Examples of how to implement a Redux-based approach for handling navigation in conjunction with react-native-navigation
9 changes: 7 additions & 2 deletions react-performance.md
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,8 @@ My [Redux Ecosystem Links](https://github.com/markerikson/redux-ecosystem-links)
Tips on using the new browser devtools integration capability in React 15.4 to track component performance.

- **React Snippets: Debug Component performance with ES7 Annotations**
https://www.neos.io/blog/react-snippets-debug-component-performance-with-es7-annotations.html Demonstrates using a custom decorator to wrap components and log information on when and why components re-rendered
https://www.neos.io/blog/react-snippets-debug-component-performance-with-es7-annotations.html
Demonstrates using a custom decorator to wrap components and log information on when and why components re-rendered

- **How to Benchmark React Components: The Quick and Dirty Guide**
https://medium.com/code-life/how-to-benchmark-react-components-the-quick-and-dirty-guide-f595baf1014c
Expand Down Expand Up @@ -194,6 +195,10 @@ My [Redux Ecosystem Links](https://github.com/markerikson/redux-ecosystem-links)
https://medium.com/@donavon/demystifying-memory-usage-using-es6-react-classes-d9d904bc4557
A quick look at the memory usage differences between calling `Function.bind` and using the Class Properties syntax, and the readability tradeoffs involved.

- **How does React decide to re-render a component?**
http://lucybain.com/blog/2017/react-js-when-to-rerender/
An easy-to-read overview of when and why a component will re-render.


#### Code Splitting and Progressive Apps

Expand Down Expand Up @@ -264,7 +269,7 @@ Also see [Webpack Advanced Techniques](./webpack-advanced-techniques.md)
Good comments from an HN thread discussing a React vs Vue benchmark. A Discord developer talks about several lessons learned, including pros and cons of using Immutable.js, and only rendering elements that are visible.

- **Immutable.js: worth the cost?**
https://medium.com/@AlexFaunt/immutablejs-worth-the-price-66391b8742d4
https://medium.com/@AlexFaunt/immutablejs-worth-the-price-66391b8742d4
Looks at several pros and cons of using Immutable.js, such as enforced immutability (pro), and major performance problems from calling `toJS()` frequently (con).

- **React + Redux performance optimization with shouldComponentUpdate**
Expand Down
Loading

0 comments on commit e77219d

Please sign in to comment.