今回は、vue2.0+をプラグイン開発からnpmリリースまで操作する方法と、vue2.0+をプラグイン開発からnpmリリースまで操作する際の注意事項を紹介します。ケース、見てみましょう。
この記事では、vue プラグインの開発から npm のリリースまでをできるだけ詳しく、わかりやすく説明しようと努めています。あなたが作ったものを大多数の「ネチズン」に見せることを考えると、少し興奮します... ^_^
最初の以前のプラグイン レンダリング ------ github ポータル
詳細な方法について話しましょう:
vue init webpack-simple vue-pay-keyboard
vue を使用してシンプルなプロジェクト、削除 src内のmain.jsとapp.vueファイル以外、app.vue内の不要な内容を削除
プロジェクトディレクトリを整理したら
2. プラグインを書きます
- pay-pop (ソースコードはgithubにありますのでご自身で入手してください)
<template> <p class="pay-box"> <!-- 输入框及键盘 --> <p :class="payPopOptions.isShow? 'pay-wrapper pay-wrapper-active' : 'pay-wrapper'"> <p class="pay-container" v-if="status"> <p class="pay-title"> {{title}} <p class="close-pay" @click="closePay"> <svg t="1501505446265" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1904" xmlns:xlink="http://www.w3.org/1999/xlink" width="18" height="18" class="icon"><path data-v-7c990886="" d="M550.659 490.565l324.395-324.386c10.945-10.945 10.945-28.699 0-39.644-10.948-10.95-28.704-10.95-39.648-0.004L511.01 450.916 186.625 126.53c-10.946-10.947-28.703-10.947-39.648 0-10.946 10.95-10.946 28.703 0 39.648l324.385 324.386-324.385 324.401c-10.946 10.944-10.946 28.703 0 39.65 10.945 10.943 28.702 10.943 39.648 0L511.01 530.213l324.396 324.401c10.944 10.944 28.7 10.944 39.648 0 10.945-10.946 10.945-28.705 0-39.649L550.66 490.565z" p-id="1905"></path></svg> </p> </p> <p class="pay-input-wrapper"> <p class="pay-input" v-for="(item, index) in pwdLength" :key="index"> <input type="password" :value="val[index]" disabled> </p> </p> <p class="pay-keyboard-wrapper"> <p class="pay-keyboard"> <p class="pay-key" v-for="item in keyBoards" :key="item" @click="val2input(item)"> {{item}} </p> </p> <p class="pay-keyboard-bottom"> <p class="pay-key-bottom pay-key-blank"></p> <p class="pay-key-bottom pay-key-middle" @click="val2input('0')">0</p> <p class="pay-key-bottom pay-key-del" @click="delVal" v-html="del"></p> </p> </p> </p> <!-- 结果显示 --> <p class="pay-result" v-if="!status"> <p class="loader"></p> <p>{{loadingTxt}}</p> </p> </p> <!-- 遮罩层 --> <p class="gray-wrapper" v-show="payPopOptions.isShow"></p> </p> </template>
export default { name: 'vue-pay-pop', props: ['payPopOptions'], data () { return { //可选参数,支持改变 //顶部文字 title: this.payPopOptions.title || '请输入支付密码', //密码长度 pwdLength: this.payPopOptions.pwdLength || 6, //底部删除按钮 del: this.payPopOptions.del || '<svg t="1524794920212" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1048" xmlns:xlink="http://www.w3.org/1999/xlink" width="40" height="30"><defs><style type="text/css"></style></defs><path d="M798.675138 191.774745c44.172035 0 80.109526 35.753295 80.109526 79.69918l0 445.373557c0 43.945885-35.93749 79.69918-80.109526 79.69918L382.443295 796.546661c-25.555026 0-49.780777-12.279674-64.804958-32.845059L154.967444 541.013801c-20.472264-28.025287-20.472264-65.680908 0-93.707219L317.638337 224.617757c15.023158-20.566408 39.249933-32.843012 64.804958-32.843012L798.675138 191.774745M798.675138 177.709401 382.443295 177.709401c-30.16502 0-58.508555 14.365172-76.240405 38.641065L143.531997 439.038268c-24.009833 32.865525-24.009833 77.378321 0 110.245893l162.670893 222.685755c17.732873 24.276916 46.075385 38.641065 76.240405 38.641065l416.231843 0c52.051493 0 94.247524-41.977044 94.247524-93.762477l0-445.373557C892.922662 219.688491 850.726631 177.709401 798.675138 177.709401L798.675138 177.709401zM475.470015 356.690772l218.792075 218.791052c10.984169 10.986215 10.984169 28.795836 0 39.780005-10.986215 10.986215-28.795836 10.986215-39.781028 0L435.69001 396.470777c-10.986215-10.984169-10.986215-28.795836 0-39.780005C446.674179 345.704556 464.485847 345.704556 475.470015 356.690772zM437.268972 578.919109l223.685525-224.042659c11.228739-11.247158 29.438473-11.247158 40.669258 0 11.230786 11.249205 11.230786 29.487591 0 40.73475L477.93823 619.654882c-11.228739 11.249205-29.438473 11.249205-40.669258 0C426.039209 608.404654 426.039209 590.167291 437.268972 578.919109z" p-id="1049" fill="#1296db"></path></svg>', //默认等候文字 loadingTxt: this.payPopOptions.loadingTxt || '请稍候...', //默认等候时间 loadingTime: this.payPopOptions.loadingTime || 1000, //显示结果后,多久重回默认 resultTime: this.payPopOptions.resultTime || 1000, //成功文字 successTxt: this.payPopOptions.successTxt || '支付成功', //失败文字 failTxt: this.payPopOptions.failTxt || '支付失败', //默认参数,无法改变 //键盘数字(1~9) keyBoards: ['1', '2', '3', '4', '5', '6', '7', '8', '9'], //键入的值 val: [], //默认输入框与等待层是否显示 status: true } }, methods: { val2input(item) { this.val.push(item) if (this.val.length == this.pwdLength) { //打开等待层 this.status = false //输入完毕后将值传递给父组件 this.$emit('inputDown', this.val.join('')) //清空数据 this.val = [] } }, delVal () { if (this.val.length > 0) this.val.pop() }, closePay () { this.payPopOptions.isShow = false; }, $payStatus(flag = false) { const that = this //模拟等候feel setTimeout(() => { if (flag) { //成功 this.loadingTxt = this.successTxt //关闭输入层,重置等待语 setTimeout(function() { that.payPopOptions.isShow = !flag that.status = true that.loadingTxt = that.payPopOptions.loadingTxt || '请稍候...' }, this.resultTime) } else { //失败 this.loadingTxt = this.failTxt //重新打开输入层,重置等待语 setTimeout(function() { that.status = true that.loadingTxt = that.payPopOptions.loadingTxt || '请稍候...' }, this.resultTime) } }, this.loadingTime) } } }
基本的なソースコードはこちら 実装方法は比較的簡単なのでここでは紹介しません…
3. 使ってみる
まずはローカルのapp.vueで使ってみましょう
<p id="app"> <p @click="showPayPop">点击弹出支付框</p> <vue-pay-pop ref="pay" :payPopOptions="payPopOptions" @inputDown="inputDown"></vue-pay-pop> </p>
import vuePayPop from './lib/vue-pay-pop' export default { name: 'app', data () { return { payPopOptions: { isShow: false }, } }, components: { vuePayPop }, methods: { inputDown(val) { //模拟检查数据 setTimeout(() => { if (val == '111111') { this.$refs.pay.$payStatus(true) } else { this.$refs.pay.$payStatus(false) } }, 1000) }, showPayPop() { this.payPopOptions.isShow = true; } } }
このうち、payPopOptionsのisShowは必須項目で、ポップアップボックスの表示・非表示を制御するために使用されます。その他のパラメータはオプションのパラメータです。リリースに備えて設定ファイルを変更します
プラグインのバージョン番号が必要になるものを変更します。今後 npm をアップロードするたびに変更されます
2. false に設定されていない場合は公開できません3. 自分の github ホスティング アドレスを入力します (コードをアップロードする方法については説明しません) github で、Git チュートリアルを参照してください ---Liao Xuefeng)webpack.config.js
エントリとファイル名を変更しますindex.html
import vuePayPop from './vue-pay-pop.vue' const PayPop = { install(Vue, options) { Vue.component(vuePayPop.name, vuePayPop) } } if (typeof window !== 'undefined' && window.Vue) { window.PayPop = PayPop Vue.use(PayPop) } export default PayPop
npm 公式 Web サイトにアクセスして npm アカウントを登録する必要があります
登録後
ユーザー名、パスワード、メールアドレス (パスワードは表示されません)
ログインに成功したら、
を入力します。OK、正常に公開されます!6. 参照
プロジェクトで npm install vue-pay-pop --save パッケージをダウンロードしますmain.js<p id="app"></p> <script src="/dist/vue-pay-pop.js"></script>
さらに、役立つと思われた場合は、github でスターを付けていただけます。もちろん、コメントや問題点で質問や提案をしていただくこともできます。ありがとうございます。
この記事の事例を読んだ後は、その方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。
推奨読書:
JSを操作して簡単な折りたたみと展開アニメーションを実装する方法
JSを操作して透明度のグラデーションアニメーションを実装する方法
以上がvue2.0以降のプラグイン開発からnpmリリースまでの操作方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。