Table des matières
1. Comment utiliser des composants personnalisés
1. Dans le fichier js :
1. Code en js
Maison Applet WeChat Développement de mini-programmes Implémentation de composants personnalisés du mini programme (analyse de cas)

Implémentation de composants personnalisés du mini programme (analyse de cas)

Sep 18, 2018 pm 04:36 PM
购物车

Le contenu de cet article concerne la mise en œuvre de composants personnalisés de mini-programmes (analyse de cas). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

Cet article combinera des cas pour expliquer l'implémentation de composants personnalisés.
Commençons par l'image ci-dessus
Implémentation de composants personnalisés du mini programme (analyse de cas)

Il s'agit de la composante quantité d'un panier. Idée principale :
1. Vous pouvez saisir manuellement la quantité spécifique
2. Les valeurs minimales et maximales peuvent être personnalisées. Lorsqu'il s'agit de la valeur minimale, le signe "-" est grisé et ne peut pas être cliqué. Lorsqu'il s'agit de la valeur maximale, le signe "+" est grisé et ne peut pas être cliqué.
3. Lors de la saisie manuelle de nombres commençant par « 0 », ils seront automatiquement filtrés et la saisie sera interdite. Seuls les nombres non 0 peuvent être saisis.
4. Lorsque le nombre saisi manuellement est supérieur à la valeur maximale, la zone de saisie perd le focus et la valeur saisie est définie sur la valeur maximale par défaut. Ou lorsque le nombre saisi manuellement est inférieur à la valeur minimale, la zone de saisie perd le focus et la valeur de saisie est définie sur la valeur minimale par défaut
5. Si la valeur d'attribut minimale minNum ou la valeur maximale maxNum est définie sur NaN, cela signifie qu'il n'y a pas de limite d'entrée sur la taille des valeurs minimale et maximale
6. Il n'y a pas de limite aux valeurs minimales et maximales par défaut. Vous pouvez les saisir à volonté

1. Comment utiliser des composants personnalisés

1. Dans le fichier js :

输入框数值变化最终响应的函数
  showNumber: function (e) {
    var num = e.detail.num
  },
Copier après la connexion
2. Dans le fichier json :

{  "usingComponents": {    
/**
    *  key:自定义组件的别名,在使用组件时用到。相当于Android自定义控件在xml文件中的申明的命名空间
    *  value: 自定义组件的全路径
    */
    "component-option-num": "/component/optionNumber-component/optionNumber-component"
  }
}
Copier après la connexion
3. Dans le fichier wxml :

1. La valeur minimale définie ici est 0 et la valeur maximale est 20.

2. bindoptionNum : Il est composé de bind+"optionNum" le nom de la fonction de rappel du composant personnalisé. Lorsque le rappel de fonction du composant personnalisé est appelé, la méthode bindoptionNum spécifiée par cet attribut recevra une réponse. Et peut obtenir la valeur entrante

<component-option-num bindoptionNum="showNumber" minNum="0" maxNum="20"></component-option-num>
Copier après la connexion
1. Définition des composants personnalisés

1. Valeurs d'attribut personnalisées fournies en externe

<🎜. >2. Données utilisées dans le composant
  /**
   * 组件的属性列表
   */
  properties: {  //最小值
     minNum:{       type:Number,
       value: NaN
     },//最大值
     maxNum:{       type:Number,
       value:NaN
     },
  },
Copier après la connexion

3. Méthode d'augmentation de la quantité
  /**
   * 组件的初始数据
   */
  data: {
    num: 0,                //输入框显示的数量
    disabledMin: false,    //"-"是否可点击,true 不能点击
    disabledMax:false    //"+"是否可点击,true 不能点击
  },
Copier après la connexion

4. Quantité décroissante
   _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(&#39;optionNum&#39;, { num: num })
    },
Copier après la connexion

5.
    _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(&#39;optionNum&#39;,{num:num})
    },
Copier après la connexion

6. Concentration perdue
    _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(&#39;optionNum&#39;, { num: num })
    },
Copier après la connexion

