基于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 相关文章推荐
网页中的图片的处理方法与代码
Nov 26 Javascript
jquery blockUI 遮罩不能消失与不能提交的解决方法
Sep 17 Javascript
ie支持function.bind()方法实现代码
Dec 27 Javascript
jQuery中unbind()方法用法实例
Jan 19 Javascript
AngularJS延迟加载html template
Jul 27 Javascript
轻松掌握JavaScript享元模式
Aug 27 Javascript
又一款MVVM组件 构建自己的Vue组件(2)
Mar 13 Javascript
详解node中创建服务进程
May 09 Javascript
node的process以及child_process模块学习笔记
Mar 06 Javascript
微信小程序 Animation实现图片旋转动画示例
Aug 22 Javascript
Vue.js实现开发购物车功能的方法详解
Feb 22 Javascript
Vue项目打包编译优化方案
Sep 16 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 变量类型的强制转换
2009/10/23 PHP
php XPath对XML文件查找及修改实现代码
2011/07/27 PHP
分享下页面关键字抓取www.icbase.com站点代码(带asp.net参数的)
2014/01/30 PHP
jQuery bind事件使用详解
2011/05/05 Javascript
JS简单的图片放大缩小的两种方法
2013/11/11 Javascript
jQuery实现字符串按指定长度加入特定内容的方法
2015/03/11 Javascript
jquery使用animate方法实现控制元素移动
2015/03/27 Javascript
实例详解JavaScript获取链接参数的方法
2016/01/01 Javascript
手机端图片缩放旋转全屏查看PhotoSwipe.js插件实现
2016/08/25 Javascript
React-native桥接Android原生开发详解
2018/01/17 Javascript
vue组件jsx语法的具体使用
2018/05/21 Javascript
jQuery轮播图实例详解
2018/08/15 jQuery
Angular Excel 导入与导出的实现代码
2019/04/17 Javascript
详解vue2.0模拟后台json数据
2019/05/16 Javascript
发布订阅模式在vue中的实际运用实例详解
2019/06/09 Javascript
JavaScript和TypeScript中的void的具体使用
2019/09/12 Javascript
vue路由缓存的几种实现方式小结
2020/02/02 Javascript
Vue如何实现监听组件原生事件
2020/07/03 Javascript
Python的地形三维可视化Matplotlib和gdal使用实例
2017/12/09 Python
Pandas 合并多个Dataframe(merge,concat)的方法
2018/06/08 Python
将tensorflow的ckpt模型存储为npy的实例
2018/07/09 Python
深入理解Django-Signals信号量
2019/02/19 Python
Python判断字符串是否xx开始或结尾的示例
2019/08/08 Python
Python时间序列缺失值的处理方法(日期缺失填充)
2019/08/11 Python
python和php学习哪个更有发展
2020/06/17 Python
世界上最伟大的马产品:Equiderma
2020/01/07 全球购物
自荐信如何“自荐”
2013/10/24 职场文书
外语专业毕业生个人的自荐信
2013/11/19 职场文书
毕业生就业协议书
2014/04/11 职场文书
派出所所长先进事迹
2014/05/19 职场文书
乡镇精神文明建设汇报材料
2014/08/15 职场文书
责任书范本
2014/08/25 职场文书
借款民事起诉状范文
2015/05/19 职场文书
基于Nginx实现限制某IP短时间访问次数
2021/03/31 Servers
使用pycharm运行flask应用程序的详细教程
2021/06/07 Python
Python之Matplotlib绘制热力图和面积图
2022/04/13 Python