npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

bf-react-image-preview

v1.0.0

Published

a react image preview component

Downloads

2

Readme

bf-react-image-preview

react图片预览

开发

npm run dev

编译

npm run build

安装

npm install bf-react-image-preview --save

使用

// 引入组件和方法函数
import ImagePreview, { ImagePreviewContainer, setTargetPreviewAttribe } from 'bf-react-image-preview'


// 作为组件的方式使用
<ImagePreview></ImagePreview>

引入对象说明

| name | Description | | -------- | ----- | | ImagePreview | 图片预览组件 | | ImagePreviewContainer | 图片预览高阶组件 | | setTargetPreviewAttribe | 设置图片预览属性函数 |

外部控制组件生成和销毁

    const { list, open, index } = this.state;
    {open && <ImagePreview 
        imgs={list} 
        index={index} 
        onClose={()=>{this.setState({open:false})}} 
    />}

组件内部控制生成和销毁


    const { list, open, index } = this.state;
    <ImagePreview 
    visible={open} imgs={list} index={index} 
    onClose={()=>{this.setState({open:false})}}  />

高阶组件ImagePreviewContainer自动处理图片

高阶组件自动对带有preview属性的标签提取src并且分组,如果标签还有large属性则提取large,然后在高阶组件里面自动实例化预览组件。

高阶组件会在componentDidMount阶段对组件的容器绑定一次click事件,通过冒泡监听每一个图片的点击。

class Main extends Component {
  constructor(p) {
    super(p);
    this.state = {
      list: [
        "https://www.abc.cc/aa.jpg",
        "https://www.abc.cc/bb.jpg"
      ]
    };
  }

  componentDidMount() {
    // 把富文本里面的图片添加预览属性preview(如果富文本的图片需要预览)
    setTargetPreviewAttribe(this.el, ".content")
  }
  componentDidUpdate(){
    // 把富文本里面的图片添加预览属性preview
    setTargetPreviewAttribe(this.el, ".content")
  }
  
  render() {
    const { list } = this.state;
    return (
      <div ref={(v) => { this.el = v; }}>
        <ul>
        <li class="list" ><img src="https://www.abc.cc/1.jpg" ></li>
        <li class="list" ><img src="https://www.abc.cc/2.jpg" ></li>
        <li class="list" ><img src="https://www.abc.cc/3.jpg" ></li>
        <li class="list" ><img src="https://www.abc.cc/4.jpg" ></li>
      </ul>
        <ul>
          {list.map((item, idx) => (
            <li key={idx} className="list" idx={idx}>
              <img src={item} alt={item} preview="1" />
            </li>
          ))}
        </ul>
      </div>
    );
  }
}
// 图片预览高阶组件
export default ImagePreviewContainer(Main);

ImagePreview Props

| 名称 | 描述 | 类型 | 默认 | |---------|---------------------|----------|---------| | index | 打开时需要展示的图片索引 | number | 0 | | imgs | 图片url | array | [] | | visible | 控制显示隐藏,外部控制时该项不传 | bool | true | | options | 参考photoSwipe的option | object | {} | | onClose | onClose | function | - |