Sensors are render pros that track some behavior and re-render on state change.
For example, the below <div>
will be re-rendered every time mouse position changes.
<MouseSensor>
{({posX, posY}) => <div />}
</MouseSensor>
libreact
comes with plenty of sensors built-in.
<ActiveSensor>
— tracks if element is being "pressed" on bymousedown
.<BatterySensor>
— tracks battery status.<ExitSensor>
— notifies component when it is being un-mounted.<FocusSensor>
— tracks element has focus.<GeoLocationSensor>
— tracks device geographical location.<HoverSensor>
— tracks element's hover status.<IdleSensor>
— tracks is user is active on the page.<MediaDeviceSensor>
— tracks media devices connected to your device.<MediaSensor>
— tracks matches of a media query.<MotionSensor>
— tracks physical motion of your device.<MouseSensor>
— tracks mouse position inside an element.<NetworkSensor>
— tracks network connectivity and type state.<LightSensor>
— tracks physical lightning sensor state.<LocationSensor>
— tracks browser location.<OrientationSensor>
— tracks physical device orientation.<ScratchSensor>
— tracks user "scratches" aka swipes.<ScrollSensor>
— tracks scroll offsets in a DOM element.<SizeSensor>
— tracks child DOM element size.<WidthSensor>
— same as<SizeSensor>
, but only re-renders on width change.
<ViewportSensor>
— tracks elements visibility in viewport.<WindowScrollSensor>
— tracks window scroll position.<WindowSizeSensor>
— tracks window size.<WindowWidthSensor>
— tracks window width.
Most sensors have also corresponding HOC and class decorator that provide the same functionality.
For example, <NetworkSensor>
render prop component has a corresponding withNetowrk()
HOC and
@withNetwork
decorator.