基于Vue2x的图片预览插件的示例代码


Posted in Javascript onMay 14, 2018

本文介绍了基于Vue2x的图片预览插件的示例代码,分享给大家,具体如下:

先来看下Demo

LiveDemo

基于Vue2x的图片预览插件的示例代码

关于开发Vue插件的几种方式 (具体请移步官网)Vue官网

MyPlugin.install = function (Vue, options) {
 // 1. 添加全局方法或属性
 Vue.myGlobalMethod = function () {
  // 逻辑...
 }

 // 2. 添加全局资源
 Vue.directive('my-directive', {
  bind (el, binding, vnode, oldVnode) {
   // 逻辑...
  }
  ...
 })

 // 3. 注入组件
 Vue.mixin({
  created: function () {
   // 逻辑...
  }
  ...
 })

 // 4. 添加实例方法
 Vue.prototype.$myMethod = function (methodOptions) {
  // 逻辑...
 }
}

我采用第一种方式来编写这个插件

1.第一步创建项目

vue init webpack-simple youProjectName(你的项目名称)具体操作不在赘述

基于Vue2x的图片预览插件的示例代码

2.开始插件开发,编写index.js

import vuePictureViewer from './vue-picture-viewer'
const pictureviewer = {
 install (Vue, options) {
  Vue.component(vuePictureViewer.name, vuePictureViewer)
 }
}

if (typeof window !== 'undefined' && window.Vue) { // 这段代码很重要
 window.Vue.use(pictureviewer)
}
export default pictureviewer

3.编写vue-picture-viewer.vue也挺简单(具体可以去看源码)

4.如何使用(main.js)

import vuePictureViewer from './lib/index.js'
Vue.use(vuePictureViewer)

App.vue

<template>
 <div id="app">
  <vue-picture-viewer :imgData="imgUrl" :switch="true" v-if="imgUrl"></vue-picture-viewer>
 </div>
</template>

<script>
export default {
 name: 'app',
 data () {
  return {
   imgUrl: [{
     url:'http://p8ny46w8x.bkt.clouddn.com/test1.jpg',
     name: 'test1.jpg'
    },
    {
     url: 'http://p8ny46w8x.bkt.clouddn.com/test2.jpg',
     name: 'test2.jpg'
    }, {
     url: 'http://p8ny46w8x.bkt.clouddn.com/test3.jpg',
     name: 'test3.jpg'
    },
    {
     url: 'http://p8ny46w8x.bkt.clouddn.com/test4.jpg',
     name: 'test4.jpg'
    }]
  }
 }
}
</script>

<style>
* {
 margin: 0;
 padding: 0;
}
html, body {
 width: 100%;
 height: 100%;
}
</style>

5.打包前的配置webpack.config.js(很重要!!!)