Joindre tous les codes des composants personnalisés
  _blur:function(e){
      let val = e.detail.value      
      let num = val.replace(/^[0]+[0-9]*$/gi, "")      
      let disabledMin, disabledMax      
      if (this.checkIsMinNum(num)) {    //输入的数量 小于最小的数,则输入框显示最小值
        num = this.data.minNum
        disabledMin = true
        disabledMax = false
      } else if (this.checkIsMaxNum(num)) {     //输入的数量 大于最大的数,则输入框显示最大值
        this.data.disabledMax = true
        num = this.data.maxNum
        disabledMin = false
        disabledMax = true
      } else {     //输入的数量 大于最小的数,则输入框显示输入值
        disabledMin = false
        disabledMax = false
      }      this.setData({
        num: num,
        disabledMin: disabledMin,
        disabledMax: disabledMax
      })      this.triggerEvent(&#39;optionNum&#39;, { num: num })
    },
Copier après la connexion

1. Code en js

2. Coder en wxml
// component/optionNumber-component/optionNumber-component.jsComponent({  /**
   * 组件的属性列表
   */
  properties: {
     minNum:{
       type:Number,
       value: NaN
     },

     maxNum:{
       type:Number,
       value:NaN
     },
  },  /**
   * 组件的初始数据
   */
  data: {
    num: 0,
    disabledMin: false,
    disabledMax:false
  },

  lifetimes:{    // 初始化数据
    attached:function(){
      let num, disabledMin, disabledMax      
      if (this.checkIsMinNum(this.data.num)) { //小于最小数
        num = this.data.minNum
        disabledMin = true
        disabledMax = false
      } else if (this.checkIsMaxNum(this.data.num)){     //大于最大数
        num = this.data.maxNum
        disabledMax = true
        disabledMin = false
      }else {
        num = this.data.num
        disabledMin = false
        disabledMax = false
      }      this.setData({
        num: num,
        disabledMin: disabledMin,
        disabledMax: disabledMax
      })
    },
  },  /**
   * 组件的方法列表
   */
  methods: {    // 减少数量
    _reduce: function (e) {
      // console.log("_reduce======", this.data.maxNum)
      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
      })      // console.log("disabledMin======", this.data.disabledMin)
      this.triggerEvent(&#39;optionNum&#39;,{num:num})
    },    // 增加数量
    _add: function (e) {
      let num = parseInt(this.data.num) + 1
      // console.log("_add======", this.data.maxNum)
      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
      })      this.triggerEvent(&#39;optionNum&#39;, { num: num })
    },    // 手动输入数量
    _input: function (e) {
      let val = e.detail.value      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(&#39;optionNum&#39;, { num: num })
    },  // 失去焦点
    _blur:function(e){
      // console.log("_confirm======")
      let val = e.detail.value      
      let num = val.replace(/^[0]+[0-9]*$/gi, "")      
      let disabledMin, disabledMax      
      if (this.checkIsMinNum(num)) {    //输入的数量 小于最小的数,则输入框显示最小值
        num = this.data.minNum
        disabledMin = true
        disabledMax = false
      } else if (this.checkIsMaxNum(num)) {     //输入的数量 大于最大的数,则输入框显示最大值
        this.data.disabledMax = true
        num = this.data.maxNum
        disabledMin = false
        disabledMax = true
      } else {     //输入的数量 大于最小的数,则输入框显示输入值
        disabledMin = false
        disabledMax = false
      }      this.setData({
        num: num,
        disabledMin: disabledMin,
        disabledMax: disabledMax
      })      this.triggerEvent(&#39;optionNum&#39;, { num: num })
    },    // 检查是否是最大数
    checkIsMaxNum: function (checkNum) {
      return this.data.maxNum != "NaN" && checkNum >= this.data.maxNum
    },    // 检查是否是最小数
    checkIsMinNum: function (checkNum) {
      return this.data.minNum != "NaN" && checkNum <= this.data.minNum
    }
  }
})
Copier après la connexion

