基于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 相关文章推荐
jquery 应用代码 方便的排序功能
Feb 06 Javascript
自动设置iframe大小的jQuery代码
Sep 11 Javascript
js数组中如何随机取出一个值
Jun 13 Javascript
PHP+jQuery+Ajax+Mysql如何实现发表心情功能
Aug 06 Javascript
Javascript removeChild()删除节点及删除子节点的方法
Dec 27 Javascript
JS从一组数据中找到指定的单条数据的方法
Jun 02 Javascript
JavaScript中有关一个数组中最大值和最小值及它们的下表的输出的解决办法
Jul 01 Javascript
浅谈EasyUI常用控件的禁用方法
Nov 09 Javascript
Javascript中引用类型传递的知识点小结
Mar 06 Javascript
vue文件运行的方法教学
Feb 12 Javascript
基于JS实现一个随机生成验证码功能
May 29 Javascript
javascript实现计算器功能详解流程
Nov 01 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
我的论坛源代码(八)
2006/10/09 PHP
实用函数10
2007/11/08 PHP
rephactor 优秀的PHP的重构工具
2011/06/09 PHP
PHP抽象类基本用法示例
2018/12/28 PHP
Safari5中alert的无限循环BUG
2011/04/07 Javascript
jquery 简短几句代码实现给元素动态添加及获取提示信息
2011/09/01 Javascript
js+css实现的简单易用兼容好的分页
2013/12/30 Javascript
EasyUI实现第二层弹出框的方法
2015/03/01 Javascript
JavaScript定时器和优化的取消定时器方法
2015/07/03 Javascript
js+css实现的圆角边框TAB选项卡滑动门代码分享(2款)
2015/08/26 Javascript
基于OL2实现百度地图ABCD marker的效果
2015/10/01 Javascript
浅析JavaScript中的array数组类型系统
2016/07/18 Javascript
js简单实现网页换肤功能
2017/04/07 Javascript
使用Webpack提高Vue.js应用的方式汇总(四种)
2017/07/10 Javascript
基于dataset的使用和图片延时加载的实现方法
2017/12/11 Javascript
解决vue项目使用font-awesome,build后路径的问题
2018/09/01 Javascript
详解create-react-app 2.0版本如何启用装饰器语法
2018/10/23 Javascript
微信小程序获取位置展示地图并标注信息的实例代码
2019/09/01 Javascript
layui内置模块layim发送图片添加加载动画的方法
2019/09/23 Javascript
Vue 实现CLI 3.0 + momentjs + lodash打包时优化
2019/11/13 Javascript
JS实现水平移动与垂直移动动画
2019/12/19 Javascript
原生JS实现留言板功能
2020/02/08 Javascript
vue等两个接口都返回结果再执行下一步的实例
2020/09/08 Javascript
python妹子图简单爬虫实例
2015/07/07 Python
python将txt文件读取为字典的示例
2018/12/22 Python
Python调用服务接口的实例
2019/01/03 Python
使用TensorFlow实现二分类的方法示例
2019/02/05 Python
Python sqlite3查询操作过程解析
2020/02/20 Python
英国哈罗德园艺:Harrod Horticultural
2020/03/31 全球购物
比较一下entity bean和session bean
2013/12/27 面试题
中英文自我评价语句
2013/12/20 职场文书
一位农村小子的自荐信
2014/04/07 职场文书
八荣八耻演讲稿
2014/09/15 职场文书
高中学生自我评价范文
2014/09/23 职场文书
2014年化验室工作总结
2014/11/21 职场文书
《用字母表示数》教学反思
2016/02/17 职场文书