
npm install react-render-at
| Device |
Min |
Max |
| Desktop |
1200px |
Infinite |
| Laptop |
1024px |
1199px |
| Tablet |
768px |
1023px |
| Mobile |
0px |
767px |
This package can be used in three different ways:
import React from 'react'
import {RenderAt} from 'react-render-at'
function App () {
return (
<RenderAt desktop>
Content
</RenderAt>
)
}
| Prop |
Type |
Default |
| desktop |
boolean |
no |
| laptop |
boolean |
no |
| tablet |
boolean |
no |
| mobile |
boolean |
no |
| fragment |
boolean |
no |
- Via Higher Order Component
import React from 'react'
import {withReanderAt} from 'react-render-at'
function App(props) {
return (
{
props.isDesktop && <p>Content in Desktop</p>
}
{
props.isLaptop && <p>Content in Laptop</p>
}
{
props.isTablet && <p>Content in Tablet</p>
}
{
props.isMobile && <p>Content in Mobile</p>
}
)
}
export default withRenderAt(App)
| Prop |
Type |
| isDesktop |
boolean |
| isLaptop |
boolean |
| isTablet |
boolean |
| isMobile |
boolean |
You have to wrap your app within RenderAtProvider and then:
import React from 'react'
import {useRenderAt} from 'react-render-at'
function App() {
const { isDesktop, isLaptop, isTablet, isMobile } = useRenderAt()
return (
{
isDesktop && <p>Content in Desktop</p>
}
{
isLaptop && <p>Content in Laptop</p>
}
{
isTablet && <p>Content in Tablet</p>
}
{
isMobile && <p>Content in Mobile</p>
}
)
}
export default App
| Prop |
Type |
| isDesktop |
boolean |
| isLaptop |
boolean |
| isTablet |
boolean |
| isMobile |
boolean |
You can change the default debounce time by calling setDebounceTime at the beginning of your app:
import React from 'react'
import RenderAt from 'react-render-at'
RenderAt.setDebounceTime(250) // Resize event debounce time in milliseconds.
You can override the default breakpoints by calling setBreakpoints at the beginning of you app:
import React from 'react'
import RenderAt from 'react-render-at'
RenderAt.setBreakpoints({
desktop: {minWidth: 1024, maxWidth: Infinity}
})
| Prop |
Type |
| desktop |
{ minWidth: number, maxWidth: number | Infinity } |
| laptop |
{ minWidth: number, maxWidth: number | Infinity } |
| tablet |
{ minWidth: number, maxWidth: number | Infinity } |
| mobile |
{ minWidth: number, maxWidth: number | Infinity } |