`npm` 包 `vue2-images-preview` 使用教程

阅读时长 86 分钟读完

前言

在前端开发过程中,展示图片是一个很基础的需求。但在某些场景下,我们需要更加灵活的方式来展示图片。这时候,vue2-images-preview 这个 npm 包就可以派上用场了。

vue2-images-preview 是一个基于 Vue.js 2.x 的图片预览和缩放组件。它支持 PC 和移动端,而且提供了丰富的配置项和自定义模板的功能。它还支持键盘操作,并提供多语言支持。下面我们就来详细介绍一下如何使用这个组件。

安装

首先,我们需要使用 npm 命令来安装这个组件:

使用方法

vue2-images-preview 组件可以在全局或局部注册。下面我们分别来介绍这两种使用方式。

全局注册

在全局注册的方式中,我们需要在 main.js 中引入 vue2-images-preview 组件,并使用 Vue.use() 方法将其注册为 Vue 的插件。

然后就可以在任何组件中使用 Vue.component() 方法来声明并使用 VueImagesPreview 组件了:

-- -------------------- ---- -------
----------
  -----
    ------------------- ----------------------------------------
  ------
-----------

--------
------ ------- -
  ------ -
    ------ -
      ----------- -
        - ---- --------------------------- ---- ------ -- --
        - ---- --------------------------- ---- ------ -- --
        - ---- --------------------------- ---- ------ -- -
      -
    -
  -
-
---------

在上面的例子中,我们将 VueImagesPreview 组件声明为局部组件,并传递了一个 imagesList 数组参数,用来指定需要预览的图片列表。每个数组元素包含两个属性:src 表示图片的地址,alt 表示图片的描述信息。

局部注册

如果你只想在某个组件中使用 VueImagesPreview 组件,可以使用局部注册的方式:

-- -------------------- ---- -------
----------
  -----
    ------------------- ----------------------------------------
  ------
-----------

--------
------ ---------------- ---- ---------------------
------ -------------------------------------

------ ------- -
  ----------- -
    ----------------
  --
  ------ -
    ------ -
      ----------- -
        - ---- --------------------------- ---- ------ -- --
        - ---- --------------------------- ---- ------ -- --
        - ---- --------------------------- ---- ------ -- -
      -
    -
  -
-
---------

在局部注册中,我们首先需要在 <script> 标签中引入 VueImagesPreview 组件,然后再通过 components 属性将其注册为局部组件。

配置项

vue2-images-preview 提供了丰富的配置项,用于定制组件的各种属性和行为。下面列举了一些比较常用的配置项:

属性名称 类型 默认值 描述
list Array [] 需要预览的图片列表,每个元素包含 srcalt 两个属性
index Number 0 预览窗口中显示的图片索引号
zoomOptions Object { step: 0.1, min: 0.2, max: 4 } 图片缩放的相关参数,包括缩放步长、最小缩放比例和最大缩放比例
preloadImages Boolean true 是否预加载图片,如果设置为 false,则只有当用户进入预览模式时才会开始加载图片
showThumbnails Boolean true 是否显示缩略图视图
hideToolbar Boolean false 是否隐藏工具栏
hideZoomBtns Boolean false 是否隐藏缩放按钮
hideRotateBtns Boolean false 是否隐藏旋转按钮
hideFullscreen Boolean false 是否隐藏全屏按钮
disableDrag Boolean false 是否禁用拖拽模式
disableWheel Boolean false 是否禁用鼠标滚轮缩放
useKeyboard Boolean true 是否开启键盘操作模式
closeOnEsc Boolean true 是否在按下 ESC 键时关闭预览窗口
showCaption Boolean true 是否显示图片描述信息
captionType String 'attr' 图片描述信息的类型,可以是 'attr' 表示使用 alt 属性值,也可以是 'data' 表示使用自定义 data-caption 属性值
captionDelay Number 0 图片描述信息显示的延迟时间,单位毫秒
zIndex Number 2000 预览窗口的 z-index
closeOnBackdrop Boolean true 是否在点击背景层时关闭预览窗口
locales Object { en: {...}, zh: {...}, 'zh-HK': {...}, 'zh-TW': {...} } 多语言支持的配置信息,可以通过这个参数来指定不同语言的文本内容。默认情况下,支持英文、简体中文、繁体中文和香港中文。如果需要添加其他语言,则可以在这个对象中添加对应的代码和文本内容
template String undefined 自定义模板字符串,可以用来完全定制预览窗口的样式和布局
render Function undefined 自定义渲染函数,可以用来操作 vue2-images-preview 内部的 DOM 元素。这个函数接收一个参数,代表当前的 vue2-images-preview 实例,可以通过这个参数来获取内部元素的引用并进行自定义操作。
onOpened Function undefined 预览窗口打开时的回调函数
onClosed Function undefined 预览窗口关闭时的回调函数

