成人小视频在线_欧美xxxav_国产亚洲精AA在线观看SEE_日韩在线免费播放_69日影院_92精品国产自产在线观看481页

18842388900

網站建設 APP開發 小程序

Article/文章

記錄成長點滴 分享您我感悟

您當前位置>首頁 > 知識 > 軟件開發

小程序自定義組件的實現(案例解析)

發表時間:2019-05-20 08:50:34

文章來源:沈陽網站建設

標簽:購物車 數量組件

分享:

瀏覽次數:0

本篇文章給大家帶來的內容是關于小程序自定義組件的實現(案例解析),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

本文將結合案例,來闡述自定義組件實現。
先來上圖
20180914222027790.png

這個是一個購物車的數量組件。主要思路:
1、可以手動的輸入具體的數量
2、可自定義設置最小值、和最大值。當是最小值時,“-”號置灰,并不可點擊。當是最大值時,“+”號置灰,并不可點擊。
3、當手動輸入“0”開頭的數字時,自行過濾,禁止輸入,只值輸入非0數字。
4、當手動輸入數字大于最大值時,輸入框失去焦點,默認將輸入值置為最大值。或者當手動輸入數字小于最小值時,輸入框失去焦點,默認將輸入值置為最小值
5、如果屬性值minNum最小值、或者maxNum最大值設置為NaN,則表示最小值和最大值的大小沒有輸入的限制
6、默認最小值和最大值是沒有限制的,可以隨便輸入

一、使用自定義組件的方式1、js文件中:
輸入框數值變化最終響應的函數  showNumber: function (e) {    var num = e.detail.num  },
2、json文件中:
{  "usingComponents": {    /**    *  key:自定義組件的別名,在使用組件時用到。相當于Android自定義控件在xml文件中的申明的命名空間    *  value: 自定義組件的全路徑    */    "component-option-num": "/component/optionNumber-component/optionNumber-component"  }}
3、wxml文件中:

1、這里設置了最小值是0,最大值是20。
2、bindoptionNum:是由bind+"optionNum"自定義組件回調函數的名稱組成。當自定義組件的函數回調是,這個屬性指定的方法bindoptionNum將被響應。并可以獲取傳入的值

<component-option-num bindoptionNum="showNumber" minNum="0" maxNum="20"></component-option-num>
一、自定義組件的定義1、 對外提供的自定義屬性值
  /**   * 組件的屬性列表   */  properties: {  //最小值     minNum:{       type:Number,       value: NaN     },//最大值     maxNum:{       type:Number,       value:NaN     },  },
2、 組件內部使用的數據
  /**   * 組件的初始數據   */  data: {    num: 0,                //輸入框顯示的數量    disabledMin: false,    //"-"是否可點擊,true 不能點擊    disabledMax:false    //"+"是否可點擊,true 不能點擊  },
3、 增加數量方法
   _add: function (e) {      let num = parseInt(this.data.num) + 1      if (this.checkIsMaxNum(num)) {            /**       * 大于最大數值,將輸入框的值設置為最大值,       * 且"+"不能點擊、"-"可點擊       */         num = this.data.maxNum        this.data.disabledMax = true         this.data.disabledMin = false      }else {        this.data.disabledMin = false        this.data.disabledMax = false       }      this.setData({        num: num,        disabledMin: this.data.disabledMin,        disabledMax: this.data.disabledMax      })      //回調optionNum方法,將輸入框num值傳遞給使用該組件的函數      this.triggerEvent('optionNum', { num: num })    },
4、減少數量
    _reduce: function (e) {      let num, disabledMin, disabledMax      num = parseInt(this.data.num) - 1      if (this.checkIsMinNum(num)) { //小于最小數       /**     * 小于最小數值,將輸入框的值設置為最小值,     * 且"-"不能點擊、"+"可點擊     */         num = this.data.minNum        disabledMin = true        disabledMax = false      }else{        disabledMin = false        disabledMax = false      }      this.setData({        num: num,        disabledMin: disabledMin,        disabledMax: disabledMax      })      //回調optionNum方法,將輸入框num值傳遞給使用該組件的函數      this.triggerEvent('optionNum',{num:num})    },
5、手動輸入數量
    _input: function (e) {      let val = e.detail.value      //1、先用正則校驗輸入的第一個數字,當手動輸入“0”開頭的數字時,自行過濾,禁止輸入,只值輸入非0數字      var num = val.replace(/^[0]+[0-9]*$/gi, "")       /**     * 大于最大數值,將輸入框的值設置為最大值,且"+"不能點擊、"-"可點擊。反之亦然     */       if (this.checkIsMinNum(num)) {  //小于最小數        this.data.disabledMin = true        this.data.disabledMax = false      } else if (this.checkIsMaxNum(num)) {    //大于最大數        this.data.disabledMax = true        this.data.disabledMin = false      } else {        this.data.disabledMin = false        this.data.disabledMax = false      }      this.setData({        num: num,        disabledMin: this.data.disabledMin,        disabledMax:this.data.disabledMax      })      this.triggerEvent('optionNum', { num: num })    },              
              

購物車,數量組件

相關案例查看更多

主站蜘蛛池模板: 免费看免费看A级长片 | 国产精品视频免费一区 | 亚洲国产99 | 国产美女久久精品香蕉69 | 91久久一区二区偷怕 | 白嫩无码人妻丰满熟妇啪啪区 | 狠狠色综合激起情丁香色五月 | 亚洲蜜桃精久久久久久久久久久久 | 亚洲AV无码久久三宫椿系列 | 欧美精品中文字幕亚洲专区 | 我趁老师喝醉脱她胸罩小说 | 国产69精品久久99不卡免费版亮点 | 国产精品一区二区免费看 | 亚洲欧洲日产国码综合在线 | 亚洲成国产人片在线观看 | 噜噜噜免费视频 | 久草福利免费在线 | 班花在教室伦流澡到高潮视频 | 一区二区三区伦理片 | 国产免费人成在线视频 | 国产免费8X高清在线 | 99riav精品免费视频观看 | 91免费入口 | 91精品国产自产老师啪 | 国产九色sp调教91 | 福利视频在线播放 | 玩麻豆国产?片对白日逼视频 | 久久久久成| 九九色在线观看 | 99热9| 欧美一级毛片免费的视频 | 久久密一区二区三区 | 欧美精品无码一区二区三区 | 69久久99精品久久久久婷婷 | 夜夜干av | 国产精品日韩av | 爱爱免费| 黄网站免费久久 | 亚洲女人网 | 国产精品成人竹菊影视亚洲性爱在线 | 一级片在线免费播放 |