基于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窗口功能指南之在窗口中书写内容
Jul 21 Javascript
JavaScript验证电子邮箱的函数
Aug 22 Javascript
微信中一些常用的js方法汇总
Mar 12 Javascript
jquery判断至少有一个checkbox被选中的方法
Jun 05 Javascript
jQuery动画效果实现图片无缝连续滚动
Jan 12 Javascript
jQuery简单实现tab选项卡切换效果
Jun 20 Javascript
Javascript中获取浏览器类型和操作系统版本等客户端信息常用代码
Jun 28 Javascript
javascript 定时器工作原理分析
Dec 03 Javascript
Angular.js中处理页面闪烁的方法详解
Mar 09 Javascript
JavaScript 中Date对象的格式化代码方法汇总
Sep 06 Javascript
利用Node.js检测端口是否被占用的方法
Dec 07 Javascript
使用layer模态框给新页面传值的方法
Sep 27 Javascript
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
经典的星际争霸,满是回忆的BGM
2020/04/09 星际争霸
php 目录遍历、删除 函数的使用介绍
2013/04/28 PHP
php开发中的页面跳转方法总结
2015/04/26 PHP
PHP 获取ip地址代码汇总
2015/07/05 PHP
php中json_encode不兼容JSON_UNESCAPED_UNICODE的解决方案
2016/05/31 PHP
浅谈PHP接入(第三方登录)QQ登录 OAuth2.0 过程中遇到的坑
2017/10/13 PHP
PHP有序表查找之二分查找(折半查找)算法示例
2018/02/09 PHP
php用户名的密码加密更安全的方法
2019/06/21 PHP
国外的为初学者写的JavaScript教程
2008/06/09 Javascript
JavaScript中的数据类型转换方法小结
2015/10/26 Javascript
如何解决ligerUI布局时Center中的Tab高度大小
2015/11/24 Javascript
Bootstrap表单组件教程详解
2016/04/26 Javascript
浅谈Javascript数据属性与访问器属性
2016/07/26 Javascript
js中判断变量类型函数typeof的用法总结
2016/08/09 Javascript
基于Bootstrap的Metronic框架实现页面链接收藏夹功能
2016/08/29 Javascript
浅析jQuery操作select控件的取值和设值
2016/12/07 Javascript
打通前后端构建一个Vue+Express的开发环境
2018/07/17 Javascript
vue 实现搜索的结果页面支持全选与取消全选功能
2019/05/10 Javascript
微信小程序实现watch监听
2020/06/04 Javascript
python paramiko实现ssh远程访问的方法
2013/12/03 Python
python使用sorted函数对列表进行排序的方法
2015/04/04 Python
Python获取暗黑破坏神3战网前1000命位玩家的英雄技能统计
2016/07/04 Python
Python爬取成语接龙类网站
2018/10/19 Python
pyqt5利用pyqtDesigner实现登录界面
2019/03/28 Python
使用python3 实现插入数据到mysql
2020/03/02 Python
Python count函数使用方法实例解析
2020/03/23 Python
Python 线性回归分析以及评价指标详解
2020/04/02 Python
教你使用Sublime text3搭建Python开发环境及常用插件安装另分享Sublime text3最新激活注册码
2020/11/12 Python
Python 按比例获取样本数据或执行任务的实现代码
2020/12/03 Python
美国环保婴儿用品公司:The Honest Company
2017/11/23 全球购物
德国最新街头服饰网上商店:BODYCHECK
2019/09/15 全球购物
早晨薰衣草在线女性精品店:Morning Lavender
2021/01/04 全球购物
关键字throw与throws的用法差异
2016/11/22 面试题
导游词之云南丽江-泸沽湖
2019/09/26 职场文书
Z-Order加速Hudi大规模数据集方案分析
2022/03/31 Servers
Java十分钟精通进阶适配器模式
2022/04/06 Java/Android