module.exports = {
 entry: './src/lib/index.js',
 output: {
  path: path.resolve(__dirname, './dist'),
  publicPath: '/dist/',
  // filename: 'build.js',
  filename: 'vue-picture-viewer.js',
  library: 'pictureViewer',
  libraryTarget: 'umd',
  umdNamedDefine: true
 },

6.打包成功,配置package.json

"license": "MIT", // 许可证
 "private": false, // 默认是true 私人的 需要改为false, 不然发布不成功!
 "main": "dist/vue-picture-viewer.js", 这个超级重要 决定了你 import xxx from “vue-picture-viewer” 它默认就会去找 dist下的vue-picture-viewer 文件
 "repository": {
  "type": "git",
  "url": "https://github.com/sangcz/vue-picture-viewer" // github项目地址
 },

7.一切Ok准备发布!

8.首先注册好npm后 添加用户

npm adduser 
Username: your name 
Password: your password 
Email: yourmail

// 查看一下登录的是不是你自己
npm whoami

// 发布
npm publish

// 这里我遇到一个问题,发布失败了!

什么原因呢?

基于Vue2x的图片预览插件的示例代码

9.解决了上面的问题,发布成功了!开心?

10.记得写一下README.md(比如像我的一样,写的越详细越好!)

11.这个插件其实很简单的,主要是要把开发到发布都来了一遍,还是有收获的

最后总结

插件还有一点问题,放大缩小的操作也没有加动画,不兼容移动端,看起来比较生硬!第二版的时候给加上动画兼容一下移动端!!!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript 格式字符串的应用
Mar 29 Javascript
tangram框架响应式加载图片方法
Nov 21 Javascript
用C/C++来实现 Node.js 的模块(二)
Sep 24 Javascript
JavaScript实现将xml转换成html table表格的方法
Apr 17 Javascript
有关jQuery中parent()和siblings()的小问题
Jun 01 Javascript
JavaScript数组操作函数汇总
Aug 05 Javascript
jQuery 插件实现随机自由弹跳气泡样式
Jan 12 Javascript
JS实现的点击表头排序功能示例
Mar 27 Javascript
使用 Node.js 实现图片的动态裁切及算法实例代码详解
Sep 29 Javascript
总结4个方面优化Vue项目
Feb 11 Javascript
javascript实现鼠标点击生成文字特效
Dec 24 Javascript
vue实现购物车的小练习
Dec 21 Vue.js
vue组件中的数据传递方法
May 14 #Javascript
vue如何在自定义组件中使用v-model
May 14 #Javascript
JavaScript常用数学函数用法示例
May 14 #Javascript
JavaScript中常见内置函数用法示例
May 14 #Javascript
纯js封装的ajax功能函数与用法示例
May 14 #Javascript
JS常见DOM节点操作示例【创建 ,插入,删除,复制,查找】
May 14 #Javascript
vue动态绑定组件子父组件多表单验证功能的实现代码
May 14 #Javascript
You might like
PHP strtok()函数的优点分析
2010/03/02 PHP
jquery与google map api结合使用 控件,监听器
2010/03/04 Javascript
jQuery dialog 异步调用ashx,webservice数据的代码
2010/08/03 Javascript
js点击更换背景颜色或图片的实例代码
2013/06/25 Javascript
javaScript使用EL表达式的几种方式
2014/05/27 Javascript
avalon js实现仿微博拖动图片排序
2015/08/14 Javascript
JS实现的竖向折叠菜单代码
2015/10/21 Javascript
js实现的简单图片浮动效果完整实例
2016/05/10 Javascript
JS实现的图片预览插件与用法示例【不上传图片】
2016/11/25 Javascript
关于jQuery.ajax()的jsonp碰上post详解
2017/07/02 jQuery
JS实现带导航城市列表以及输入搜索功能
2018/01/04 Javascript
微信小程序chooseImage的用法(从本地相册选择图片或使用相机拍照)
2018/08/22 Javascript
JavaScript自动生成 年月范围 选择功能完整示例【基于jQuery插件】
2019/09/03 jQuery
vuex + keep-alive实现tab标签页面缓存功能
2019/10/17 Javascript
原生js实现分页效果
2020/09/23 Javascript
Vue Elenent实现表格相同数据列合并
2020/11/30 Vue.js
[08:47]2018国际邀请赛 OG战队举杯时刻
2018/08/29 DOTA
python求解数组中两个字符串的最小距离
2018/09/27 Python
详解PyCharm+QTDesigner+PyUIC使用教程
2019/06/13 Python
python+tifffile之tiff文件读写方式
2020/01/13 Python
什么是python的列表推导式
2020/05/26 Python
python使用建议技巧分享(三)
2020/08/18 Python
CSS3实现同时执行倾斜和旋转的动画效果
2016/10/27 HTML / CSS
TCP/IP中的TCP和IP分别承担什么责任
2012/04/21 面试题
中药专业大学生医药工作求职信
2013/10/25 职场文书
店长岗位职责
2013/11/21 职场文书
水务局局长岗位职责
2013/11/28 职场文书
中英文自我评价常用句型
2013/12/19 职场文书
家长给孩子的评语
2014/01/30 职场文书
项目施工员岗位职责
2014/03/09 职场文书
查摆剖析材料范文
2014/09/30 职场文书
民事诉讼代理授权委托书范本
2014/10/08 职场文书
小学优秀教师事迹材料
2014/12/16 职场文书
文艺委员竞选稿
2015/11/19 职场文书
如何利用JavaScript实现二叉搜索树
2021/04/02 Javascript
GoFrame gredis缓存DoVar Conn连接对象 自动序列化GoFrame gredisDo/DoVar方法Conn连接对象自动序列化/反序列化总结
2022/06/14 Golang