Skip to content

Commit

Permalink
Updates, 2017-02-26
Browse files Browse the repository at this point in the history
  • Loading branch information
markerikson committed Feb 26, 2017
1 parent f2175b6 commit 7996f15
Show file tree
Hide file tree
Showing 17 changed files with 255 additions and 79 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -143,8 +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.
- [React to the Future](http://elijahmanor.com/talks/react-to-the-future/dist/#/)
A fantastic HTML slideshow describing what React is, what makes it special, and how to work with it
- [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/)
A ground-up React tutorial that leaves out any other related "modern" technologies, Very recommended if you want to skip the buzzwords and acronyms.
- [30 Days of React](https://www.fullstackreact.com/30-days-of-react/)
Expand Down
6 changes: 5 additions & 1 deletion es6-features.md
Original file line number Diff line number Diff line change
Expand Up @@ -247,4 +247,8 @@

- **Native ECMAScript Modules: dynamic import()**
https://blog.hospodarets.com/native-ecmascript-modules-dynamic-import
Details on how the in-progress `import()` operator will allow dynamic loading of modules.
Details on how the in-progress `import()` operator will allow dynamic loading of modules.

- **A 10-Minute Primer to JS Module Formats, Loaders, and Bundlers**
http://jvandemo.com/a-10-minute-primer-to-javascript-modules-module-formats-module-loaders-and-module-bundlers/
A useful introduction to the various module formats and module tools
9 changes: 8 additions & 1 deletion immutable-data.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,10 @@
http://redux.js.org/docs/recipes/reducers/ImmutableUpdatePatterns.html
Some useful examples for correctly updating data immutably, including nested objects, inserting and removing items in arrays, and updating items in arrays, as well as some common mistakes that occur. Important to know when using Redux, but the info is not Redux-specific.

- **Immutably setting a value in a JS array (or how an array is also an object)**
https://medium.com/@giltayar/immutably-setting-a-value-in-a-js-array-or-how-an-array-is-also-an-object-55337f4d6702
An example of how `Object.assign` can be used to immutably update an array



#### Immutability and React
Expand All @@ -67,7 +71,10 @@
https://medium.com/pro-react/a-brief-talk-about-immutability-and-react-s-helpers-70919ab8ae7c
Talks about the issues with mutation, and some ways to update immutably


- **Comparing and Modifying Objects in React**
https://blog.komand.com/object-comparison-in-react-js-components
Some examples of comparing objects inside of React's lifecycle methods, and how to update them properly.


#### Immutable Data Libraries

Expand Down
10 changes: 9 additions & 1 deletion react-architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -190,4 +190,12 @@

- **Our Best Practices for Writing React Components**
https://medium.com/code-life/our-best-practices-for-writing-react-components-dec3eb5c3fc8
A description of the MuseFind team's approaches for writing components
A description of the MuseFind team's approaches for writing components

- **Lessons Learnt Rewriting a React Library from Scratch**
https://www.codecks.io/blog/2017/lessons-learnt-rewriting-react-lib/
Some suggestions for use of context, embracing components, and writing documentation

- **10 React mini-patterns**
https://hackernoon.com/10-react-mini-patterns-c1da92f068c5
A collection of simple but useful patterns for writing React code, from basic top-down data flow via props to formatting text for display.
37 changes: 32 additions & 5 deletions react-component-patterns.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,30 @@
A quick overview of the three ways to declare React components, and which ones should be preferred.



#### Component Rendering Logic

- **Dynamically Rendering React Components**
https://wail.es/dynamically-rendering-react-components/
Examples of how to dynamically determine which React component to render

- **Loading State Trick for Stateless Functional Components in React**
http://kyleshevlin.com/loading-state-trick-for-stateless-functional-components-in-react/
An example of conditionally rendering a spinner component if a list of items is empty

- **How to Dynamically Render React Components**
http://kyleshevlin.com/how-to-dynamically-render-react-components/
A quick example of how to dynamically decide which component type to render

- **All the Conditional Renderings in React**
https://www.robinwieruch.de/conditional-rendering-react/
Examples of all the possible ways to conditionally render components

- **"React render function organization"**
https://gist.github.com/markerikson/47fff93c92286db72b22bab5b02e2da3
My suggested approach for organizing render function logic for clarity and readability


#### React Component Children

- **Ownership and Children in React**
Expand Down Expand Up @@ -301,6 +325,10 @@
http://cmichel.io/how-to-use-d3js-in-react/
An overview of three ways to integrate D3 into a React app: using React to render, using D3 to render, and a hybrid approach.

- **Renderless Components, or How Logic Doesn't Always Need a UI**
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.


#### Modal Dialogs

Expand All @@ -316,13 +344,11 @@
https://daveceddia.com/open-modal-in-react/
An excellent example of how to approach rendering modals in React, by controlling them with props




#### Other Component Patterns

- **Dynamically Rendering React Components**
https://wail.es/dynamically-rendering-react-components/
Examples of how to dynamically determine which React component to render

- **The React Controller View Pattern**
http://blog.andrewray.me/the-reactjs-controller-view-pattern/
Describes using top-level components to hold state and pass it to children as props
Expand Down Expand Up @@ -353,4 +379,5 @@

- **Internationalizing React Apps**
https://www.smashingmagazine.com/2017/01/internationalizing-react-apps/
An extended investigation of server and client aspects needed for internationalization.
An extended investigation of server and client aspects needed for internationalization.

7 changes: 6 additions & 1 deletion react-performance.md
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,10 @@ Also see [Webpack Advanced Techniques](./webpack-advanced-techniques.md)

#### Redux Performance

- **Practical Redux, Part 6: Connected Lists, Forms, and Performance**
http://blog.isquaredsoftware.com/2017/01/practical-redux-part-6-connected-lists-forms-and-performance/
Discusses the key considerations for performance in Redux apps, with some examples and pointers to further information.

- **High Performance Redux**
http://somebody32.github.io/high-performance-redux/
A detailed HTML slideshow that digs down into React Redux to show how `connect()`'s optimizations work, and has interactive demos to show various approaches. (Note: the code-related slides advance using the down arrow to step through different lines of code - don't miss that info!)
Expand Down Expand Up @@ -237,4 +241,5 @@ Also see [Webpack Advanced Techniques](./webpack-advanced-techniques.md)

- **Performance Optimizations in Redux's `mapStateToProps`**
http://cmichel.io/performance-optimizations-in-redux-mapstatetoprops/
Some quick tips on how to properly cache and memoize selectors for use in `mapState` functions
Some quick tips on how to properly cache and memoize selectors for use in `mapState` functions

91 changes: 60 additions & 31 deletions react-styling.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
### React and Styling

#### Basic Concepts

- **Styling in React**
https://www.kirupa.com/react/styling_in_react.htm
An introduction to using React's built-in inline styling abilities
Expand All @@ -12,30 +14,55 @@
http://blog.vjeux.com/2014/javascript/react-css-in-js-nationjs.html
Christopher Chedeau's classic talk that inspired the "CSS in JS" revolution

- **Components: A Styling Odyssey**
https://speakerdeck.com/alexlande/components-a-styling-odyssey
Slideshow discussing pros and cons of various approaches to managing styles for components


#### Components and Styling

- **Component Based Style Reuse**
https://www.youtube.com/watch?v=_70Yp8KPXH8
Pete Hunt talks about various approaches to defining styles for components in plain CSS and in React

- **Patterns for Style Composition in React**
http://jxnblk.com/writing/posts/patterns-for-style-composition-in-react/
Some great suggestions for defining reusable React components that can have variations in styling

- **Functional CSS From A Pure UI Perspective**
https://medium.com/@sharifsbeat/functional-css-from-a-pure-ui-perspective-bd04c8af4fdc
Thoughts on various ways to compose classes and styles together.

- **React JS Style Components**
https://www.youtube.com/watch?v=gNeavlJ7lNY
A talk describing ways to better compose existing styles in an application, using components.

- **Orthogonality and CSS in JS**
https://benmccormick.org/2017/01/03/orthogonality-and-css-in-js/
Some thoughts on the "separation of concerns" concept, and how that relates to defining modular code and components (including styling).


#### CSS-Based Approaches

- **CSS Modules by Example**
http://andrewhfarmer.com/css-modules-by-example/
A set of 7 examples demonstrating ways to use CSS modules.

- **Elephants, The Three Code Ilities, & Two Months With CSS Modules**
http://chrispearce.co/elephants-the-three-code-ilities-two-months-with-css-modules/
A look at how Lystable used CSS Modules to scale their codebase.

- **Journey to Enjoyable, Maintainable Styling with React, ITCSS, and CSS-in-JS**
https://medium.com/maintainable-react-apps/journey-to-enjoyable-maintainable-styling-with-react-itcss-and-css-in-js-632cfa9c70d6
A long, in-depth article detailing one dev's progression through various approaches to handling CSS.

- **Patterns for Style Composition in React**
http://jxnblk.com/writing/posts/patterns-for-style-composition-in-react/
Some great suggestions for defining reusable React components that can have variations in styling

- **Functional CSS - The Good, The Bad, and Some Protips for React.js Users**
https://github.com/chibicode/react-functional-css-protips
An essay describing the "functional CSS" approach, pros and cons of using it, and tips for using that approach with React.


#### JS-Based Approaches

- **Journey to Enjoyable, Maintainable Styling with React, ITCSS, and CSS-in-JS**
https://medium.com/maintainable-react-apps/journey-to-enjoyable-maintainable-styling-with-react-itcss-and-css-in-js-632cfa9c70d6
A long, in-depth article detailing one dev's progression through various approaches to handling CSS.

- **Thoughts on Inline Styles**
https://medium.com/@andrewingram/my-thoughts-on-inline-styles-da94682b5e35
A look at reasons why people might or might not use inline style approaches, and some opinions and suggestions on when to use different approaches.
Expand All @@ -44,22 +71,21 @@
https://medium.com/@rofrischmann/styles-as-functions-of-state-1885627a63f7
A look at how styles can be managed similar to UI, and an example using the author's new styling library

- **React JS Style Components**
https://www.youtube.com/watch?v=gNeavlJ7lNY
A talk describing ways to better compose existing styles in an application, using components.

- **Functional CSS From A Pure UI Perspective**
https://medium.com/@sharifsbeat/functional-css-from-a-pure-ui-perspective-bd04c8af4fdc
Thoughts on various ways to compose classes and styles together.

- **Invidual Paint for your React Components**
https://vimeo.com/album/4199344/video/187454103
A talk discussing various approaches to manage styles and themes for React

- **Components: A Styling Odyssey**
https://speakerdeck.com/alexlande/components-a-styling-odyssey
Slideshow discussing pros and cons of various approaches to managing styles for components
- **Writing Your Styles in JS != Writing Inline Styles**
http://mxstbr.blog/2016/11/inline-styles-vs-css-in-js
Max Stoiber describes the key difference between "inline styles" and "CSS-in-JS" approaches: styles applied to elements vs styles added to a style tag.

- **CSS-in-JS comparisons**
https://github.com/MicheleBertoli/css-in-js
A repository that contains implementation comparisons between many different CSS-in-JS libraries


#### Style Libraries

- **Styling ReactJS Applications**
https://www.youtube.com/watch?v=19gqsBc_Cx0
Max Stoiber's talk at ReactNL 2016, comparing various options for styling React applications and introducing his new library, Styled-Components.
Expand All @@ -68,10 +94,6 @@
https://medium.com/front-end-hacking/scalable-styles-in-production-js-cde88016f357
Some comparisons between various approaches to managing styles (plain CSS, inline styles, CSS-in-JS), and why Aphrodite can help solve some of the issues that come up.

- **Writing Your Styles in JS != Writing Inline Styles**
http://mxstbr.blog/2016/11/inline-styles-vs-css-in-js
Max Stoiber describes the key difference between "inline styles" and "CSS-in-JS" approaches: styles applied to elements vs styles added to a style tag.

- **"Styled Components or Glamor?"**
https://www.reddit.com/r/reactjs/comments/5eq8ew/styled_components_or_glamor/
Discussion and comparisons between some different CSS-in-JS libraries
Expand All @@ -80,14 +102,21 @@
http://mxstbr.blog/2016/11/styled-components-magic-explained/
A look at how the styled-components library uses the new ES6 "tagged template literals" feature to interpolate arguments and build up CSS

- **Orthogonality and CSS in JS**
https://benmccormick.org/2017/01/03/orthogonality-and-css-in-js/
Some thoughts on the "separation of concerns" concept, and how that relates to defining modular code and components (including styling).

- **Styled-Components: Enforcing Best Practices**
https://www.smashingmagazine.com/2017/01/styled-components-enforcing-best-practices-component-based-systems/
A look at some best practices for writing styles for reusable components, and how the styled-components library can help enforce those principles.

- **CSS-in-JS comparisons**
https://github.com/MicheleBertoli/css-in-js
A repository that contains implementation comparisons between many different CSS-in-JS libraries
- **A 5-Minute Intro to Styled Components**
https://medium.freecodecamp.com/a-5-minute-intro-to-styled-components-41f40eb7cd55
A quick intro to the styled-components library

- **CSS in JS: The Argument Refined**
https://medium.com/@steida/css-in-js-the-argument-refined-471c7eb83955
The author of the Este.js boilerplate describes his investigation of various React styling libraries, and how he ended up building his own


#### Techniques

- **How to build animated microinteractions in React**
https://medium.freecodecamp.com/how-to-build-animated-microinteractions-in-react-aab1cb9fe7c8 Examples of various ways to create small animations to give feedback as the user interacts with components

18 changes: 17 additions & 1 deletion react-tutorials.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,14 @@
https://facebook.github.io/react/docs/hello-world.html
https://facebook.github.io/react/tutorial/tutorial.html
The official React documentation, recently rewritten with an excellent set of tutorials, explanations, and API information.

- **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.

- **React to the Future**
http://elijahmanor.com/talks/react-to-the-future/dist/#/
A fantastic HTML slideshow describing what React is, what makes it special, and how to work with it
A well-written HTML slideshow describing what React is, what makes it special, and how to work with it

- **React: Getting Started and Concepts**
https://scotch.io/tutorials/learning-react-getting-started-and-concepts
Expand Down Expand Up @@ -112,6 +116,10 @@
http://erikaybar.name/react-101-medium-and-slides/
Links to an HTML slideshow and accompanying blog post that introduce just enough info to give you a taste of what React is about.

- **JSX In Depth - an interactive tutorial**
http://blog.klipse.tech/javascript/2016/12/14/jsx.html
An interactive version of the "JSX in Depth" tutorial from the React docs


#### React Concept Overviews

Expand All @@ -135,6 +143,10 @@
https://ihatetomatoes.net/react-cheat-sheet-pdf/
A downloadable PDF with snippets demonstrating uses of React's syntax and APIs

- **The philosophy of React**
https://medium.com/@malinnaleach/the-philosophy-of-react-e2c126c61af3
Some high-level overviews of React's concepts, like state, props, and control flow



#### Project-Based Tutorials
Expand Down Expand Up @@ -272,6 +284,10 @@
https://medium.com/@diamondgfx/learning-react-with-create-react-app-part-4-9f843c8c1ccc
A tutorial series that introduces React's concepts, using the Create-React-App tool to handle starting the project.

- **Retrogames Library with Node, React, and Redux: Server API and React Frontend**
https://scotch.io/tutorials/retrogames-library-with-node-react-and-redux-1-server-api-and-react-frontend
Part 1 of a series building an application using Node, React, Redux, and MongoDB with Mongoose.


#### Paid Courses and Books

Expand Down
16 changes: 16 additions & 0 deletions redux-architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,14 @@
- **When to Define Action Creators in Redux**
https://daveceddia.com/redux-action-creators/
An excellent overview of why action creators exist, why they’re worth using, and when you can skip them

- **React Redux Design Lessons Learned**
http://www.jeremyzerr.com/sites/default/files/React-Redux-Design-Lessons-Learned.pdf
A slideshow that coves some core React and Redux concepts, then discuses how the authors approached designing and developing a timesheet application

- **3 Things I Learned about Working with Data in Redux**
https://dev.bleacherreport.com/3-things-i-learned-about-working-with-data-in-redux-5fa0d5f89c8b
Good practices for keeping UI state in components, using Higher-Order Components for reusability, and connecting multiple components at lower levels of the application


#### Encapsulation and Reusability
Expand Down Expand Up @@ -259,6 +267,14 @@
- **Instance Reducers**
http://www.thesoftwaresimpleton.com/blog/2016/12/20/instance-reducers/
An interesting approach to the "multiple instances of a connected component" problem.

- **Managing state for multiple component instances using React and Redux**
https://medium.com/@mikefey/managing-state-for-multiple-component-instances-using-react-and-redux-623ef7448cbe
Some useful examples illustrating the basic approach to storing data for individual reusable component instances in a Redux store

- **How to use Redux on highly scalable Javascript applications?**
https://medium.com/@alexmngn/how-to-use-redux-on-highly-scalable-javascript-applications-4e4b8cb5ef38
Discussion of ways to structure reducers, selectors, and other logic into reusable features


#### Variations on Redux Architectures
Expand Down
Loading

0 comments on commit 7996f15

Please sign in to comment.