Skip to content

Commit

Permalink
Updates, 2018-01-21
Browse files Browse the repository at this point in the history
  • Loading branch information
markerikson committed Jan 21, 2018
1 parent e77219d commit 5bf6efc
Show file tree
Hide file tree
Showing 19 changed files with 161 additions and 22 deletions.
14 changes: 13 additions & 1 deletion framework-comparisons.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,10 @@
- **Unopinionated comparison of Glimmer and React**
https://wyeworks.com/blog/2017/12/20/unopinionated-comparison-of-glimmer-and-react
A well-written comparison of small React and Glimmer components that implement the same functionality.

- **The Ultimate Guide to JavaScript Frameworks**
https://javascriptreport.com/the-ultimate-guide-to-javascript-frameworks/
A high-level overview of both major and minor JS frameworks in 2018, Groups them into "the big three", "historically significant", "notable", and "the rest of the pack". Provides short descriptions and links to additional resources for each, as well as pros and cons for the better-known frameworks.


#### React and Flux vs Backbone
Expand Down Expand Up @@ -75,4 +79,12 @@

- **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.
The Onfido team describes how they extracted a portion of their monolithic Rails+Ember app into a separate React+Redux app.

- **7 Tips for migration from Backbone to React & Redux**
https://medium.com/@denisraslov/7-tips-for-migration-from-backbone-to-react-redux-a006a927c39e
Excellent practical advice for adding React and Redux into a Backbone app, including rendering React components inside Backbone views, syncing Backbone and Redux, and planning the migration timing.

- **Transitioning Your Marionette App to React**
https://medium.com/@michaelsholty/transitioning-your-marionette-app-to-react-4b94ddefafd1
Examples of interop between React components and Marionette views
4 changes: 4 additions & 0 deletions git-resources.md
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,10 @@
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.

- **Beginner's Guide to Interactive Rebasing**
https://hackernoon.com/beginners-guide-to-interactive-rebasing-346a3f9c3a6d
An excellent walkthrough of how to use interactive rebasing for rewriting commit history by editing, deleting, and combining commits


#### E-Books

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

- **You're missing out on ImmutableJS Records**
https://medium.com/@ahmadbamieh/immutablejs-records-bd369137da06
An introduction to the Immutable.js Record type, and how it can be used to define data types
An introduction to the Immutable.js Record type, and how it can be used to define data types

- **Immutability through Mutability - Immer & Redux**
https://medium.com/@Tetheta/immutability-through-mutability-immer-redux-3e14246c6506
A look at Michel Weststrate's Immer library, which uses ES6 proxies to produce immutable updates using normal mutative code. Shows how this can simplify nested state updates in Redux reducers.
13 changes: 12 additions & 1 deletion react-implementation.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,10 @@
https://github.com/nitin42/Making-a-custom-React-renderer
A 4-part that teaches how to build a React reconciler for React 16 that renders to a Word document

- **Extending React**
https://www.javascriptjanuary.com/blog/extending-react
Walks through building a very simplified mini React clone, including `createElement`, rendering to the DOM, and `setState` updates


#### Implementation and Internals

Expand Down Expand Up @@ -184,7 +188,10 @@
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.
https://hackernoon.com/understanding-the-react-source-code-iv-e3c4b66da12c
https://hackernoon.com/understanding-the-react-source-code-v-812d69a79fb9
Walks through the critical path of React 15's source code, tracing how a simple component gets rendered.


#### React Fiber

Expand Down Expand Up @@ -220,6 +227,10 @@
https://www.robinwieruch.de/what-is-new-in-react-16/
A very useful look at the new user-facing features in React 16, with code examples.

- **Rethinking with React 16**
https://www.javascriptjanuary.com/blog/rethinking-with-react-16
An informative overview of the major changes in React 16, including the goals of the "React Fiber" rewrite, Fragments, Error Boundaries, server-side rendering improvements, and more.

