基于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 指南/入门基础
Nov 30 Javascript
JS 非图片动态loading效果实现代码
Apr 09 Javascript
使用Json比用string返回数据更友好,也更面向对象一些
Sep 13 Javascript
js相册效果代码(点击创建即可)
Apr 16 Javascript
jquery操作HTML5 的data-*的用法实例分享
Aug 17 Javascript
详解js几个绕不开的事件兼容写法
Aug 30 Javascript
Vue2 配置 Axios api 接口调用文件的方法
Nov 13 Javascript
vue利用axios来完成数据的交互
Mar 23 Javascript
vue计算属性computed、事件、监听器watch的使用讲解
Jan 21 Javascript
ES6 更易于继承的类语法的使用
Feb 11 Javascript
JS实现checkbox互斥(单选)功能示例
May 04 Javascript
idea编译器vue缩进报错问题场景分析
Jul 04 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中使用crypt()实现用户身份验证的代码
2012/09/05 PHP
浅析get与post的一些特殊情况
2014/07/28 PHP
PHP实现文件上传和多文件上传
2015/12/24 PHP
jquery 模拟雅虎首页的点击对话框效果
2010/04/11 Javascript
Javascript 中的 &amp;&amp; 和 || 使用小结
2010/04/25 Javascript
JavaScript实现简单的时钟实例代码
2013/11/23 Javascript
NodeJS中Buffer模块详解
2015/01/07 NodeJs
jQuery验证插件validation使用指南
2015/04/21 Javascript
js实现对table的增加行和删除行的操作方法
2016/10/13 Javascript
移动适配的几种方案(三种方案)
2016/11/25 Javascript
JavaScript常用正则函数用法示例
2017/01/23 Javascript
Vue键盘事件用法总结
2017/04/18 Javascript
浅谈在react中如何实现扫码枪输入
2018/07/04 Javascript
实例详解Vue项目使用eslint + prettier规范代码风格
2018/08/20 Javascript
JavaScript实现获取两个排序数组的中位数算法示例
2019/02/26 Javascript
vue-router 前端路由之路由传值的方式详解
2019/04/30 Javascript
javascript中call,apply,callee,caller用法实例分析
2019/07/24 Javascript
[03:24]2014DOTA2国际邀请赛 神秘商店生意火爆
2014/07/18 DOTA
[02:38]DOTA2亚洲邀请赛 IG战队巡礼
2015/02/03 DOTA
python3爬虫学习之数据存储txt的案例详解
2019/04/24 Python
python时间日期操作方法实例小结
2020/02/06 Python
pip安装提示Twisted错误问题(Python3.6.4安装Twisted错误)
2020/05/09 Python
python为什么会环境变量设置不成功
2020/06/23 Python
python实现代码审查自动回复消息
2021/02/01 Python
详解Html5原生拖拽操作
2018/01/12 HTML / CSS
高中生学习的自我评价
2013/12/14 职场文书
汽车专业学生自我评价
2014/01/19 职场文书
创业者是否需要商业计划书?
2014/02/07 职场文书
公务员转正鉴定材料
2014/02/11 职场文书
给学校的建议书范文
2014/05/15 职场文书
员工三分钟演讲稿
2014/08/19 职场文书
2015年纪委工作总结
2015/05/13 职场文书
文艺演出主持词
2015/07/01 职场文书
离婚协议书格式范本
2016/03/18 职场文书
干货!开幕词的写作方法
2019/04/02 职场文书
SQL实现LeetCode(178.分数排行)
2021/08/04 MySQL