基于Vue2x的圖片預覽插件的示例代碼
本文介紹了基于Vue2x的圖片預覽插件的示例代碼,分享給大家,具體如下:
先來看下Demo

關于開發(fā)Vue插件的幾種方式 (具體請移步官網(wǎng))Vue官網(wǎng)
MyPlugin.install = function (Vue, options) {
// 1. 添加全局方法或?qū)傩?
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.第一步創(chuàng)建項目
vue init webpack-simple youProjectName(你的項目名稱)具體操作不在贅述

2.開始插件開發(fā),編寫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(很重要?。。。?br />
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, 不然發(fā)布不成功!
"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準備發(fā)布!
8.首先注冊好npm后 添加用戶
npm adduser Username: your name Password: your password Email: yourmail // 查看一下登錄的是不是你自己 npm whoami // 發(fā)布 npm publish // 這里我遇到一個問題,發(fā)布失敗了!
什么原因呢?

9.解決了上面的問題,發(fā)布成功了!開心😊
10.記得寫一下README.md(比如像我的一樣,寫的越詳細越好!)
11.這個插件其實很簡單的,主要是要把開發(fā)到發(fā)布都來了一遍,還是有收獲的
最后總結(jié)
插件還有一點問題,放大縮小的操作也沒有加動畫,不兼容移動端,看起來比較生硬!第二版的時候給加上動畫兼容一下移動端?。?!
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
vue使用this.$message不生效的部分原因及解決方案
這篇文章主要介紹了vue使用this.$message不生效的部分原因及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09
vue-seamless-scroll無縫滾動組件使用方法詳解
這篇文章主要為大家詳細介紹了vue-seamless-scroll無縫滾動組件的使用方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-04-04
vue單向數(shù)據(jù)綁定和雙向數(shù)據(jù)綁定方式
這篇文章主要介紹了vue單向數(shù)據(jù)綁定和雙向數(shù)據(jù)綁定方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07

