Was ist das am schwierigsten umzusetzende öffentliche Geschäft in WeChat-Miniprogrammen? Es sollte sich um eine Formularüberprüfung handeln. In diesem Artikel wird hauptsächlich vorgestellt, wie das WeChat-Applet die Formularüberprüfungsfunktion implementiert. Interessierte Freunde können sich auf
Mini Program SDK Version 1.4 beziehen >Schwierigkeiten bei der Formularüberprüfung
Wenn Sie fragen möchten, welches öffentliche Geschäft in WeChat-Miniprogrammen am schwierigsten umzusetzen ist? Es sollte eine Formularüberprüfung sein, sonst nichts. Die Gründe sind wie folgt:
Diese Komponenten können auf verschiedene Weise bedient werden, einschließlich Schieben, (mehrzeilige) Eingabe, Klicken und Klicken + Schieben.
Selbst wenn es sich um dieselbe Komponente handelt, gelten aufgrund unterschiedlicher Geschäftsszenarien unterschiedliche Überprüfungsregeln.Noch problematischer ist, dass diese Komponenten oft verknüpft oder verifiziert sind.
…
Da es sich jedoch um eine nicht einfache statische Seite handelt, gibt es ein kleines Programm mit viel Benutzerinteraktion, und die Formularüberprüfung ist eine sehr häufige Funktion: Anmelden, Registrieren, Neu hinzufügen, Bearbeiten…
Kurz gesagt: Vielfalt an Formbestandteilen
Versuchen Sie es mit der Komponentisierung
Wenn Sie auf den Front-End-Entwicklungstrend der letzten Jahre achten, werden Sie definitiv an „Komponentisierung“ denken, um Folgendes zu erreichen:
Alles Die Ansichten, Stile und Validierungslogik jeder Formularkomponente werden in separate Geschäftskomponenten gekapselt und dann direkt aufgerufen.
Versuchen Sie es mit Nichtkomponentisierung
Da die ursprüngliche Idee nicht funktioniert, kehren wir zum Ausgangspunkt zurück und sehen, was unser Kern abstrahieren muss .
Es sind nichts weiter als zwei Dinge: der Elementstil der Ansichtsebene und die Validierungsregeln der Logikebene.
// form.wxss .form { display: block; font-size: 28rpx; position: relative; } .form-line { background-color: #fff; border-bottom: 1px solid #e5e5e5; font-size: 34rpx; height: 96rpx; line-height: 96rpx; display: flex; padding: 0 31rpx; } .form-title { box-sizing: border-box; background-color: #efefef; color: #838383; font-size: 28rpx; padding: 31rpx; min-height: 90rpx; } ...
Validierungsregeln sollten idealerweise erweiterbar und konfigurierbar sein.
// xxx.wxml <form class="form"> <view class="form-title">请输入手机号</view> <view class="form-line"> <label class="label">手机</label> <view class="form-control"> <input class="f-1 va-m input" /> </view> </view> ... </form>
Die konfigurierten Regeln müssen sich auf der nativen Formularkomponente befinden und der Wert der Komponente kann nur über das Ereignisobjekt abgerufen werden.
/* 统一的格式: [规则名]: { rule: [校验方式] msg: [错误信息] } */ const validators = { // 简单的校验用正则 required: { rule: /.+/, msg: '必填项不能为空' }, // 复杂的校验用函数 same: { rule (val='', sVal='') { return val===this.data[sVal] }, msg: '密码不一致' } ... }
ist auch sehr einfach, den entsprechenden Stil entsprechend dem festen Format aufzurufen, die Überprüfungsregeln zu konfigurieren und dann Rufen Sie die Verifizierungsfunktion auf.
/* 校验函数部分代码 e 事件对象 context 页面对象函数执行的上下文环境 */ let validate = (e, context) => { // 从事件对象中获取组件的值 let value = (e.detail.value || '').trim() // 从事件中获取校验规则名称 let validator = e.currentTarget.dataset.validator ? e.currentTarget.dataset.validator .split(',') : [] // 遍历规则进行校验 for (let i = 0; i < validator.length; i++) { let ruleName = validator[i].split('=')[0] let ruleValue = validator[i].split('=')[1] let rule = validators[ruleName].rule || /.*/ if ('function' === typeof rule) { rule.call(context, value, ruleValue) ? '' : validators[ruleName].msg } else { rule.test(value) ? '' : validators[ruleName].msg } } ... }
Zusammenfassung
Das obige ist der detaillierte Inhalt vonBeispiel für die Implementierung der Formularüberprüfungsfunktion im WeChat-Applet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!