(1)使用ElementUI的表單組件及表單驗證功能
<template>
<div class="add">
<h1>添加用戶</h1>
<el-form
:label-position="labelPosition"
label-width="80px"
:model="customer"
:rules="rules"
ref="ruleForm"
>
<el-form-item label="姓名" prop="name">
<el-input v-model="customer.name"></el-input>
</el-form-item>
<el-form-item
label="電話"
prop="phone">
<el-input v-model="customer.phone"></el-input>
</el-form-item>
<el-form-item label="郵箱" prop="email">
<el-input v-model="customer.email"></el-input>
</el-form-item>
<el-form-item label="個人簡介" prop="desc">
<el-input type="textarea" v-model="customer.desc"></el-input>
</el-form-item>
<el-form-item >
<el-button type="primary" @click="submitForm('ruleForm')">立即創建</el-button>
</el-form-item>
</el-form>
</div>
</template>
data(){
return {
labelPosition: 'right',
customer:{
name:'',
phone:'',
email:'',
desc:''
},
rules:{
name:[
{ required: true, message: '請輸入姓名', trigger: 'blur' },
{ min: 2, max: 8, message: '長度在 2 到 8 個字符', trigger: 'blur' }
],
phone:[
{ required: true, message: '請輸入電話', trigger: 'blur' }
],
email:[
{ required: true, message: '請輸入郵箱', trigger: 'blur' }
],
desc:[
{ required: true, message: '請輸入個人簡介', trigger: 'blur' }
],
}
}
},
(2)使用axios發送post請求添加用戶
我遇到的bug也都寫在註釋的代碼裏了。。。。爲什麼用axios(config)無法把參數傳回給後臺?一定是我學的還太少。。。。。
在請求發送成功後還會調用ElementUI的Message組件,從頂部出現提醒添加成功。並跳轉到列表首頁。
this.$message({
message: '成功添加1位新用戶',
type: 'success'
});
this.$router.push({path:'/customers',query:{alert:'success'}})
全部代碼:
submitForm(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
// alert('submit!');
let newCustomer = {
name: this.customer.name,
phone: this.customer.phone,
email: this.customer.email,
desc: this.customer.desc,
}
console.log(newCustomer)
// let config = {
// url:'http://localhost:3000/users',
// methods:'post',
// data: newCustomer
// }
axios.post('http://localhost:3000/users',newCustomer)
.then((response) => {
console.log(response)
this.$message({
message: '成功添加1位新用戶',
type: 'success'
});
this.$router.push({path:'/customers',query:{alert:'success'}})
})
//爲什麼用axios(config)無法把參數傳回給後臺?
// axios(config)
// .then((response) => {
// console.log(response)
// })
} else {
console.log('error submit!!');
return false;
}
});
},
對於一個寫後端的人來說,在回到首頁發現真的有新數據時,對於居然不需要使用數據庫也可以添加數據感覺真是太神奇了。。。。。。。