真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

vue2.0+從插件開發(fā)到npm發(fā)布的示例代碼

vue: V2.5.11

我們注重客戶提出的每個(gè)要求,我們充分考慮每一個(gè)細(xì)節(jié),我們積極的做好網(wǎng)站設(shè)計(jì)制作、做網(wǎng)站服務(wù),我們努力開拓更好的視野,通過不懈的努力,創(chuàng)新互聯(lián)贏得了業(yè)內(nèi)的良好聲譽(yù),這一切,也不斷的激勵(lì)著我們更好的服務(wù)客戶。 主要業(yè)務(wù):網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)站設(shè)計(jì),小程序開發(fā),網(wǎng)站開發(fā),技術(shù)開發(fā)實(shí)力,DIV+CSS,PHP及ASP,ASP.Net,SQL數(shù)據(jù)庫的技術(shù)開發(fā)工程師。

此篇盡量詳細(xì),清楚的講解vue插件的開發(fā)到npm的發(fā)布,想想將你自己做的東西展示給廣大“網(wǎng)民”,心里還是有點(diǎn)小激動(dòng)的...…^_^

先上一下插件效果圖------github傳送門

vue2.0+ 從插件開發(fā)到npm發(fā)布的示例代碼

下面我們就來說說詳細(xì)做法:

1. 初始化項(xiàng)目

vue init webpack-simple vue-pay-keyboard

使用vue創(chuàng)建一個(gè)簡(jiǎn)單的項(xiàng)目,刪除src中除了main.js和app.vue外的文件,清空app.vue中無用內(nèi)容

整理完后項(xiàng)目目錄

vue2.0+ 從插件開發(fā)到npm發(fā)布的示例代碼

2.編寫插件

vue-pay-pop (源碼大家可到github中自行獲取)

export default {
  name: 'vue-pay-pop',
  props: ['payPopOptions'],
  data () {
   return {
    //可選參數(shù),支持改變
    //頂部文字
    title: this.payPopOptions.title || '請(qǐng)輸入支付密碼',
    //密碼長(zhǎng)度
    pwdLength: this.payPopOptions.pwdLength || 6,
    //底部刪除按鈕
    del: this.payPopOptions.del || '',
    //默認(rèn)等候文字
    loadingTxt: this.payPopOptions.loadingTxt || '請(qǐng)稍候...',
    //默認(rèn)等候時(shí)間
    loadingTime: this.payPopOptions.loadingTime || 1000,
    //顯示結(jié)果后,多久重回默認(rèn)
    resultTime: this.payPopOptions.resultTime || 1000,
    //成功文字
    successTxt: this.payPopOptions.successTxt || '支付成功',
    //失敗文字
    failTxt: this.payPopOptions.failTxt || '支付失敗',
    //默認(rèn)參數(shù),無法改變
    //鍵盤數(shù)字(1~9)
    keyBoards: ['1', '2', '3', '4', '5', '6', '7', '8', '9'],
    //鍵入的值
    val: [],
    //默認(rèn)輸入框與等待層是否顯示
    status: true
   }
  },
  methods: {
   val2input(item) {
    this.val.push(item)
    if (this.val.length == this.pwdLength) {
     //打開等待層
     this.status = false
     //輸入完畢后將值傳遞給父組件
     this.$emit('inputDown', this.val.join(''))
     //清空數(shù)據(jù)
     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
      //關(guān)閉輸入層,重置等待語
      setTimeout(function() {
       that.payPopOptions.isShow = !flag
       that.status = true
       that.loadingTxt = that.payPopOptions.loadingTxt || '請(qǐng)稍候...'
      }, this.resultTime)
     } else {
      //失敗
      this.loadingTxt = this.failTxt
      //重新打開輸入層,重置等待語
      setTimeout(function() {
       that.status = true
       that.loadingTxt = that.payPopOptions.loadingTxt || '請(qǐng)稍候...'
      }, this.resultTime)
     }
    }, this.loadingTime)
   }
  }
 }

基本源碼都在這里了,實(shí)現(xiàn)方法比較簡(jiǎn)單,這里就不多過介紹了...

3.嘗試使用

我們先嘗試在本地app.vue中使用

點(diǎn)擊彈出支付框
import vuePayPop from './lib/vue-pay-pop'

export default {
 name: 'app',
 data () {
  return {
   payPopOptions: {
    isShow: false
   },
  }
 },
 components: {
  vuePayPop
 },
 methods: {
  inputDown(val) {
   //模擬檢查數(shù)據(jù)
   setTimeout(() => {
    if (val == '111111') {
     this.$refs.pay.$payStatus(true)
    } else {
     this.$refs.pay.$payStatus(false)
    }
   }, 1000)
  },
  showPayPop() {
   this.payPopOptions.isShow = true;
  }
 }
}

其中payPopOptions中isShow是必傳項(xiàng),用來控制彈出框的顯隱

其他更多參數(shù)為可選參數(shù)

vue2.0+ 從插件開發(fā)到npm發(fā)布的示例代碼

4.更改配置文件

ok,現(xiàn)在我們?nèi)ジ呐渲梦募瑸槲覀兊陌l(fā)布做準(zhǔn)備

index.js

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

package.json

vue2.0+ 從插件開發(fā)到npm發(fā)布的示例代碼

修改箭頭中所指

1. 你的插件版本號(hào),以后每次上傳npm都需要更改

2. 不設(shè)為false無法發(fā)布

3. 填寫你自己的github托管地址(如何將代碼上傳github就不說了,大家可以參考Git教程---廖雪峰)

webpack.config.js

vue2.0+ 從插件開發(fā)到npm發(fā)布的示例代碼

修改entry和filename

index.html

dist文件大家在命令行中輸入npm run build就會(huì)自定生成

5.發(fā)布npm

你需要去npm官網(wǎng)注冊(cè)一個(gè)npm帳號(hào)

注冊(cè)好后

vue2.0+ 從插件開發(fā)到npm發(fā)布的示例代碼

輸入你的用戶名,密碼,郵箱(密碼是不顯示的)

成功登錄后我們?cè)谳斎?/p>

vue2.0+ 從插件開發(fā)到npm發(fā)布的示例代碼

ok,我們就發(fā)布成功!

6.引用

在你的項(xiàng)目中 npm install vue-pay-pop --save 下載我們的包

main.js

import vuePayPop from "vue-pay-pop"
vue.use(vuePayPop)

這樣我們就可以在自己的vue文件中直接引用啦...

ok,那到這里我們的內(nèi)容就結(jié)束了。

另外如果大家覺得有用的話,歡迎github上獻(xiàn)上您的star,當(dāng)然也可以在評(píng)論或issues中向我提出您的問題與建議,十分感謝。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。


網(wǎng)站欄目:vue2.0+從插件開發(fā)到npm發(fā)布的示例代碼
文章URL:http://weahome.cn/article/jeddps.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部