Home  >  Article  >  Web Front-end  >  Detailed explanation of vue.js front-end and back-end data interaction steps

Detailed explanation of vue.js front-end and back-end data interaction steps

php中世界最好的语言
php中世界最好的语言Original
2018-04-27 09:24:077812browse

This time I will bring you a detailed explanation of the steps of vue.js front-end and back-end data interaction. What are the precautions for vue.js front-end and back-end data interaction? The following is a practical case, let's take a look.

When front-end newbies first started making pages, we often used forms in our front-end pages, so learning to submit forms is also a basic skill. In fact, it can be achieved with ajax, but its original syntax is a bit awkward. . . Forehead . . . It's complicated, so here is a way to use vue-resource to submit data to the backend.

(1) The first step is to write a form in the template;

<el-form :model="ruleForm" :rules="rules" ref="ruleForm" class="demo-ruleForm">
 <el-form-item label="用户名" prop="name">
   <el-input v-model="ruleForm.name"></el-input>
 </el-form-item>
 <el-form-item label="用户类型" prop="type">
   <el-select v-model="ruleForm.type" placeholder="请选择专利类型" style="width:500px;">
 <el-option label="一级管理员" value="1"></el-option>
 <el-option label="二级管理员" value="2"></el-option>
 <el-option label="三级管理员" value="3"></el-option>
 <el-option label="普通用户" value="4"></el-option>
   </el-select>
 </el-form-item>
 <el-form-item label="出生日期" prop="date">
   <el-input v-model="ruleForm.date"></el-input>
 </el-form-item>
 <el-form-item label="备注" prop="intro">
   <el-input type="textarea" v-model="ruleForm.intro" :rows="10"></el-input>
 </el-form-item>
 <el-form-item>
   <el-button type="primary" @click="submitForm(&#39;ruleForm&#39;)">提交</el-button>
 </el-form-item>
</el-form>

(2) Define the fields of the form content and the constraint rules of the form in the data;

data() {
   return {
    ruleForm: {
       name: '',
       type: '',
       date: '',
       intro: '',
     }
   }
 rules: {
     name: [
      { required: true, message: '请输入用户名', trigger: 'blur' },
      { min: 1, max: 20, message: '长度在 1 到20个字符', trigger: 'blur' }
     ],
     type: [
      { required: true, message: '请选择用户类型', trigger: 'change' }
     ],
     date: [
      { required: true, message: '请输入出生日期', trigger: 'blur' },
      { min: 1, max: 100, message: '长度在 1 到 100 个字符', trigger: 'blur' }
     ],
     intro: [
      { required: true, message: '请输入备注', trigger: 'blur' },
      { min: 50, max: 500, message: '请输入至少50个字', trigger: 'blur' }
     ],
    }
}

(3) Define the method of submitting the form

methods:{
submitForm(formName) {
      this.$refs[formName].validate((valid) => {
        if (valid) {
      this.$http.get(baseURL+"api/create?table=user&"+getParamsString(param)).then(function(res){
            if(res.body==1){
              this.$alert("提交成功", '提交结果', {
                confirmButtonText: '确定',
                type: 'success',
                callback: action => {
                },
              });
            }
            else{
              this.$alert("提交失败", '提交结果', {
                confirmButtonText: '确定',
                type: 'warning',
                callback: action => {
                },
              });
            }
          })
        } else {
          console.log('error submit!!');
          return false;
        }
      });
    }
}

The baseURL and api introduction in the above submission function are as follows:

Here I will introduce to you a way to use vue-resource from the future Method for requesting data from the client.

For example, request a table from the backend,

(1) First, return a msg:[] array in data to receive the table data;

(2) Define a request function in the method. For example, our function name here is defined as showDetails;

methods:{
  showDetails:function(){
    this.$http.get(baseURL+"api/条件").then(function(res){
      this.msg = res.body;
    });
  }
}

Here is the path of the baseURL project. If the project is deployed on the server, the general format is www.XXX.com/project name ;The following api is the back-end encapsulated api interface; and then the conditions are query, delete and other statements on the table. For example, if you query the table named student and need to obtain the confidence of students with student ID 40001, the query statement can be written as 'query?table=student&studentIDeq=40001'. What needs to be noted is that it is related to the operation fields of the database (in layman's terms, It can be understood that the fields defined by the backend) should be enclosed in quotation marks, while the fields defined by the front end should be placed outside the quotation marks;

(3) Finally, don’t forget that this request operation is not called and is executed by default. So it needs to be executed in real time in mounted;

mounted: function (){
   this.showDetails();
}

Okay, this function is completed. You can view the data obtained from the backend through the network of the browser console, or you can also see it through the console printout. La! ! !

I believe you have mastered the method after reading the case in this article. For more exciting information, please pay attention to other related articles on the php Chinese website!

Recommended reading:

How to adapt images to model height in WeChat applet

Press specified when uploading jquery images Scale preview (with code)

The above is the detailed content of Detailed explanation of vue.js front-end and back-end data interaction steps. For more information, please follow other related articles on the PHP Chinese website!

Statement:
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