Skip to content

Commit

Permalink
Updates, 2017-04-02
Browse files Browse the repository at this point in the history
  • Loading branch information
markerikson committed Apr 2, 2017
1 parent 9356a87 commit 445bef6
Show file tree
Hide file tree
Showing 18 changed files with 196 additions and 30 deletions.
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,8 @@ If you are new to React, try reading these articles in order.
The official React documentation, recently rewritten with an excellent set of tutorials, explanations, and API information.
- [Create-React-App](https://github.com/facebookincubator/create-react-app)
The official project creation tool from the React team. Allows you to set up a new React project, with no configuration work required.
- [Simple React Development in 2017](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.
- [Modern Web Development with React and Redux](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.
- [Learn Raw React](http://jamesknelson.com/learn-raw-react-no-jsx-flux-es6-webpack/)
Expand Down
6 changes: 5 additions & 1 deletion basic-concepts.md
Original file line number Diff line number Diff line change
Expand Up @@ -129,4 +129,8 @@

- **How to avoid Javascript fatigue and sleep well at night**
https://www.javascriptfatigue.club/blog/2016/11/29/how-to-avoid-javascript-fatigue-and-sleep-well-at-night
A talk giving suggestions for dealing with learning tools and techologies, including knowing when to stop reading, following specific experts, learning patterns, and focusing on what the real problem is you're trying to solve
A talk giving suggestions for dealing with learning tools and techologies, including knowing when to stop reading, following specific experts, learning patterns, and focusing on what the real problem is you're trying to solve

- **How to Manage Javascript Fatigue**
https://auth0.com/blog/how-to-manage-javascript-fatigue/
A description of what "JS fatigue" means in practice, and advice for managing it, including "picking battles", "make something interesting", and "be aware of common concepts".
4 changes: 4 additions & 0 deletions es6-features.md
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,10 @@
http://www.zsoltnagy.eu/es6-proxies-in-practice/
An overview of how to use ES6 proxies for advanced use cases, with examples

- **ES6 Features - 10 Use Cases for Proxy**
http://dealwithjs.io/es6-features-10-use-cases-for-proxy/
Lists a variety of ways that ES6 proxies can be used, with links to examples


#### Generators

Expand Down
8 changes: 8 additions & 0 deletions mobx-tutorials.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,10 @@
https://hackernoon.com/the-fundamental-principles-behind-mobx-7a725f71f3e8
MobX creator Michel Weststrate discusses MobX's key concepts, including running all updates synchronously, and potential use of Proxies as a future improvement.

- **Creating a reusable popver system with React and MobX**
https://medium.com/@enitoni/creating-a-reusable-popover-system-with-react-and-mobx-7f47cc3b270d
A useful tutorial on implementing a React modal system driven by MobX state


#### MobX and Redux Comparisons

Expand All @@ -77,6 +81,10 @@ A great video to understand the differences between MobX and Redux.
http://www.robinwieruch.de/redux-mobx-confusion/
An in-depth comparison of the ideas, concepts, approaches, and use cases for the two state management libraries

- **MobX vs Redux: Comparing the Opposing Paradigms**
https://www.youtube.com/watch?v=76FRrbY18Bs&list=PLb0IAmt7-GS3fZ46IGFirdqKTIxlws7e0&index=8
A fantastic presentation by Preethi Kasireddy at ReactConf 2017, comparing the philosophies, concepts, tradeoffs, and use cases for Redux and MobX.

- **Redux vs MobX by example**
https://hashnode.com/post/redux-vs-mobx-by-example-part-i-intro-and-exploring-redux-cito5m0nn0sssxi53c7zq7jpr
https://hashnode.com/post/redux-vs-mobx-by-example-part-ii-the-simplicity-of-mobx-and-conclusion-citpp2tbu003za853ua1tx228
Expand Down
8 changes: 8 additions & 0 deletions react-ajax.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@
- **How to make AJAX requests in React?**
https://medium.com/@baphemot/how-to-make-ajax-requests-in-react-a6a52bb5a8b1
A helpful introduction to making AJAX requests, including libraries to use, where to run requests, and a couple examples of handling "loading..." status.

- **Where to fetch Data: componentWillMount vs componentDidMount**
https://daveceddia.com/where-fetch-data-componentwillmount-vs-componentdidmount/
A quick comparison of when these two lifecycle methods are called, and why AJAX calls should generally be done in `componentDidMount`

- **React AJAX Best Practices**
http://andrewhfarmer.com/react-ajax-best-practices/
Expand Down Expand Up @@ -51,6 +55,10 @@
https://hackernoon.com/handling-ajax-in-your-react-application-with-agility-413f1f21fc70
Describes three approaches to fetching data in a React app: within a React component, using the Relay GraphQL library, and using Redux middleware

- **You don't need a fancy framework to use GraphQL with React**
https://edgecoders.com/you-dont-need-a-fancy-framework-to-use-graphql-with-react-b47b436626fb
A detailed explanation of how to construct GraphQL queries in a client and load the data into React components, without using any complicated libraries.


#### Handling Request Status with State

Expand Down
1 change: 1 addition & 0 deletions react-architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -212,4 +212,5 @@
https://medium.com/@skylernelson_64801/state-architecture-patterns-in-react-a-review-df02c1e193c6
https://medium.com/@skylernelson_64801/state-architecture-patterns-in-react-part-2-the-top-heavy-architecture-flux-and-performance-a388b928ce89
https://medium.com/@skylernelson_64801/state-architecture-patterns-in-react-part-3-articulation-points-zine-and-an-overall-strategy-cf076f906391
https://medium.com/@skylernelson_64801/state-architecture-patterns-in-react-part-4-purity-flux-duality-and-dataflow-d06016b3379a
A multi-part series that discusses several variations on component and state architecture in detail, with thoughts on the pros and cons of each.
37 changes: 36 additions & 1 deletion react-component-patterns.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,10 @@
https://tylermcginnis.com/building-user-interfaces-with-pure-functions-and-function-composition-in-react-js/
A look at the idea of composing together UIs with simple components, with comparisons to the idea of combining functions together.

- **React Bits: React patterns, techniques, tips, and tricks**
https://github.com/vasanthk/react-bits
An extensive list of terms, concepts, patterns, and techniques for writing React components, with explanations and examples. A few of the descriptions are overly opinionated and some items are not things the React team would recommend, but overall an excellent resource.



#### Component Rendering Logic
Expand Down Expand Up @@ -131,6 +135,10 @@
https://gist.github.com/bvaughn/923dffb2cd9504ee440791fade8db5f9
A table listing the lifecycle methods, when they're called, whether each method allows side effects or state updates, and examples uses for each method

- **React Lifecycle Methods - how and when to use them**
https://engineering.musefind.com/react-lifecycle-methods-how-and-when-to-use-them-2111a1b692b1
A helpful description of the major component lifecycle methods, including descriptions of common use cases for each one, and whether you can call `setState` inside.


#### Component Communication

Expand Down Expand Up @@ -176,6 +184,10 @@
http://javascriptplayground.com/blog/2017/02/context-in-reactjs-applications/
An overview of what `context` is, how it works, and when you should use it for passing data

- **Callback functions in React**
https://medium.com/@thejasonfile/callback-functions-in-react-e822ebede766
Some basic explanations of how a React app uses callback functions to communicate from children to parents


#### Component Categories

Expand Down Expand Up @@ -299,13 +311,29 @@
https://dev.to/kayis/higher-order-what
A quick introduction to the concept of Higher Order Functions and Components

- **Reusable State with Higher Order Components**
https://daveceddia.com/extract-state-with-higher-order-components/
An easy-to-read explanation of how HOCs work, and examples of how to extract common logic into a reusable HOC

- **React Patterns - Render Callback**
http://leoasis.github.io/posts/2017/03/27/react-patterns-render-callback
An explanation of the "render callback" or "function as child" pattern, including concepts and example uses


#### Wrapping Non-React Code

- **React and third-party libraries**
http://krasimirtsonev.com/blog/article/react-third-party-library-integration
Demonstrates how to build a React component that wraps up non-React code like a jQuery UI plugin

- **Declaratively Rendering Earth in 3D, Part 2: Controlling Cesium with React**
http://blog.isquaredsoftware.com/2017/03/declarative-earth-part-2-cesium-react/
A detailed description of how to create React components that wrap up a 3D globe library, including use of lifecycle methods for controlling imperative non-React APIs.

- **When to use Ref on a DOM Node in React**
https://www.robinwieruch.de/react-ref-attribute-dom-node/
An explanation of the `ref` property, how to use it to access real DOM nodes, and when you should use it.

- **Using React and jQuery Together**
http://tech.oyster.com/using-react-and-jquery-together/
Examples of how to use jQuery inside a React component, and React inside jQuery-controlled elements
Expand Down Expand Up @@ -346,6 +374,10 @@
http://kyleshevlin.com/renderless-components/
Shows how you can create components that return null from `render`, and use React's lifecycle methods to drive imperative logic rather than rendering UI.

- **Getting Started with React and Leaflet**
https://www.azavea.com/blog/2016/12/05/getting-started-with-react-and-leaflet/
Examples of how to create React components that interact with the Leaflet maps library.


#### Modal Dialogs

Expand Down Expand Up @@ -403,4 +435,7 @@
- **Internationalizing React Apps**
https://www.smashingmagazine.com/2017/01/internationalizing-react-apps/
An extended investigation of server and client aspects needed for internationalization.


- **Creating a cross-domain React component with xcomponent**
https://medium.com/@bluepnume/creating-a-cross-domain-react-component-with-xcomponent-fbcccc4778fd
A look at how to wrap a React component using the xcomponent library, so that it can be rendered and used across domains.
13 changes: 13 additions & 0 deletions react-forms.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,11 @@
(Note: the "linked state mixin" and "two-way binding" approaches described in some of these articles are still valid, but _mostly_ discouraged at this point. The more idiomatic approach is "one-way data flow" with "controlled inputs".)


**Related topics**:

- [Redux Techniques: Redux and Forms](redux-techniques.md#redux-and-forms)


#### "Controlled" and "Uncontrolled Inputs

- **React Docs: Forms**
Expand Down Expand Up @@ -97,6 +102,14 @@
https://medium.com/@everdimension/how-to-handle-forms-with-just-react-ac066c48bd4f
Describes a different approach for reading and managing form data, besides the usual "controlled inputs" pattern, based on the Javascript FormData object.

- **Should a form for editing update the underlying model?**
https://goshakkk.name/react-forms-for-editing/
Some quick thoughts on ways to handle tracking data in a form - whether it should be fully controlled by a parent, or accept the initial values and report them when it's submitted.

- **Modeling form state in React**
http://beautifulcode.1stdibs.com/2017/03/23/react-form-state/
Examples of how to structure form state to handle values and validation. Applicable no matter what state management approach is being used.


#### Form Validation

Expand Down
4 changes: 4 additions & 0 deletions react-performance.md
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,10 @@ My [Redux Ecosystem Links](https://github.com/markerikson/redux-ecosystem-links)
http://ericlathrop.com/2017/02/why-did-this-react-component-rerender/
A reminder that passing a style object in `render` will usually cause shallow-equality checks to fail, even if the style values are identical

- **React is Slow, React is Fast: Optimizing React Apps in Practice**
https://medium.com/dailyjs/react-is-slow-react-is-fast-optimizing-react-apps-in-practice-394176a11fba
A clear and informative explanation covering multiple aspects of performance, including use of the Chrome DevTools flame graph for visualizing perf, extracting components and implementing `shouldComponentUpdate`, connecting to Redux, and use of Recompose and Reselect to improve performance.


#### Code Splitting and Progressive Apps

Expand Down
8 changes: 8 additions & 0 deletions react-redux-testing.md
Original file line number Diff line number Diff line change
Expand Up @@ -190,6 +190,14 @@
https://medium.com/@admm/test-driven-development-in-react-is-easy-178c9c520f2f
A tutorial that walks through a TDD-based approach to building components in an application.

- **Testing React Applications**
https://blog.logrocket.com/testing-react-applications-part-1-of-3-ebd8397917f3
Describes several types of unit tests that can be written in a React app (component tests, component tests, storybook tests), and the intent and benefits of each.

- **How to test React and Redux with Redux-Saga and ReactDND**
https://medium.freecodecamp.com/testing-react-and-redux-with-redux-saga-and-reactdnd-whew-dedebcbd78dd
In-depth examples of testing React components using the Teaspoon library, as well as setting up tests for Redux-connected components, Redux-Saga functions, and uses of ReactDND.


#### General Testing, Tools, and Setup

Expand Down
10 changes: 9 additions & 1 deletion react-routing.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,10 @@
https://medium.com/@daveford/react-router-alternative-switch-acd7961f08db
Some examples of simply using switch statements and the history API for routing

- **Routing in React, the uncomplicated way**
https://hackernoon.com/routing-in-react-the-uncomplicated-way-b2c5ffaee997
Examples of how to implement a custom routing approach, with minimal external dependencies.



#### Authentication
Expand All @@ -51,4 +55,8 @@

- **Role based authorization in React**
https://hackernoon.com/role-based-authorization-in-react-c70bb7641db4
Some alternative approaches to the previous post, using React component patterns like Higher Order Components to control authorization and rendering
Some alternative approaches to the previous post, using React component patterns like Higher Order Components to control authorization and rendering

- **Dealing with Authentication in React**
https://medium.com/@nesbtesh/dealing-with-authentication-in-react-cadb679fbc0f
Some short examples of saving an authentication token, writing queries to use and update that token, and checking the token when rendering components.
Loading

0 comments on commit 445bef6

Please sign in to comment.