TutorialsCourses

Tutorials

Create Nested Tab Routes with Dynamic Paths with React-Router
Jason BrownJason Brown

In this lesson we'll use the match.path value passed in by React Router to setup dynamic routes for Tabs. This will allow us to setup dynamic tabs which can be navigated to based upon the URL. With this pattern we can change the base path and our tab routes will automatically match and render correctly.

React RouterReact Router
Add Interactivity to a Line Graph using scaleLinear.invert to Find a Data Point to Highlight on Mouse Move
Jason BrownJason Brown

In this lesson we'll use scaleLinear to render a line, and additionally add data points using circle. Using onMouseMove we will call the invert function to do a reverse range to domain value interpolation. Then we will use Math.round and adjust the radius of the circle to highlight the selected point.

D3D3
Fundamentals of Rendering Data as an SVG Bar Graph with D3, scaleBand, and scaleLinear
Jason BrownJason Brown

In this lesson we'll start by using d3-scale to build up a scaleBand for our x data and a scaleLinear for our y data points to allow them to map and extrapolate our data correctly to renderable bars. We'll add in padding between each bar, and then using the svg rect will render a collection of bars.

D3D3
Fundamentals of Rendering Data as an SVG Bar Graph with D3 and scaleBand
Jason BrownJason Brown

In this lesson we'll start by using d3-scale to build up a scaleBand for our x data and a scaleLinear for our y data points to allow them to map and extrapolate our data correctly to renderable bars. We'll add in padding between each bar, and then using the svg rect will render a collection of bars.

D3D3
Fundamentals of Rendering Data as an SVG Line with D3 and scaleLinear
Jason BrownJason Brown

In this lesson we'll start by using d3-scale to build up a scaleLinear for both our x and y data points to allow them to map and extrapolate our data correctly to renderable points. Then we'll use line from d3-shape to build out our path. We'll supply it with different sets of data and explore how range can effect how our data renders. Finally we'll show off using curveStep to see how it changes our graph rendering.

D3D3
How to use a setState Updater Function with a Reducer Pattern
Jason BrownJason Brown

In this lesson we'll show how to create an updater function. We'll also dive into how to separate your state management logic into a separate reducer function much like how Redux operates. It will receive an action with a type, and any data and update state accordingly.

ReactReact
How to Create an Optional Dynamic Validation Schema based on a Value with the Yup Validation Library
Jason BrownJason Brown

In this lesson we'll show how to setup a nested validation structure using the yup library. We'll then use the yup.lazy method to evaluate the value at runtime and adjust our validation schema. We'll make our nested validation optional only if our optionalObject actually exists.

ReactReact
Make a Beautiful Interactive Bitcoin Price Chart with React, D3, and VX
Jason BrownJason Brown

In this lesson we'll walk through building an interactive bitcoin price chart. We'll use React combined with VX to render our chart and tooltips. D3 will power all of the data processing to ensure everything is rendered where it should be. We'll also walk through explaining what scales, ranges, domains and bisectors are and how to use them.

ReactReact
Understanding setState in componentDidMount to Measure Elements Without Transient UI State
Jason BrownJason Brown

In this lesson we'll explore using setState to synchronously update in componentDidMount. This allows for us to use getBoundingClientRect or other synchronous UI calls and make changes to the UI without a transient UI state.

ReactReact
Use Yarn Workspaces to Share Code with a create-react-app and create-react-native-app in a Monorepo
Jason BrownJason Brown

In this lesson we'll use yarn and yarn workspaces to create a monorepo that includes a web creat-react-app, a react-native app, and shared code. We'll use react-app-rewired and react-app-rewire-babel-loader to rewire the create-react-app configuration to allow babel to process the shared code from workspace. We'll also use crna-make-symlinks-for-yarn-workspaces and metro-bundler-config-yarn-workspaces to configure the react-native app to be able to find the shared code in the workspaces.

ReactReact