3. Coder en wxss
<view class=&#39;optionView&#39;>
  <button class="item" bindtap="_reduce" disabled="{{disabledMin}}" style="border:0;background:white" plain=&#39;true&#39;>
    <image class="imgReduce" src="{{disabledMin ? &#39;/images/icon/ic_reduce_grey.png&#39; : &#39;/images/icon/ic_reduce.png&#39;}}"></image>
  </button>
  <view class="space">|</view>
  <view class="item">
    <input class="inputNum" type=&#39;number&#39; maxlength=&#39;3&#39; bindinput="_input" value="{{num}}" placeholder="0" confirm-type="确认" bindblur="_blur" placeholder-style="font-size:26rpx;color:#C81432"></input>
  </view>
  <view class="space">|</view>
  <button class="item" bindtap="_add" disabled="{{disabledMax}}" style="margin-left:6rpx;border:0;background:white" plain=&#39;true&#39;>
    <image class="imgAdd" src="{{disabledMax ? &#39;/images/icon/ic_add_grey.png&#39; : &#39;/images/icon/ic_add.png&#39;}}"></image>
  </button></view>
Copier après la connexion

4.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment implémenter une fonction simple de panier d'achat en Java ? Comment implémenter une fonction simple de panier d'achat en Java ? Nov 02, 2023 am 11:56 AM

Comment implémenter une fonction simple de panier d'achat en Java ? Le panier est une fonctionnalité importante d'une boutique en ligne, qui permet aux utilisateurs d'ajouter les articles qu'ils souhaitent acheter au panier et de gérer les articles. En Java, nous pouvons implémenter une fonction de panier simple en utilisant une approche orientée objet. Tout d’abord, nous devons définir une classe de produits. Cette classe contient des attributs tels que le nom du produit, le prix et la quantité, ainsi que les méthodes Getter et Setter correspondantes. Par exemple : publicclassProduct

PHP implémente la fonction de panier d'achat PHP implémente la fonction de panier d'achat Jun 22, 2023 am 09:00 AM

Dans notre vie quotidienne, les achats en ligne sont devenus un mode de consommation très courant, et la fonction panier est également l'un des éléments importants des achats en ligne. Ainsi, cet article expliquera comment utiliser le langage PHP pour implémenter les fonctions liées au panier. 1. Contexte technique Le panier d'achat est une fonction courante sur les sites d'achat en ligne. Lorsque les utilisateurs parcourent certains produits sur un site Web, ils peuvent ajouter ces articles à un panier virtuel pour faciliter la sélection et la gestion lors du processus de commande ultérieur. Un panier comprend généralement les fonctions de base suivantes : Ajouter des articles :

Compétences en développement de centres commerciaux PHP : conception de fonctions de panier d'achat et de synchronisation des commandes Compétences en développement de centres commerciaux PHP : conception de fonctions de panier d'achat et de synchronisation des commandes Jul 30, 2023 pm 07:22 PM

Compétences en développement de centre commercial PHP : Concevoir des fonctions de panier d'achat et de synchronisation des commandes Dans un site Web de centre commercial, le panier d'achat et les commandes sont des fonctions indispensables. Le panier est utilisé par les utilisateurs pour acheter des produits et les enregistrer dans un panier temporaire, tandis que la commande est un enregistrement généré après que l'utilisateur a confirmé l'achat du produit. Afin d'améliorer l'expérience utilisateur et de réduire les erreurs, il est très important de concevoir une fonction de synchronisation du panier et des commandes. 1. Le concept de panier et de commande Un panier est généralement un conteneur temporaire utilisé pour stocker les articles achetés par les utilisateurs. Les utilisateurs peuvent ajouter des produits au panier pour faciliter la navigation et la gestion.

Comment implémenter la fonction de panier d'achat à l'aide de Redis et JavaScript Comment implémenter la fonction de panier d'achat à l'aide de Redis et JavaScript Sep 21, 2023 pm 01:27 PM

