cari
Rumahhujung hadapan webView.jsBagaimana untuk melaksanakan komponen pengesahan borang H5 dalam vue3

Perenderan

Bagaimana untuk melaksanakan komponen pengesahan borang H5 dalam vue3

Penerangan

adalah berdasarkan vue.js dan tidak bergantung pada pemalam atau perpustakaan lain yang kekal konsisten dengannya elemen-ui. Pelaksanaan dalaman telah membuat beberapa pelarasan untuk perbezaan mudah alih.

Platform pembinaan semasa dibina menggunakan perancah rasmi uni-app Kerana kebanyakan terminal mudah alih pada masa ini mempunyai dua jenis: h6 dan 微信小程序, jadi ia sangat sesuai untuk pemilihan teknologi untuk menjalankan satu set. kod pada berbilang terminal.

Idea pelaksanaan

API Teras: Gunakan menyediakan dan menyuntik, sepadan dengan <form></form> dan <form-item></form-item>.

  • Dalam komponen <form></form>, pembolehubah (tatasusunan) digunakan secara dalaman untuk menyimpan semua <form-item></form-item> kejadian, dan pada masa yang sama, data yang akan dipindahkan didedahkan melalui provide; menggunakan <form-item></form-item> secara dalaman untuk menerima data yang disediakan oleh komponen induk, dan akhirnya menyerahkan sifat dan kaedahnya sendiri kepada komponen induk. Satu-satunya perkara yang perlu dilakukan dalam inject

  • ialah mendengar data terikat, dan kemudian memanggil pelbagai kaedah pengesahan yang sepadan dengan <form></form> supaya sebarang status pengesahan ditulis dalam <form-item></form-item> termasuk paparan gaya; memandangkan anda boleh mendapatkan data yang terikat oleh komponen induk, untuk beberapa tetapan gaya biasa, anda secara semula jadi boleh menggunakan <form-item></form-item> untuk mendapatkan nilai computed komponennya sendiri atau prop dahulu terikat dengan nilai komponen induk komponen sendiri juga boleh memanggilnya. propprop

  • Oleh kerana acara penghantaran tersuai
  • ,

    dan vue3 telah dialih keluar daripada $on, jadi di sini kami menggunakan $off, $emit dan sebaliknya; perbezaannya ialah mekanisme penghantaran acara ini adalah global dan tidak mengikut keunikan komponen, jadi apabila menambah atau mengalih keluar acara, anda perlu menetapkan nilai unik dalam nama acara di sini uni.$on komponen Pembolehubah yang terkumpul uni.$off setiap kali ia dipanggil, dan kemudian menetapkannya sebagai nama acara dan menghantarnya ke dalam uni.$emit, supaya kepastian <form></form> dan 1 dapat dijamin. <form-item></form-item><form></form><form-item></form-item>

    Perbezaan daripada komponen bentuk elemen-ui

