vue+element-ui
第一章 Form表单的校验与按钮调用页面(router跳转页面)
前言
作为一个努力学习(moyu)后端的有为青年,在公司的(qiangpo)安排下不得不向前端进行猛烈的进攻,一顿乱锤。这里是帮助那些急切想要快速完成某一个前端任务或者达成自己某一种目的的前端小白,希望对各位有所帮助,如有不足,多多指教。
一、vue是什么?
vue是一个用于创建用户界面的开源JavaScript框架,也是一个创建单页应用的Web应用框架。
组件模板: element-ui(这里面有详细的帮助文档手册,比如你需要一个Radio 单选框,就可以直接在里面找到,然后在你的项目上调用)
二、表单验证
1.element-ui的form模板
代码如下(示例):
<template>
<el-form :model="ruleForm" :rules="rules" ref="ruleFormCheck" label-width="100px" 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="region">
<el-select v-model="ruleForm.region" placeholder="请选择活动区域">
<el-option label="区域一" value="shanghai"></el-option>
<el-option label="区域二" value="beijing"></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm('ruleForm')">立即创建</el-button>
<el-button @click="resetForm('ruleForm')">重置</el-button>
</el-form-item>
</el-form>
</template>
<script>
export default {
data() {
return {
ruleForm: {
name: '',
region: '',
type: [],
resource: '',
desc: ''
},
rules: {
name: [
{ required: true, message: '请输入活动名称', trigger: 'blur' },
{ min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
],
region: [
{ required: true, message: '请选择活动区域', trigger: 'change' }
],
}
};
},
methods: {
submitForm() {
this.$refs['ruleFormCheck'].validate((valid) => {
if (valid) {
alert('submit!');
} else {
console.log('error submit!!');
return false;
}
});
},
resetForm() {
this.$refs['ruleFormCheck'].resetFields();
}
}
}
</script>
<style>
</style>
2.前端展示
3.代码详解
代码如下(示例):
<el-form :model="ruleForm" :rules="rules"
:ref="ruleFormCheck">
</el-form>
:model=“ruleForm” 绑定对应名称的表单
:ref="ruleFormCheck"绑定校验的表单名称
this.$refs['ruleFormCheck'].validate((valid) => {
if (valid) {
alert('submit!');
} else {
console.log('error submit!!');
return false;
}
});
:rules=“rules” 绑定对应名称的校验集合 对应的是data() → return →
rules: {
name: [
{ required: true, message: '请输入活动名称', trigger: 'blur' }
}
ref="ruleForm"
prop对应的就是rules对应的需要校验的名称→
<el-form-item label="活动名称" prop="name">
<el-input v-model="ruleForm.name"></el-input>
</el-form-item>
4.快速调用页面
这里提供的是在已有的vue项目上代码的实现
- router的index.js文件修改
{
path: '/open',
component: _import('bom/snapshot'),
name: 'open',
meta: { title: '名称' }
},
- 按钮调用
通过@click调用方法,然后在方法中调用以下代码即可跳转页面
this.$router.push({
name: 'open',
params: {
id: row.id,
name: row.name,
time: row.time
}
})
总结
大家都在说面向百度编程,说起来很简单,只要一百度就能解决了,但实际上像一只无头苍蝇一样搜索一大堆网页之后还是无法解决问题的比比皆是,这段时间我学习到最多的就是:
- 你的问题是什么,出现问题的根源是什么,即使你是问大佬,你也要想好问什么,别人才能给你解决,《如何提问》这可能是贯穿我们代码生涯的螺旋式上升空间。一个优秀的程序员是在提问中成长的。
- 善用框架,虽然第一次做vue项目,我仔细去看element-ui的东西,其实发现我之前的问题在里面大部分都有,只是自己太过浮躁,不愿意仔细去看,才导致无法解决。它是什么→初步的了解→模仿
- 有一点啰嗦,希望各位一起成长,努力,奋斗。
既然无法逃避,那就好好享受。
|