you-responsivecomponent v1.0.1
You-ResponsiveComponent
A base class extending React Component, which has a listener on window resize event.
Install
npm install you-responsivecomponentAPI Reference
class ResponsiveComponent
A ResponsiveComponent object is a React.Component object which is responsive to resize event. You can override the object method componentWillResize to handle resize event, and decide if it's necessary to automatically trigger a forceUpdate call.
class MyResponsiveCompo extends ResponsiveComponent<{ id: number; }, {}> {};<MyResponsiveCompo id={ 0 } />Additional Lifecycle Methods
componentWillResize
Automatically called after the window resizes.
If it returns
true,forceUpdatewill be called to update the elements. This will NOT cause asetStateor agetSnapshotBeforeUpdatecall.Parameters
WIDTH {number}
Current width of the window, px.
HEIGHT {number}
Current height of the window, px.
Returns { void | boolean }
ā Only if this method returns true will cause a forceUpdate call.
Deprecated Lifecycle Methods
BEWARE If you override these lifecycle methods when declare your class, the listener may not work as supposed. You need to use the new methods given as follow instead.
componentDidMount->componentDidMountREcomponentWillUnmount->componentWillUnmountRE
Use
import React from "react";
import ResponsiveComponent from "you-responsivecomponent";
interface Size {
w: number;
h: number;
};
class MyResponsiveCompo extends ResponsiveComponent<{}, {}> {
protected size: Size;
public constructor(props: {}) {
super(props);
this.state = {};
this.size = {
w: NaN,
h: NaN
};
}
public render() {
return (
<div>
<p>
{ `WIDTH=${ this.size.w } HEIGHT=${ this.size.h }` }
</p>
</div>
);
}
public componentWillResize(WIDTH: number, HEIGHT: number) {
if (WIDTH === this.size.w && HEIGHT === this.size.h) {
return false;
} else {
this.size.w = WIDTH;
this.size.h = HEIGHT;
return true;
}
}
};Examples
View You-BilibiliFlv.
Contributing
Feel free to contribute by submitting a pull request.