- **React Fiber Architecture**
https://github.com/acdlite/react-fiber-architecture
A description of React's new core algorithm, React Fiber
Expand Down
4 changes: 4 additions & 0 deletions react-performance.md
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,10 @@ My [Redux Ecosystem Links](https://github.com/markerikson/redux-ecosystem-links)
http://lucybain.com/blog/2017/react-js-when-to-rerender/
An easy-to-read overview of when and why a component will re-render.

- **Dragging React performance forward**
https://medium.com/@alexandereardon/dragging-react-performance-forward-688b30d40a33
A detailed look at how the react-beautiful-dnd library implemented performance improvements with drastically better results, including avoiding unnecessary renders and DOM reads, applying style updates, virtualizing movement, and using lookup tables.


#### Code Splitting and Progressive Apps

Expand Down
9 changes: 9 additions & 0 deletions react-redux-testing.md
Original file line number Diff line number Diff line change
Expand Up @@ -337,6 +337,15 @@
https://www.codesai.com/2017/06/testing-hacks-react-redux
A series of posts describing several strategies for testing Redux apps, including larger integration tests with mock APIs, handling of async logic, routing, and scroll events.

- **Evaluating Redux Saga Test Libraries**
http://blog.scottlogic.com/2018/01/16/evaluating-redux-saga-test-libraries.html
Looks at several ways to approach testing sagas, and how specific saga test helper libraries use those approaches. Includes a helpful table listing which approaches each helper library supports.

- **Testing mapState, mapDispatch, and connected components**
http://jsramblings.com/2018/01/15/3-ways-to-test-mapStateToProps-and-mapDispatchToProps.html
http://jsramblings.com/2018/01/21/stuck-testing-your-connected-component.html
A pair of articles that discuss ways to handle testing the various pieces of connected components.


#### General Testing, Tools, and Setup

Expand Down
8 changes: 8 additions & 0 deletions react-routing.md
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,14 @@
https://medium.com/airbnb-engineering/server-rendering-code-splitting-and-lazy-loading-with-react-router-v4-bfe596a6af70
Technical discussion of the problems involved in code-splitting server rendered apps, and how Airbnb has implemented solutions using React-Router v4 and Babel.

- **URL Parameters with React Router**
https://tylermcginnis.com/react-router-url-parameters/
Tyler McGinnis gives a short example of how to use parameters from the current URL in a component with React-Router v4

- **Using React Router v4 with create-react-app**
https://codingblast.com/react-router-create-react-app/
Explains key concepts of React-Router v4, and gives examples of using it in a CRA project


#### Routing with Redux

Expand Down
6 changes: 5 additions & 1 deletion react-server-rendering.md
Original file line number Diff line number Diff line change
Expand Up @@ -111,4 +111,8 @@

- **"Server-Side Rendering - Not Worth It?"**
https://www.reddit.com/r/reactjs/comments/7o6oj6/serverside_rendering_not_worth_it/
An extended Reddit discussion on the pros, cons, and techniques for SSR with React
An extended Reddit discussion on the pros, cons, and techniques for SSR with React

- **Upgrading a create-react-app project to a SSR + code splitting setup**
https://medium.com/bucharestjs/upgrading-a-create-react-app-project-to-a-ssr-code-splitting-setup-9da57df2040a
Walks through the process of setting up server-side rendering with Express, adding code splitting with the react-loadable library, and naming chunks with Webpack.
4 changes: 4 additions & 0 deletions react-state-management.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,10 @@
- **State management in Javascript**
https://codeburst.io/state-management-in-javascript-15d0d98837e1
Not React-specific, but some excellent general principles for dealing with state overall: represent data uniquely, derive values, define dependencies, and localise state as much as possible.

- **Three approaches to distribute the state across components in React**
https://engineering.hexacta.com/three-approaches-to-distribute-the-state-across-components-in-react-da4db5a389e0
Looks at three ways to handle state that needs to apply to sibling components: controlling the state in the parent, synchronizing the states, and forcing a different component instance via the `key` prop


#### Using `setState`
Expand Down
13 changes: 13 additions & 0 deletions react-styling.md
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,15 @@
https://medium.com/@tkh44/writing-a-css-in-js-library-from-scratch-96cd23a017b4
The author of the Emotion library shows how to build a simple CSS-in-JS library, to help illustrate how they work.

- **CSS-in-JS**
https://gist.github.com/threepointone/9f87907a91ec6cbcd376dded7811eb31
First in a series of posts from Sunil Pai, author of the Glamor library. Explains the basic concepts of handling CSS values as JS objects and arrays.


- **Things to consider when choosing a React styling framework**
http://jsramblings.com/2017/10/17/things-to-consider-when-choosing-a-react-styling-framework.html
Helpful suggestions for things to compare between different styling libraries, such as how the styles are applied, syntax used, and feature support


#### Style Libraries

Expand Down Expand Up @@ -212,6 +221,10 @@
https://alligator.io/react/css-in-js-roundup-styling-react-components/
A high-level comparison of 15 different CSS-in-JS libraries

- **Migrating to styled-components cheatsheet**
http://jsramblings.com/2017/10/29/migrating-to-styled-components-cheatsheet.html
Some helpful tips for moving a project from vanilla CSS to the styled-components library


#### Techniques and Examples

Expand Down
31 changes: 16 additions & 15 deletions react-tutorials.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,10 @@
http://blog.isquaredsoftware.com/2017/02/presentation-react-redux-intro/
An up-to-date HTML slideshow that introduces React and Redux, discusses why they help make applications easier to write via declarative code and predictable data flow, and demonstrates their basic concepts and syntax. Includes several interactive React component examples.

- **The Beginner's Guide to ReactJS**
https://egghead.io/courses/the-beginner-s-guide-to-reactjs
A free video course with short lessons that explain key React concepts, including using `React.createElement` and JSX, conditional rendering, forms, styling, lists, HTTP requests, and deploying a React app.

- **30 Days of React**
https://www.fullstackreact.com/30-days-of-react/
A tutorial series that walks you through how to use React, from the ground up, in 30 bite-size articles covering everything from "What is React?" to data management to testing and deployment.
Expand Down Expand Up @@ -115,25 +119,10 @@

- **React by Example**
https://medium.com/front-end-hacking/react-by-example-part-1-76d3e2137cf4
https://medium.com/front-end-hacking/react-by-example-part-2-340582c6f552
https://medium.com/@johntucker_48673/react-by-example-part-3-f825444bc1d8
https://medium.com/@johntucker_48673/react-by-example-part-4-5d32168db362
https://medium.com/@johntucker_48673/react-by-example-part-5-e1716e69dacc
https://medium.com/@johntucker_48673/react-by-example-part-6-8c71dda057ac
https://medium.com/@johntucker_48673/react-by-example-part-7-8dc97b57f668
A multi-part series that illustrates core React concepts via a series of small example repos, with explanations of the source and concepts in the articles.

- **React.js for the Visual Learner**
https://medium.com/coding-artist/react-js-for-the-visual-learner-chapter-1-what-is-this-all-about-a0d28cfd33c6
https://medium.com/coding-artist/react-js-for-the-visual-learner-chapter-2-what-is-react-and-why-is-it-cool-d1f9bac69a63
https://medium.com/coding-artist/react-js-for-the-visual-learner-chapter-3-building-our-houses-295c43304b18
https://medium.com/coding-artist/react-js-for-the-visual-learner-chapter-4-our-first-village-8b44427d4762
https://medium.com/coding-artist/react-js-for-the-visual-learner-chapter-5-additions-to-our-houses-7e67ed97b62b
https://medium.com/coding-artist/react-js-for-the-visual-learner-chapter-6-building-our-first-project-5429f1afde98
https://medium.com/coding-artist/react-js-for-the-visual-learner-chapter-7-building-our-first-user-interface-c61e9a22be2f
https://medium.com/coding-artist/react-js-for-the-visual-learner-chapter-8-implementing-react-router-6109671db576
https://medium.com/coding-artist/react-js-for-the-visual-learner-chapter-9-chat-bot-demo-using-firebase-637445703c74
https://medium.com/coding-artist/react-js-for-the-visual-learner-chapter-10-reacting-to-what-weve-learned-633ac18469ba
A 10-part series that explains React (and many web dev concepts) from the ground up, with simple terms and lots of metaphors. Aimed at absolute beginners.

- **Intro to React**
Expand Down Expand Up @@ -203,6 +192,14 @@
https://react.christmas/
A series of short posts that look at specific aspects of using React, including using Create-React-App, testing code, using Fragments, component composition, and much more.

- **6 React Development Tips for Beginners**
https://www.codementor.io/canberkmorelli/i-wish-i-knew-these-before-diving-into-react-fvionauhk Several useful tips for understanding how React works, including behavior of `setState` and component lifecycle methods.

- **React - Common Questions**
https://academind.com/learn/react/react-q-a/
An article and accompanying video that explain answers to common questions about React, including whether a complex project setup is necessary, different ways to define components, ways to style React apps, immutability, using React with various backends, and more.



#### Project-Based Tutorials

Expand Down Expand Up @@ -411,6 +408,10 @@
https://sabe.io/tutorials/getting-started-with-react
A tutorial that demonstrates how to build a simple real-time display of cryptocurrency prices.

- **Creating your first MERN stack application**
https://blog.cloudboost.io/creating-your-first-mern-stack-application-b6604d12e4d3
Shows how to build an expense manager application, using create-react-app as the basis for the front end.


#### Paid Courses and Books

Expand Down
4 changes: 4 additions & 0 deletions redux-architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,10 @@
https://medium.com/@fastphrase/when-to-use-redux-f0aa70b5b1e2
Some helpful thoughts on when you should use Redux: same app state needed in multiple components, global components that need to be accessed anywhere, too much prop passing, and more.

- **When (and when not) to use Redux**
https://blog.logrocket.com/when-and-when-not-to-use-redux-41807f29a7fb
A useful summary of the problems Redux can help solve in React apps, the major benefits of using Redux, reasons why you might not need Redux, and the basic concepts of Redux.


#### Redux Architecture

Expand Down
14 changes: 14 additions & 0 deletions redux-side-effects.md
Original file line number Diff line number Diff line change
Expand Up @@ -301,6 +301,10 @@
https://medium.com/@joeltbond/learning-redux-saga-event-channels-29dee438fd7b
Demonstrates using sagas to interact with the Web MIDI API

- **May Cause Side Effects: How to Implement Redux Sagas as Middlewares**
https://www.javascriptjanuary.com/blog/may-cause-side-effects-how-to-implement-redux-sagas-as-middleware
An extensive article that first implements async functionality with thunks, then walks through how sagas work and refactors the logic to use sagas instead.


#### Observables

Expand Down Expand Up @@ -332,7 +336,17 @@
https://medium.com/@eric.hulburd.af/creating-and-testing-a-d3-react-game-with-redux-observable-d97f2155421c
A detailed look at the concepts and usage of redux-observable. Implements an example game that's built to demonstrate usage in a more meaningful application, and shows how to test epics.

- **Timing of reducing Actions with Redux-Observable**
https://www.bleathem.ca/blog/timing-of-reducing-actions-with-redux-observable/
Breaks down the sequence of behavior when actions are dispatched, how Redux-Observable interacts with that sequence, and gives examples of epics dispatching actions synchronously and asynchronously.

- **Streaming Redux state as an Observable with RxJS**
https://dev.to/fahad19/streaming-redux-state-as-an-observable-with-rxjs-5f48
Examples of how to construct an Observable stream that subscribes to the Redux store state

- **You Aren't Using Redux with Observables Enough**
https://medium.com/@jacobp100/you-arent-using-redux-with-observables-enough-b59329c5a3af
Shows how to use the Redux store as the source for an observable stream, and gives examples of RxJS observable streams that toggle music player behavior and handle async requests that need to be canceled.


#### Other Side Effect Approaches
Expand Down
2 changes: 1 addition & 1 deletion redux-techniques.md
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@
- **Redux Dead Drop**
https://medium.com/@erikras/redux-dead-drop-1b9573705bec
Describes a possible technique for passing messages between widely separated components, such as triggering focus on a particular DOM node



#### Reducing Boilerplate
Expand Down
8 changes: 8 additions & 0 deletions redux-tutorials.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,10 @@
- **Redux and React: An Introduction**
http://jakesidsmith.com/blog/post/2017-11-18-redux-and-react-an-introduction/
A great introduction to Redux's core concepts, with explanations of how to use the React-Redux package to use Redux with React.

- **React Redux Tutorial for Beginners: Learning Redux in 2018**
https://dev.to/valentinogagliardi/react-redux-tutorial-for-beginners-learning-redux-in-2018-13hj
An excellent tutorial that covers a variety of Redux fundamentals, including a look at the problems Redux helps solve, when you should learn and use Redux, actions and reducers, the Redux store, and how to connect React components to Redux.

- **Single State Tree + Flux**
http://merrickchristensen.com/articles/single-state-tree.html
Expand Down Expand Up @@ -424,6 +428,10 @@
- **Finally understand Redux by building your own Store**
https://toddmotto.com/redux-typescript-store
Teaches Redux concepts by going under the hood and building a Redux-equivalent Store class from scratch

- **redux-class**
https://github.com/GKhalsa/redux-class
A miniature Redux and React-Redux implementation built for learning purposes


#### Paid Courses and Books
Expand Down
8 changes: 7 additions & 1 deletion redux-without-react.md
Original file line number Diff line number Diff line change
Expand Up @@ -167,4 +167,10 @@

- **A blockchain-backed Redux clone in 105 lines of code**
https://swizec.com/blog/blockchain-backed-redux-clone-105-lines-code/swizec/7980
An interesting experiment that plays with the idea of implementing Redux's store API around a simple blockchain.
An interesting experiment that plays with the idea of implementing Redux's store API around a simple blockchain.

- **How to use Redux with Polymer**
https://medium.com/@jalalio/step-1-how-to-use-redux-with-polymer-2-7bcfaee6fdb3
https://medium.com/@jalalio/step-2-how-to-structure-larger-polymer-2-apps-with-redux-reselect-f588e64a191a
https://medium.com/@jalalio/step-3-how-to-make-async-api-calls-in-a-polymer-2-app-using-redux-thunk-middleware-c71d596c2005
A 3-part series that shows how to use the polymer-redux bindings, including basic setup, use of Reselect, and async API calls.
Loading

0 comments on commit 5bf6efc

Please sign in to comment.