Home > Web Front-end > Vue.js > body text

How Vue+ElementUI handles oversized forms

青灯夜游
Release: 2021-11-22 19:49:49
forward
2207 people have browsed it

This article will take you through how Vue ElementUI handles very large forms. I hope it will be helpful to you!

How Vue+ElementUI handles oversized forms

Due to recent business adjustments in the company, the logic of the previous long form has changed a lot, so I plan to reconstruct it (it was written by a background manager who has resigned. , and there are no comments. One component has 4000 lines written, which is really powerless). For your convenience, I have split the project into 14 components and simplified them.

Overall idea

  • Large forms are split according to business modules
  • Use validate# provided by el-form when saving ##Method for verification (Loop to verify each split component)
  • mixin public extraction of each component (also conducive to the maintenance of later projects)
[Related recommendation: "

vue.js Tutorial"]

Start

    Here we use
  • to split 2 componentsFor example: form1, form2 (for the convenience of readers, do not use names)
  • Why are the two components here
  • ref and model tied together? The determined ones are all form will be explained later (for the convenience of later maintenance)
  • // form1 组件
    
    
    
    // form2 组件
    
    
    Copy after login
    Look at how the parent component is referenced
  • // 父组件
    
    
    Copy after login
    Since the attribute names
  • form1 and form2 in formData are used on the ref of the subform component respectively, they can be Find them in turn during traversal and modify the save function. The code is as follows:
  • methods: {
        save () {
            // 每个表单对象的 key 值,也就是每个表单的 ref 值
            const formKeys = Object.keys(this.formData)
            // 执行每个表单的校验方法
            const valids = formKeys.map(item => this.$refs[item].validForm())
            // 所有表单通过检验之后的逻辑
            if (valids.every(item => item)) {
              console.log(11)
            }
        }
    }
    Copy after login
Answer why the two components

ref and model are bound to form

    By comparison we can find that
  • form1 form2 has common props methods
  • We extract it through mixin
  • export default {
      props: {
        form: {
          required: true,
          type: Object,
          default: () => {}
        },
      },
      methods: {
        validForm () {
          let result = false
          this.$refs.form.validate(valid => valid && (result = true))
          return result
        }
      }
    }
    Copy after login
    Reference the
  • minix in form1 form2 and delete the corresponding properties and methods in the corresponding component
End

    It is very troublesome to solve the extremely large form. Here we only split the components.
  • The linkage between components is also a big difficulty. We will send it out after finishing it next time.
  • You are welcome to discuss how you solved it in the comment area, and you are also welcome to point out the shortcomings to the author
For more programming-related knowledge, please visit:

Introduction to Programming! !

The above is the detailed content of How Vue+ElementUI handles oversized forms. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:juejin.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!