Pengesahan borang tidak lagi menetapkan gaya kotak input dan sebarang bentuk borang, tetapi melalui penyesuaian Ubah suai gaya untuk memaparkan gesaan pengesahan; ini sangat sesuai dengan perubahan yang tidak berkesudahan dalam
    draf reka bentuk UI
  • pada terminal mudah alih, sebagai contoh, borang yang sama mempunyai dua gaya kotak input yang berbeza; masa, ia tidak menjejaskan gaya lain Penggunaan perpustakaan, kerana pengesahan borang

    tidak akan menjejaskan mana-mana elemen dalam slot. <form-item></form-item>

    Pilihan data pengesahan borang hanya mengekalkan medan
  • (lihat di bawah kerana status pengesahan komponen borang dialih keluar,
  • tetapan acara ini tidak diperlukan ;

    digantikan dengan 4 Ambil perhatian bahawa dalam program mini WeChat, parameter yang diluluskan oleh mana-mana komponen akan ditapis untuk meninggalkan jenis trigger asas, jadi pattern ini digunakan dalam persekitaran program mini Apabila , tambah reg pada penghujung, perkara yang sama berlaku untuk json. reg.toString()validator

    /** 表单规则类型 */
    export interface TheFormRulesItem {
      /** 是否必填项 */
      required?: boolean
      /** 提示字段 */
      message?: string
      /** 指定类型 */
      type?: "number" | "array"
      /**
       * 自定义的校验规则(正则)
       * - 考虑到微信一些特殊的抽风机制,在微信小程序中,除`number|string|object|undefined|null`这几个基础类型外,其他类型是会被过滤掉,所以这里在写正则的时候,在末尾加上`.toString()`即可
       */
      reg?: string // | RegExp
    }
    
    /** 表单规则类型 */
    export type TheFormRules = { [key: string]: Array<TheFormRulesItem> };

Saya tidak tahu sama ada anda pernah menemui dalam pengesahan bentuk panjang yang lalu, selepas mengklik pengesahan, kerana halaman itu terlalu panjang, jadi anda tidak tahu item borang yang mana Jika pengesahan gagal, anda perlu menyemak imbas dan mencari item yang sepadan untuk mengoptimumkan pengalaman pengesahan borang sebelumnya, operasi menatal ke kedudukan yang sepadan selepas pengesahan ditambah di sini, yang lebih banyak; selaras dengan pengalaman pengguna terminal mudah alih.
  • Mekanisme pencetus pengesahan borang: Kita semua tahu bahawa mekanisme pencetus
  • adalah untuk memilih masa pencetus dengan menyatakan
  • , jadi selepas saya mengeluarkannya di sini, ini bermakna bahawa tiada operasi sedemikian untuk dicetuskan; dan apa yang saya pilih adalah untuk secara aktif memanggil kaedah pengesahan

    dan element-ui untuk mencetuskan pengesahan masa nyata Apabila pengesahan gagal, simpan yang gagal dalam pembolehubah, dan kemudian menentukurkannya setiap kali data berubah. Selepas pengesahan diluluskan, item pengesahan masa nyata akan dialih keluar dengan cara ini, berbanding dengan trigger peristiwa mengikat, pengesahan masa nyata akan menjimatkan banyak panggilan kod dan mekanisme berjalan, dan kod boleh menjadi lebih elegan dan diperkemas. validate

非uni-app平台的移植

除了更换标签之外,几乎不用做任何的修改就可以复制粘贴到其他项目中去,唯一要修改的就是自定义事件uni.$onuni.$offuni.$emit;这里可以自己实现,又或者用其他库去代替,js实现自定义事件派发代码如下:

function moduleEvent() {
  /** 
  * 事件集合对象
  * @type {{[key: string]: Array<Function>}}
  */
  const eventInfo = {};

  return {
    /**
     * 添加事件
     * @param {string} name 事件名
     * @param {Function} fn 事件执行的函数
     */
    on(name, fn) {
      if (!eventInfo.hasOwnProperty(name)) {
        eventInfo[name] = [];
      }
      if (!eventInfo[name].some(item => item === fn)) {
        eventInfo[name].push(fn);
      }
    },

    /**
     * 解绑事件
     * @param {string} name 事件名
     * @param {Function} fn 事件绑定的函数
     */
    off(name, fn) {
      const fns = eventInfo[name];
      if (fns && fns.length > 0 && fn) {
        for (let i = 0; i < fns.length; i++) {
          const item = fns[i];
          if (item === fn) {
            fns.splice(i, 1);
            break;
          }
        }
      } else {
        console.log("[moduleEvent] => 没有要解绑的事件");
      }
    },

    /**
     * 调用事件
     * @param {string} name 事件名
     * @param {any} params 事件携带参数
     */
    dispatch(name, params) {
      const fns = eventInfo[name];
      if (fns && fns.length > 0) {
        for (let i = 0; i < fns.length; i++) {
          const fn = fns[i];
          fn(params);
        }
      } else {
        console.log("[moduleEvent] => 没有要执行的事件");
      }
    },
  }
}

调用moduleEvent()之后,用变量调用即可,注意当前变量要作为内存常驻使用。

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan komponen pengesahan borang H5 dalam vue3. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Artikel ini dikembalikan pada:亿速云. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Vue.js: Menentukan peranannya dalam pembangunan webVue.js: Menentukan peranannya dalam pembangunan webApr 18, 2025 am 12:07 AM

Peranan vue.js dalam pembangunan web adalah bertindak sebagai rangka kerja JavaScript yang progresif yang memudahkan proses pembangunan dan meningkatkan kecekapan. 1) Ia membolehkan pemaju memberi tumpuan kepada logik perniagaan melalui pengikatan data yang responsif dan pembangunan komponen. 2) Prinsip kerja Vue.js bergantung kepada sistem responsif dan DOM maya untuk mengoptimumkan prestasi. 3) Dalam projek sebenar, adalah amalan biasa untuk menggunakan VUEX untuk menguruskan keadaan global dan mengoptimumkan respons data.

Memahami Vue.js: Terutama rangka kerja frontendMemahami Vue.js: Terutama rangka kerja frontendApr 17, 2025 am 12:20 AM

Vue.js adalah kerangka JavaScript yang progresif yang dikeluarkan oleh You Yuxi pada tahun 2014 untuk membina antara muka pengguna. Kelebihan terasnya termasuk: 1. Pengikatan data responsif, Paparan Kemas Kini Automatik Perubahan Data; 2. Pembangunan komponen, UI boleh dibahagikan kepada komponen bebas dan boleh diguna semula.

