基于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 相关文章推荐
极酷的javascirpt,让你随意编辑任何网页
Feb 25 Javascript
JQuery优缺点分析说明
Jun 09 Javascript
基于jquery的多彩百分比 动态进度条 投票效果显示效果实现代码
Aug 28 Javascript
jquery 查找iframe父级页面元素的实现代码
Aug 28 Javascript
jQuery实现带动画效果的二级下拉导航方法
Mar 11 Javascript
详解JavaScript中常用的函数类型
Nov 18 Javascript
JS组件Bootstrap实现下拉菜单效果代码
Apr 26 Javascript
socket.io学习教程之基础介绍(一)
Apr 29 Javascript
JavaScript html5 canvas实现图片上画超链接
Oct 20 Javascript
基于node.js实现微信支付退款功能
Dec 19 Javascript
node打造微信个人号机器人的方法示例
Apr 26 Javascript
JS实现滑动拼图验证功能完整示例
Mar 29 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
PHP设计聊天室步步通
2006/10/09 PHP
php自动加载autoload机制示例分享
2014/02/20 PHP
PHP实现获取ip地址的5种方法,以及插入用户登录日志操作示例
2019/02/28 PHP
Flash对联广告的关闭按钮讨论
2007/01/30 Javascript
prototype Element学习笔记(篇一)
2008/10/26 Javascript
Jquery操作Select 简单方便 一个js插件搞定
2009/11/12 Javascript
javascript 正则表达式相关应介绍
2012/11/27 Javascript
JS生成不重复随机数组的函数代码
2014/06/10 Javascript
javascript中sort()的用法实例分析
2015/01/30 Javascript
js判断浏览器是否支持严格模式的方法
2016/10/04 Javascript
AngularJS深入探讨scope,继承结构,事件系统和生命周期
2016/11/02 Javascript
js使用Replace结合正则替换重复出现的字符串功能示例
2016/12/27 Javascript
CheckBox多选取值及判断CheckBox选中是否为空的实例
2017/10/31 Javascript
详解Vuex管理登录状态
2017/11/13 Javascript
详解在Vue中使用TypeScript的一些思考(实践)
2018/07/06 Javascript
Vue.js实现的计算器功能完整示例
2018/07/11 Javascript
Vue 与 Vuex 的第一次接触遇到的坑
2018/08/16 Javascript
Vue中保存数据到磁盘文件的方法
2018/09/06 Javascript
Layui选项卡制作历史浏览记录的方法
2019/09/28 Javascript
vue Cli 环境删除与重装教程 - 版本文档
2020/09/11 Javascript
ant-design-vue中tree增删改的操作方法
2020/11/03 Javascript
pip matplotlib报错equired packages can not be built解决
2018/01/06 Python
在python3.5中使用OpenCV的实例讲解
2018/04/02 Python
python爬虫 execjs安装配置及使用
2019/07/30 Python
Python pandas如何向excel添加数据
2020/05/22 Python
咖啡为什么会有酸味?你喝到的咖啡為什麼是酸的?
2021/03/17 冲泡冲煮
三年大学生活自我鉴定
2014/01/21 职场文书
临床护士自荐信
2014/01/31 职场文书
商场促销活动方案
2014/02/08 职场文书
迎七一演讲稿
2014/09/12 职场文书
企业党员个人自我评价
2014/09/20 职场文书
受伤赔偿协议书
2014/09/24 职场文书
2014年敬老院工作总结
2014/12/08 职场文书
党委工作总结2015
2015/04/27 职场文书
信息简报范文
2015/07/21 职场文书
SpringCloud的JPA连接PostgreSql的教程
2021/06/26 Java/Android