A simple, enhanced react image component with loading spinner, fallback support and other features
- lazy loading
- loading indicator
- error handler and fallback placeholder
Using command line:
$ yarn add emg
# or
$ npm i -S emgUsing CDN:
<script src="//unpkg.com/emg/dist/emg.umd.js"></script>import Emg from 'emg';
class Example extends React.Component{
public render(){
return <Emg src="url/for/image"/>
}
}className: class name- type:
string
- type:
src: url of the image to load- type:
string
- type:
alt: alt for the image- type:
string
- type:
title: title attribute for the image- type:
string
- type:
style: inline style for the image- type:
React.CSSProperties
- type:
loadingImg: show while image loading- type:
string
- type:
loadErrImg: show when failed to load the image- type:
string
- type:
fallbackImg: instead of showing an error image, show this fallback one- type:
string
- type:
isLazyLoad: whether lazy load or not. enable only whenIntersectionObserveris supported- type:
boolean - default:
false
- type:
onLoad:onloadhandler- type:
(event: Event) => void
- type:
onError:onerrorhandler- type:
(event: Event) => void
- type:
See the examples.
clone this repo then:
$ yarn install && yarn startnavigate to http://localhost:3000
For development, clone this repo then
$ yarn install && yarn startthis will start a local server then open browser and go to http://localhost:3000 to see examples in action.
available scripts:
build: generate budnles that are ready to publishdev: start local server for local developmentlint: run tslint & stylelinttest: test the component
Lazy load using the modern IntersectionObserver api.
For more info you can read Lazy Loading Images and Video from WebFundamentals.