SlideShare a Scribd company logo
React Ecosystem
Or, “Tools We Like”
Who am I?
Zach Gibb
Developer
Overview
● Developer Tools
● Testing / Development
● Routing
● Other Helpers
Developer Tools
React DevTools
React Developer Tools is a system
that allows you to inspect React
Components like the DOM
https://github.com/facebook/react-devtools
Redux DevTools
DevTools for Redux with hot
reloading, action replay, and
customizable UI
https://github.com/zalmoxisus/redux-devtools-extension
Redux Logger
Logger middleware for redux
https://github.com/evgenyrodionov/redux-logger
Testing / Development
Enzyme
JavaScript Testing utilities for
React
https://github.com/airbnb/enzyme
import React from 'react';
import { render } from 'enzyme';
import Foo from './Foo';
describe('<Foo />', () => {
it('renders three `.foo-bar`s', () => {
const wrapper = render(<Foo />);
expect(wrapper.find('.foo-bar').length)
.to.equal(3);
});
it('renders the title', () => {
const wrapper = render(<Foo title="
unique" />);
expect(wrapper.text()).to.contain
('unique');
});
});
Carte Blanche
An isolated development space
with integrated fuzz testing for
your components
https://github.com/carteb/carte-blanche
React Storybook
Isolate your React UI Component
development from the main app
https://github.com/kadirahq/react-storybook
Routing
React Router
A complete routing library for
React
https://github.com/reactjs/react-router
// router.jsx
<Router history={browserHistory}>
<Route path="/" component={App}>
<Route path="users" component={Users}>
<Route path="/user/:userId" component=
{User}/>
</Route>
</Route>
</Router>
// users.jsx
const Users = (props) => (
<div>{props.children}</div>
);
// user.jsx
const User = (props) => (
<h2>{props.params.userId}</h2>
);
Others
Classnames
render() => {
const names = `example ${
this.props.items.length === 1 ? 'single'
: ''
} ${
this.props.error ? 'error-primary' : ''
}`;
return (
<div className={names} />
);
}
A simple javascript utility for
conditionally joining classNames
together
https://github.com/JedWatson/classnames
Classnames
render() => {
const names = classNames('example', {
single: this.props.items.length === 1,
‘error-primary’: this.props.error
});
return (
<div className={names} />
);
}
A simple javascript utility for
conditionally joining classNames
together
https://github.com/JedWatson/classnames
Redux Thunk
Thunk middleware for Redux
https://github.com/gaearon/redux-thunk
function increment() {
return {
type: INCREMENT_COUNTER
}
};
function incrementAsync() {
return dispatch => {
setTimeout(() => {
// Yay! Can invoke sync or async
actions with `dispatch`
dispatch(increment());
}, 1000);
};
}
dispatch(increment());
dispatch(incrementAsync());
Victory
A collection of composable React
components for building
interactive data visualizations
https://github.com/FormidableLabs/victory
import React, { Component } from 'react';
import { render } from 'react-dom';
import { VictoryPie } from 'victory';
class PieChart extends Component {
render() {
return (
<VictoryPie />
);
}
}
render(<PieChart />, document.getElementById
('app'));
React Modal
<Modal
isOpen={bool}
onAfterOpen={afterOpenFn}
onRequestClose={requestCloseFn}
closeTimeoutMS={n}
style={customStyle}
>
<h1>Modal Content</h1>
<p>Etc.</p>
</Modal>
Accessible modal dialog
component for React
https://github.com/reactjs/react-modal

More Related Content

PDF
JavaScript, React Native and Performance at react-europe 2016
PDF
Fastlane - Automation and Continuous Delivery for iOS Apps
PDF
Continous UI testing with Espresso and Jenkins
PPTX
Genymotion with Jenkins
PDF
HotPush with Ionic 2 and CodePush
PDF
Instrumentación de entrega continua con Gitlab
PDF
Android + jenkins
PDF
Continuous Integration for your Android projects
JavaScript, React Native and Performance at react-europe 2016
Fastlane - Automation and Continuous Delivery for iOS Apps
Continous UI testing with Espresso and Jenkins
Genymotion with Jenkins
HotPush with Ionic 2 and CodePush
Instrumentación de entrega continua con Gitlab
Android + jenkins
Continuous Integration for your Android projects

What's hot (20)

PPTX
Exploring the power of Gradle in android studio - Basics & Beyond
PPTX
ATAGTR2017 Upgrading a mobile tester's weapons with advanced debugging
PPTX
React Native
PDF
Soft shake 2013 - make use of sonar on your mobile developments
PPTX
[ApacheCon 2016] Advanced Apache Cordova
PDF
Writing a Jenkins / Hudson plugin
PPTX
Codefresh + Cloud 66 webinar: Testing Strategies for Docker Driven Development
PDF
Plugins 2.0: The Overview
PPT
Behat sauce
PPTX
Jenkins Plugin Development With Gradle And Groovy
PPTX
React native development with expo
PDF
Intro to Eclipse Che, by Tyler Jewell
PPT
Rcp by example
PDF
Automate your build on Android with Jenkins
PDF
Android App development and test environment, Understaing android app structure
ODP
Integrating Selenium testing infrastructure into Scala Project
PDF
PPTX
Intro to JavaScript Tooling in Visual Studio Code
PPTX
[JavaLand 2015] Developing JavaScript Mobile Apps Using Apache Cordova
PDF
p2, your savior or your achilles heel? Everything an Eclipse team needs to kn...
Exploring the power of Gradle in android studio - Basics & Beyond
ATAGTR2017 Upgrading a mobile tester's weapons with advanced debugging
React Native
Soft shake 2013 - make use of sonar on your mobile developments
[ApacheCon 2016] Advanced Apache Cordova
Writing a Jenkins / Hudson plugin
Codefresh + Cloud 66 webinar: Testing Strategies for Docker Driven Development
Plugins 2.0: The Overview
Behat sauce
Jenkins Plugin Development With Gradle And Groovy
React native development with expo
Intro to Eclipse Che, by Tyler Jewell
Rcp by example
Automate your build on Android with Jenkins
Android App development and test environment, Understaing android app structure
Integrating Selenium testing infrastructure into Scala Project
Intro to JavaScript Tooling in Visual Studio Code
[JavaLand 2015] Developing JavaScript Mobile Apps Using Apache Cordova
p2, your savior or your achilles heel? Everything an Eclipse team needs to kn...
Ad

Viewers also liked (13)

PPTX
Demystifying Warden
PDF
React & Redux
PDF
Success stories from agencies
PDF
Navigating the React Ecosystem
PDF
Corso su ReactJS
PDF
A React Journey
PDF
An Intense Overview of the React Ecosystem
PDF
Arch linuxを試したお話
ZIP
Warden Introduction
PDF
Intro to react native
PDF
React + Redux for Web Developers
PDF
React Native
PPTX
React + Redux Introduction
Demystifying Warden
React & Redux
Success stories from agencies
Navigating the React Ecosystem
Corso su ReactJS
A React Journey
An Intense Overview of the React Ecosystem
Arch linuxを試したお話
Warden Introduction
Intro to react native
React + Redux for Web Developers
React Native
React + Redux Introduction
Ad

Similar to React Ecosystem (20)

PDF
Top React developer Tools
PDF
Aura LA GDG - July 17-2017
PDF
React DevTools Guide Part 1: Boost Performance, Accessibility & Bundle Effici...
PPTX
React Developer Tools
PPTX
Top 10 React Development Tools to Choose in 2023.pptx
PDF
Universal JS Web Applications with React - Web Summer Camp 2017, Rovinj (Work...
PDF
React Development with the MERN Stack
PDF
7 Tools To Make React Development Faster and More Efficient
PPTX
Debugging React Apps - Rendercon (1).pptx
PPTX
React-JS.pptx
PDF
React Developers Need These Tools To Increase Their Potential.pdf
PDF
Workshop 23: ReactJS, React & Redux testing
PDF
Top 7 react developer tools to use in 2021
PPTX
UIF(UI Frame work)Notes MRUH_UNIT 2.pptx
PPTX
Unit 2 Fundamentals of React -------.pptx
PDF
unit 3_Adv WTAdvanced Web Tecg Design_HTML_CSS_JAVASCRIPT_AJAX_PPT.pdf
PDF
Using React, Redux and Saga with Lottoland APIs
PDF
An Overview of the React Ecosystem
PPTX
ReactJS_Presentati123444444444444444444444444.pptx
PPTX
React js introduction about it's features
Top React developer Tools
Aura LA GDG - July 17-2017
React DevTools Guide Part 1: Boost Performance, Accessibility & Bundle Effici...
React Developer Tools
Top 10 React Development Tools to Choose in 2023.pptx
Universal JS Web Applications with React - Web Summer Camp 2017, Rovinj (Work...
React Development with the MERN Stack
7 Tools To Make React Development Faster and More Efficient
Debugging React Apps - Rendercon (1).pptx
React-JS.pptx
React Developers Need These Tools To Increase Their Potential.pdf
Workshop 23: ReactJS, React & Redux testing
Top 7 react developer tools to use in 2021
UIF(UI Frame work)Notes MRUH_UNIT 2.pptx
Unit 2 Fundamentals of React -------.pptx
unit 3_Adv WTAdvanced Web Tecg Design_HTML_CSS_JAVASCRIPT_AJAX_PPT.pdf
Using React, Redux and Saga with Lottoland APIs
An Overview of the React Ecosystem
ReactJS_Presentati123444444444444444444444444.pptx
React js introduction about it's features

Recently uploaded (20)

PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PPTX
ai tools demonstartion for schools and inter college
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PPTX
ManageIQ - Sprint 268 Review - Slide Deck
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
Understanding Forklifts - TECH EHS Solution
PPTX
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PPTX
Online Work Permit System for Fast Permit Processing
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PPT
Introduction Database Management System for Course Database
PDF
AI in Product Development-omnex systems
PDF
Design an Analysis of Algorithms I-SECS-1021-03
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Upgrade and Innovation Strategies for SAP ERP Customers
ai tools demonstartion for schools and inter college
Navsoft: AI-Powered Business Solutions & Custom Software Development
ManageIQ - Sprint 268 Review - Slide Deck
How to Migrate SBCGlobal Email to Yahoo Easily
Understanding Forklifts - TECH EHS Solution
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
CHAPTER 2 - PM Management and IT Context
How to Choose the Right IT Partner for Your Business in Malaysia
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Odoo Companies in India – Driving Business Transformation.pdf
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Online Work Permit System for Fast Permit Processing
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
Introduction Database Management System for Course Database
AI in Product Development-omnex systems
Design an Analysis of Algorithms I-SECS-1021-03

React Ecosystem

  • 4. Overview ● Developer Tools ● Testing / Development ● Routing ● Other Helpers
  • 6. React DevTools React Developer Tools is a system that allows you to inspect React Components like the DOM https://github.com/facebook/react-devtools
  • 7. Redux DevTools DevTools for Redux with hot reloading, action replay, and customizable UI https://github.com/zalmoxisus/redux-devtools-extension
  • 8. Redux Logger Logger middleware for redux https://github.com/evgenyrodionov/redux-logger
  • 10. Enzyme JavaScript Testing utilities for React https://github.com/airbnb/enzyme import React from 'react'; import { render } from 'enzyme'; import Foo from './Foo'; describe('<Foo />', () => { it('renders three `.foo-bar`s', () => { const wrapper = render(<Foo />); expect(wrapper.find('.foo-bar').length) .to.equal(3); }); it('renders the title', () => { const wrapper = render(<Foo title=" unique" />); expect(wrapper.text()).to.contain ('unique'); }); });
  • 11. Carte Blanche An isolated development space with integrated fuzz testing for your components https://github.com/carteb/carte-blanche
  • 12. React Storybook Isolate your React UI Component development from the main app https://github.com/kadirahq/react-storybook
  • 14. React Router A complete routing library for React https://github.com/reactjs/react-router // router.jsx <Router history={browserHistory}> <Route path="/" component={App}> <Route path="users" component={Users}> <Route path="/user/:userId" component= {User}/> </Route> </Route> </Router> // users.jsx const Users = (props) => ( <div>{props.children}</div> ); // user.jsx const User = (props) => ( <h2>{props.params.userId}</h2> );
  • 16. Classnames render() => { const names = `example ${ this.props.items.length === 1 ? 'single' : '' } ${ this.props.error ? 'error-primary' : '' }`; return ( <div className={names} /> ); } A simple javascript utility for conditionally joining classNames together https://github.com/JedWatson/classnames
  • 17. Classnames render() => { const names = classNames('example', { single: this.props.items.length === 1, ‘error-primary’: this.props.error }); return ( <div className={names} /> ); } A simple javascript utility for conditionally joining classNames together https://github.com/JedWatson/classnames
  • 18. Redux Thunk Thunk middleware for Redux https://github.com/gaearon/redux-thunk function increment() { return { type: INCREMENT_COUNTER } }; function incrementAsync() { return dispatch => { setTimeout(() => { // Yay! Can invoke sync or async actions with `dispatch` dispatch(increment()); }, 1000); }; } dispatch(increment()); dispatch(incrementAsync());
  • 19. Victory A collection of composable React components for building interactive data visualizations https://github.com/FormidableLabs/victory import React, { Component } from 'react'; import { render } from 'react-dom'; import { VictoryPie } from 'victory'; class PieChart extends Component { render() { return ( <VictoryPie /> ); } } render(<PieChart />, document.getElementById ('app'));