Frontend Netflix: Contoh dan Aplikasi React (atau Vue)Frontend Netflix: Contoh dan Aplikasi React (atau Vue)Apr 16, 2025 am 12:08 AM

Netflix menggunakan React sebagai kerangka depannya. 1) Model pembangunan komponen React dan ekosistem yang kuat adalah sebab utama mengapa Netflix memilihnya. 2) Melalui komponen, Netflix memisahkan antara muka kompleks ke dalam ketulan yang boleh diurus seperti pemain video, senarai cadangan dan komen pengguna. 3) Kitaran Hayat DOM dan Komponen Maya React mengoptimumkan kecekapan rendering dan pengurusan interaksi pengguna.

Landskap Frontend: Bagaimana Netflix menghampiri pilihannyaLandskap Frontend: Bagaimana Netflix menghampiri pilihannyaApr 15, 2025 am 12:13 AM

Pilihan Netflix dalam teknologi front-end terutamanya memberi tumpuan kepada tiga aspek: pengoptimuman prestasi, skalabilitas dan pengalaman pengguna. 1. Pengoptimuman Prestasi: Netflix memilih React sebagai kerangka utama dan alat yang dibangunkan seperti SpeedCurve dan Boomerang untuk memantau dan mengoptimumkan pengalaman pengguna. 2. Skalabiliti: Mereka mengamalkan seni bina front-end mikro, memisahkan aplikasi ke dalam modul bebas, meningkatkan kecekapan pembangunan dan skalabilitas sistem. 3. Pengalaman Pengguna: Netflix menggunakan perpustakaan komponen bahan-UI untuk terus mengoptimumkan antara muka melalui ujian A/B dan maklum balas pengguna untuk memastikan konsistensi dan estetika.

React vs Vue: Rangka kerja mana yang digunakan oleh Netflix?React vs Vue: Rangka kerja mana yang digunakan oleh Netflix?Apr 14, 2025 am 12:19 AM

NetflixusesAcustomFrameworkcalled "gibbon" Builtonreact, notreactorsvuedirectly.1) TeamExperience: chectionBasedOnfamiliarity.2) ProjectOplePlexity: VueforsImplerProjects, ReactForComplexones.3)

Pilihan Rangka Kerja: Apa yang mendorong keputusan Netflix?Pilihan Rangka Kerja: Apa yang mendorong keputusan Netflix?Apr 13, 2025 am 12:05 AM

Netflix terutamanya menganggap prestasi, skalabiliti, kecekapan pembangunan, ekosistem, hutang teknikal dan kos penyelenggaraan dalam pemilihan rangka kerja. 1. Prestasi dan Skalabiliti: Java dan Springboot dipilih untuk memproses data besar -besaran dan permintaan serentak yang tinggi. 2. Kecekapan Pembangunan dan Ekosistem: Gunakan React untuk meningkatkan kecekapan pembangunan front-end dan menggunakan ekosistemnya yang kaya. 3. Hutang Teknikal dan Penyelenggaraan Kos: Pilih Node.js untuk membina mikroservis untuk mengurangkan kos penyelenggaraan dan hutang teknikal.

React, Vue, dan Masa Depan Frontend NetflixReact, Vue, dan Masa Depan Frontend NetflixApr 12, 2025 am 12:12 AM

Netflix terutamanya menggunakan React sebagai rangka kerja front-end, ditambah dengan VUE untuk fungsi tertentu. 1) Komponen React dan DOM maya meningkatkan prestasi dan kecekapan pembangunan aplikasi Netflix. 2) VUE digunakan dalam alat dalaman dan projek kecil Netflix, dan fleksibiliti dan kemudahan penggunaannya adalah kunci.

Vue.js di frontend: aplikasi dan contoh dunia nyataVue.js di frontend: aplikasi dan contoh dunia nyataApr 11, 2025 am 12:12 AM

Vue.js adalah rangka kerja JavaScript yang progresif yang sesuai untuk membina antara muka pengguna yang kompleks. 1) Konsep terasnya termasuk data responsif, komponen dan DOM maya. 2) Dalam aplikasi praktikal, ia boleh ditunjukkan dengan membina aplikasi todo dan mengintegrasikan vuerouter. 3) Apabila debugging, disyorkan untuk menggunakan Vuedevtools dan Console.log. 4) Pengoptimuman prestasi boleh dicapai melalui V-IF/V-Show, senarai pengoptimuman rendering, pemuatan asynchronous komponen, dll.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

MinGW - GNU Minimalis untuk Windows

MinGW - GNU Minimalis untuk Windows

Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna

SublimeText3 Linux versi baharu

SublimeText3 Linux versi baharu

SublimeText3 Linux versi terkini