基于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获取鼠标位置部分的实例代码(兼容IE,FF)
Aug 05 Javascript
js+css实现导航效果实例
Feb 10 Javascript
轻量级javascript 框架Backbone使用指南
Jul 24 Javascript
原生js页面滚动延迟加载图片
Dec 20 Javascript
使用node+vue.js实现SPA应用
Jan 28 Javascript
Bootstrap Validator 表单验证
Jul 25 Javascript
AngularJS中使用ngModal模态框实例
May 27 Javascript
JavaScript正则表达式校验与递归函数实际应用实例解析
Aug 04 Javascript
Vue.js实现网格列表布局转换方法
Aug 25 Javascript
jquery实现倒计时小应用
Sep 19 jQuery
浅谈React 服务器端渲染的使用
May 08 Javascript
详解Node.js读写中文内容文件操作
Oct 10 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面试题(对属性或方法的访问控制)
2012/09/13 PHP
PHP防止跨域提交表单
2013/11/01 PHP
简单分析ucenter 会员同步登录通信原理
2014/08/25 PHP
PHP迭代器接口Iterator用法分析
2017/12/28 PHP
PHP实现分布式memcache设置web集群session同步的方法
2018/04/10 PHP
PHP实现断点续传乱序合并文件的方法
2018/09/06 PHP
ThinkPHP3.2.3框架实现执行原生SQL语句的方法示例
2019/04/03 PHP
一种JavaScript的设计模式
2006/11/22 Javascript
用jscript实现新建word文档
2007/06/15 Javascript
自己动手开发jQuery插件教程
2011/08/25 Javascript
jquery获取焦点和失去焦点事件代码
2013/04/21 Javascript
Jquery中给animation加更多的运作效果实例
2013/09/05 Javascript
JS+CSS实现Li列表隔行换色效果的方法
2015/02/16 Javascript
JavaScript中split() 使用方法汇总
2015/04/17 Javascript
有关Promises异步问题详解
2015/11/13 Javascript
jqGrid表格应用之新增与删除数据附源码下载
2015/12/02 Javascript
基于HTML+CSS,jQuery编写的简易计算器后续(添加了键盘监听)
2016/01/05 Javascript
基于jquery实现智能提示控件intellSeach.js
2016/03/17 Javascript
利用JS对iframe父子(内外)页面进行操作的方法教程
2017/06/15 Javascript
Angular2生命周期钩子函数的详细介绍
2017/07/10 Javascript
react使用CSS实现react动画功能示例
2020/05/18 Javascript
JavaScript实现网页跨年倒计时
2020/12/02 Javascript
关于javascript中的promise的用法和注意事项(推荐)
2021/01/15 Javascript
python中django框架通过正则搜索页面上email地址的方法
2015/03/21 Python
sublime text 3配置使用python操作方法
2017/06/11 Python
Python使用matplotlib绘制正弦和余弦曲线的方法示例
2018/01/06 Python
Python使用pymongo库操作MongoDB数据库的方法实例
2019/02/22 Python
Python浮点型(float)运算结果不正确的解决方案
2020/09/22 Python
GitHub上值得推荐的8个python 项目
2020/10/30 Python
EntityManager都有哪些方法
2013/11/01 面试题
校长岗位职责
2013/11/26 职场文书
地雷战观后感
2015/06/09 职场文书
公司开业致辞
2015/07/29 职场文书
原生CSS实现文字无限轮播的通用方法
2021/03/30 HTML / CSS
MySQL获取所有分类的前N条记录
2021/05/07 MySQL
Python读写yaml文件
2022/03/20 Python