vue.js前后端数据交互之提交数据操作详解


Posted in Javascript onApril 24, 2018

本文实例讲述了vue.js前后端数据交互之提交数据操作。分享给大家供大家参考,具体如下:

前端小白刚开始做页面的时候,我们的前端页面中经常会用到表单,所以学会提交表单也是一个基本技能,其实用ajax就能实现,但他的原始语法有点。。。额 。。。复杂,所以这里给大家提供一种用vue-resource向后端提交数据。

(1)第一步,先在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('ruleForm')">提交</el-button>
 </el-form-item>
</el-form>

(2)在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)定义提交表单的方法

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;
        }
      });
    }
}

上面提交函数里面的baseURL以及api的介绍补充说明如下:

这里再向大家介绍一种用vue-resource从后端请求数据的方法。

比如说从后端请求一张表过来,

(1)首先,在data中return一个msg:[]数组来接收表的数据;

(2)在方法中定义一个请求函数,比如我们这里函数名定义为showDetails;

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

这里baseURL项目的路径,如果项目部署在服务器上面一般格式为www.XXX.com/项目名;之后的api是后端封装的api接口;然后条件就是对表的查询,删除等语句。比如对名为student的表进行查询,需要获取studentID为40001的学生信心,则查询语句可写为‘query?table=student&studentIDeq=40001',需要注意的是与有关数据库的操作字段(通俗点讲,可以理解为后端定义的字段)要加引号,而前端定义的字段要放在引号外面;

(3)最后,别忘了这个请求操作是没有调用,是默认执行的,所以要在mounted里面实时执行;

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

好了,这个函数就完成了,你可以通过浏览器控制台的network查看从后端取得的数据,或者通过console打印输出也可以看到啦!!!

当然啦。前提是你的数据库里面有一张名为user的表,表里面有name,type,date,intro几个字段,并且后端的接口啥的都已经定义好的情况下,不然是不会成功的哦

希望本文所述对大家vue.js程序设计有所帮助。

Javascript 相关文章推荐
javascript之函数直接量(function(){})()
Jun 29 Javascript
S2SH整合JQuery+Ajax实现登录验证功能实现代码
Jan 30 Javascript
js Calender控件使用详解
Jan 05 Javascript
JS实现部分HTML固定页面顶部随屏滚动效果
Dec 24 Javascript
利用JQuery写一个简单的异步分页插件
Mar 07 Javascript
JavaScript toUpperCase()方法使用详解
Aug 26 Javascript
详解js树形控件—zTree使用总结
Dec 28 Javascript
jquery 禁止鼠标右键并监听右键事件
Apr 27 jQuery
详解Vue 事件修饰符capture 的使用
Dec 29 Javascript
JavaScript定时器设置、使用与倒计时案例详解
Jul 08 Javascript
小程序如何支持使用 async/await详解
Sep 12 Javascript
javascript条件式访问属性和箭头函数介绍
Nov 17 Javascript
vue router动态路由下让每个子路由都是独立组件的解决方案
Apr 24 #Javascript
vue+webpack实现异步加载三种用法示例详解
Apr 24 #Javascript
vue中$refs的用法及作用详解
Apr 24 #Javascript
vue实现选项卡及选项卡切换效果
Apr 24 #Javascript
Vue手把手教你撸一个 beforeEnter 钩子函数
Apr 24 #Javascript
js 图片转base64的方式(两种)
Apr 24 #Javascript
react配合antd组件实现的管理系统示例代码
Apr 24 #Javascript
You might like
乱谈我对耳机、音箱的感受
2021/03/02 无线电
php file_put_contents()功能函数(集成了fopen、fwrite、fclose)
2011/05/24 PHP
PHP AjaxForm提交图片上传并显示图片源码
2016/11/29 PHP
浅谈PHP的数据库接口和技术
2016/12/09 PHP
laravel-admin表单提交隐藏一些数据,回调时获取数据的方法
2019/10/08 PHP
JQuery切换显示的效果实例代码
2013/02/27 Javascript
用JavaScript获取DOM元素位置和尺寸大小的方法
2013/04/12 Javascript
基于jquery插件制作左右按钮与标题文字图片切换效果
2013/11/07 Javascript
JS两种定义方式的区别、内部原理
2013/11/21 Javascript
jquery遍历函数siblings()用法实例
2015/12/24 Javascript
学习AngularJs:Directive指令用法(完整版)
2016/04/26 Javascript
JS禁止查看网页源代码的实现方法
2016/10/12 Javascript
JS实现简单的二元方程计算器功能示例
2017/01/03 Javascript
Vuex之理解state的用法实例
2017/04/19 Javascript
详解layui弹窗父子窗口之间传参数的方法
2018/01/16 Javascript
详解基于Node.js的HTTP/2 Server实践
2018/05/31 Javascript
小试SVG之新手小白入门教程
2019/01/08 Javascript
jQuery实现全选、反选和不选功能的方法详解
2019/12/04 jQuery
[20:21]《一刀刀一天》第十六期:TI国际邀请赛正式打响,总奖金超过550万
2014/05/23 DOTA
[01:02:02]DOTA2上海特级锦标赛A组败者赛 EHOME VS CDEC第二局
2016/02/25 DOTA
Python列表(list)常用操作方法小结
2015/02/02 Python
在Python的Django框架上部署ORM库的教程
2015/04/20 Python
python 上下文管理器使用方法小结
2017/10/10 Python
django加载本地html的方法
2018/05/27 Python
python-pyinstaller、打包后获取路径的实例
2019/06/10 Python
Python音频操作工具PyAudio上手教程详解
2019/06/26 Python
python 判断linux进程,并杀死进程的实现方法
2019/07/01 Python
html标签之Object和EMBED标签详解
2013/07/04 HTML / CSS
俄罗斯在线手表和珠宝商店:AllTime
2019/09/28 全球购物
Edwaybuy西班牙:小米在线商店
2019/12/04 全球购物
报纸媒体创意广告词
2014/03/17 职场文书
小城镇建设汇报材料
2014/08/16 职场文书
党员年终个人总结
2015/02/14 职场文书
教师专业技术工作总结2015
2015/05/13 职场文书
搞笑的婚礼主持词
2015/06/29 职场文书
利用前端HTML+CSS+JS开发简单的TODOLIST功能(记事本)
2021/04/13 Javascript