Comment utiliser Redis et JavaScript pour implémenter la fonction de panier d'achat. Le panier d'achat est l'une des fonctions les plus courantes sur les sites Web de commerce électronique. Il permet aux utilisateurs d'ajouter des articles d'intérêt au panier, ce qui facilite leur visualisation et leur visualisation. gérer les articles achetés à tout moment. Dans cet article, nous présenterons comment implémenter la fonction de panier d'achat à l'aide de Redis et JavaScript, et fournirons des exemples de code spécifiques. 1. Préparation Avant de commencer, nous devons nous assurer que Redis a été installé et configuré, ce qui peut être fait via le site officiel [https:/

Comment concevoir la structure de la table du panier du centre commercial dans MySQL ? Comment concevoir la structure de la table du panier du centre commercial dans MySQL ? Oct 30, 2023 pm 02:12 PM

Comment concevoir la structure de la table du panier du centre commercial dans MySQL ? Avec le développement rapide du commerce électronique, les paniers d’achat sont devenus un élément important des centres commerciaux en ligne. Le panier est utilisé pour enregistrer les produits achetés par les utilisateurs et les informations associées, offrant ainsi aux utilisateurs une expérience d'achat pratique et rapide. Concevoir une structure de table de panier raisonnable dans MySQL peut aider les développeurs à stocker et à gérer efficacement les données du panier. Cet article expliquera comment concevoir la structure de la table du panier d'achat du centre commercial dans MySQL et fournira quelques exemples de code spécifiques. Premièrement, le tableau du panier doit contenir

Comment implémenter une fonction simple de panier d'achat en utilisant PHP Comment implémenter une fonction simple de panier d'achat en utilisant PHP Sep 24, 2023 am 09:13 AM

Comment utiliser PHP pour implémenter une fonction de panier d'achat simple La fonction de panier d'achat est une partie essentielle d'un site Web de commerce électronique. Elle permet aux utilisateurs d'ajouter des articles qui les intéressent au panier, puis de procéder au paiement ou de continuer à naviguer et à ajouter des articles. . Cet article explique comment utiliser PHP pour implémenter une fonction de panier d'achat simple et fournit des exemples de code spécifiques. Création de la base de données et des tables Tout d'abord, nous devons créer une base de données et une table pour stocker les données du panier. CREATEDATABASEshopping_ca

Tutoriel pratique : Explication détaillée de la fonction panier avec PHP et MySQL Tutoriel pratique : Explication détaillée de la fonction panier avec PHP et MySQL Mar 15, 2024 pm 12:27 PM

Tutoriel pratique : Explication détaillée de la fonction de panier d'achat en utilisant PHP et MySQL La fonction de panier d'achat est l'une des fonctions courantes dans le développement de sites Web. Grâce au panier d'achat, les utilisateurs peuvent facilement ajouter les articles qu'ils souhaitent acheter au panier. puis procédez au règlement et au paiement. Dans cet article, nous détaillerons comment implémenter une fonction de panier simple à l'aide de PHP et MySQL et fournirons des exemples de code spécifiques. Pour créer une base de données et une table de données, vous devez d'abord créer une table de données dans la base de données MySQL pour stocker les informations sur le produit. Ce qui suit est un simple tableau de données

Comment mettre en œuvre le système d'épicerie Java Switch avec la fonction de rappel de la quantité du panier Comment mettre en œuvre le système d'épicerie Java Switch avec la fonction de rappel de la quantité du panier Nov 04, 2023 am 09:03 AM

Comment réaliser le système d'achat d'épicerie Java Switch avec la fonction de rappel de la quantité du panier Avec le développement rapide d'Internet, le commerce électronique devient de plus en plus populaire. De plus en plus de personnes commencent à faire leurs achats via des téléphones mobiles ou des pages Web sur ordinateur, bénéficiant ainsi d'une expérience d'achat pratique et efficace. Dans le processus d'achat, le panier est un outil indispensable. Il permet aux utilisateurs de mettre leurs produits préférés dans un « panier » temporaire et de procéder ensuite au règlement lorsque la commande est confirmée. Cependant, lors d’achats en ligne, les utilisateurs oublient parfois qu’il y a déjà plusieurs articles dans le panier. Ainsi, lors de la conception d'un panier

See all articles