基于Vue2x的圖片預(yù)覽插件的示例代碼
本文介紹了基于Vue2x的圖片預(yù)覽插件的示例代碼,分享給大家,具體如下:
先來看下Demo
關(guān)于開發(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, // 默認(rèn)是true 私人的 需要改為false, 不然發(fā)布不成功! "main": "dist/vue-picture-viewer.js", 這個超級重要 決定了你 import xxx from “vue-picture-viewer” 它默認(rèn)就會去找 dist下的vue-picture-viewer 文件 "repository": { "type": "git", "url": "https://github.com/sangcz/vue-picture-viewer" // github項目地址 },
7.一切Ok準(zhǔn)備發(fā)布!
8.首先注冊好npm后 添加用戶
npm adduser Username: your name Password: your password Email: yourmail // 查看一下登錄的是不是你自己 npm whoami // 發(fā)布 npm publish // 這里我遇到一個問題,發(fā)布失敗了!
什么原因呢?
9.解決了上面的問題,發(fā)布成功了!開心😊
10.記得寫一下README.md(比如像我的一樣,寫的越詳細(xì)越好!)
11.這個插件其實很簡單的,主要是要把開發(fā)到發(fā)布都來了一遍,還是有收獲的
最后總結(jié)
插件還有一點問題,放大縮小的操作也沒有加動畫,不兼容移動端,看起來比較生硬!第二版的時候給加上動畫兼容一下移動端?。?!
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
vue使用this.$message不生效的部分原因及解決方案
這篇文章主要介紹了vue使用this.$message不生效的部分原因及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09vue-seamless-scroll無縫滾動組件使用方法詳解
這篇文章主要為大家詳細(xì)介紹了vue-seamless-scroll無縫滾動組件的使用方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-04-04vue單向數(shù)據(jù)綁定和雙向數(shù)據(jù)綁定方式
這篇文章主要介紹了vue單向數(shù)據(jù)綁定和雙向數(shù)據(jù)綁定方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07vue項目之?dāng)?shù)量占比進(jìn)度條實現(xiàn)方式
這篇文章主要介紹了vue項目之?dāng)?shù)量占比進(jìn)度條實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12