React Match Media
A React component that allows you to conditionally render your components based on media queries for your responsive website.
Underline it uses window.matchMedia
Usage
Install
npm i react-match-media
Use it in your code (es6 syntax)
import React from 'react';
import ReactDOM from 'react-dom';
import { MatchMediaHOC } from 'react-match-media';
const ComponentForBigScreen = MatchMediaHOC(SomeComponent, '(min-width: 800px)');
const ComponentForSmallScreen = MatchMediaHOC(SomeComponent, '(max-width: 500px)');
ReactDOM.render(
<div className="example">
<SomeElementAlwaysRendered />
<ComponentForBigScreen />
<ComponentForSmallScreen />
</div>,
document.getElementById('root')
)
For more, see the examples
Supported browsers
- IE10 and above
- All other major browsers
For older browsers, you need to polyfill window.matchMedia
.
For more, see Can I Use matchMedia
Development of this component
Start the example
npm install
npm start
open http://localhost:3000
And then you can edit the source code, hotreloading is enabled, so you can see the changes immediatly
Linting
npm run lint
Testing
npm run test
To generate distribution code
npm run build
Changelog
v2.2.0 - 25/April/2018
Used PropTypes from 'prop-types' package
v2.0.0 - 16/Jan/2017
Introduced a MatchMediaHOC
high order component to replace the previous MatchMedia
component.
License
MIT