项目作者: estrattonbailey

项目描述 :
Tiny image lazy loading library for React.
高级语言: JavaScript
项目地址: git://github.com/estrattonbailey/relaze.git
创建时间: 2017-01-16T22:50:19Z
项目社区:https://github.com/estrattonbailey/relaze

开源协议:

下载


relaze

Tiny image lazy loading library for React. 800 bytes gzipped.

Features

  1. Single higher-order component
  2. Performant scrolling using requestAnimationFrame
  3. Supports srcset
  4. Universal

Install

  1. npm i relaze --save

Usage

Create a reusable image component:

  1. // Image.js
  2. import relaze from 'relaze'
  3. export default relaze(({ src, srcSet }) => (
  4. <img src={src} srcSet={srcSet} />
  5. ))

Pass it a src and a srcSet prop (optional):

  1. import Image from './Image.js'
  2. <Image src='image.jpg' srcSet='image.jpg 600w, image-large.jpg 1200w' ></Image>

When the image enters the viewport, Relaze will pass the src and srcSet
props to its child component.

Fade-in Image

  1. // Image.js
  2. import relaze from 'relaze'
  3. import cx from 'classnames'
  4. class Image extends React.Component {
  5. constructor(props) {
  6. super(props)
  7. this.state = { loaded: false }
  8. }
  9. render() {
  10. const { loaded } = this.state
  11. const { src, srcSet } = this.props
  12. return (
  13. <img
  14. src={src}
  15. srcSet={srcSet}
  16. className={cx({
  17. 'is-loaded': loaded
  18. })}
  19. onLoad={e => {
  20. this.setState({
  21. loaded: true
  22. })
  23. }} />
  24. )
  25. }
  26. }
  27. export default relaze(Image)

Background Image

  1. import relaze from 'relaze'
  2. export default relaze(({ src }) => (
  3. <div style={{
  4. backgroundImage: `url(${src})`
  5. }} ></div>
  6. ))

Adjusting Threshold

A fraction of the viewport height. Positive values makes image load sooner, negative values makes image load later.

  1. import Image from './Image.js'
  2. <Image src='image.jpg' threshold={0.2} ></Image>

License

MIT License © Eric Bailey