事件

vue2-images-preview 组件还支持一些事件监听器,用来监听组件的状态变化并进行相应的处理。下面列举了一些比较常用的事件:

事件名称 描述
images-loaded 所有图片加载完成时触发,回调函数接收一个参数 instance,表示当前的 vue2-images-preview 实例
image-loading 每张图片开始加载时触发,回调函数接收一个参数 instance,表示当前的 vue2-images-preview 实例
image-load-failed 图片加载失败时触发,回调函数接收两个参数 instanceindex,分别表示当前的 vue2-images-preview 实例和加载失败的图片在列表中的索引值
open 预览窗口打开时触发,回调函数接收一个参数 instance,表示当前的 vue2-images-preview 实例
close 预览窗口关闭时触发,回调函数接收一个参数 instance,表示当前的 vue2-images-preview 实例
change:current-image-index 当前预览的图片索引号发生变化时触发,回调函数接收两个参数 instanceindex,分别表示当前的 vue2-images-preview 实例和变化后的图片索引号

示例代码

最后,我们提供一段完整的示例代码供大家参考:

-- -------------------- ---- -------
----------
  -----
    ------------------- ------------------
                        ---------------------
                        ---------------- ----- ---- ---- ---- ---- - --
                        ------------------------
                        ---------------------
                        -----------------------
                        -------------------------
                        ------------------------
                        ---------------------
                        ----------------------
                        -------------------
                        ------------------
                        --------------------
                        ----------------------
                        --------------------------
                        ----------------------
                        ------------------
                        --------------------
                        ------------------------------------------------
    ---- -------------- ------ -- -----------
         ------------
         ----------------
         ----------------
         -----------------------------
  ------
-----------

--------
------ ---------------- ---- ---------------------
------ -------------------------------------

------ ------- -
  ----------- -
    ----------------
  --
  ------ -
    ------ -
      ----------- -
        - ---- --------------------------- ---- ------ --- --------------- ----- -- ----- -- --
        - ---- --------------------------- ---- ------ --- --------------- ----- -- ----- -- --
        - ---- --------------------------- ---- ------ --- --------------- ----- -- ----- -- -
      --
      ------------- --
      --------------- -
        ---- ------------------------
          ---- ----------------- ----- --------
          ---- ----------------
            ---- ------------------------ ----- --------
            ---- ------------------ ------- --------
          ------
        ------
      --
      ---------------------- -
        -- ---
      -
    -
  --
  -------- -
    ------------------- -
      ----------------- - -----
    --
    -------------------- -
      -- ---
    --
    --------------------- -
      -- ---
    --
    --------------------------- ------ -
      -- ---
    -
  -
-
---------

在这个例子中,我们使用了 v-for 指令来动态渲染多张图片,同时传递了多个配置项和事件监听器。其中,customTemplate 属性指定了一个自定义模板字符串,用来定制预览窗口的布局和样式。customRender 属性指定了一个自定义渲染函数,用来操作组件内部的 DOM 元素。这些属性和方法可以帮助我们更好地控制和定制组件的外观和行为。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600560b381e8991b448def66

纠错
反馈