配置一个vue3.0项目的完整步骤

2020-06-16 06:11:25易采站长站整理

安装:


yarn add vee-validate

配置:

在main.js中引入vee-validate


// 引入表单验证
import VeeValidate, {
Validator
} from 'vee-validate'
Vue.use(VeeValidate, {
fieldsBagName: 'vee-fields'
})

// 汉化表单验证
import zhCN from 'vee-validate/dist/locale/zh_CN'
Validator.localize('zh_CN',
zhCN)

修改login.vue 添加表单验证,以用户名为例,我的要求是用户名不能为空,添加的规则如下:


<el-input
v-model="form.name"
v-validate="{required:true}"
name="name"
:class="{'is-danger':errors.has('name')}"
data-vv-as="用户名"
placeholder="请输入用户名"
></el-input>

v-validate 里配置的是验证规则
name 是字段名称,这个名称可以自己定
is-danger 是我为报错的字段配置的一个class名,如果erros.has(字段名)不为空,则说明验证没通过,就添加该class。

is-danger 样式如下,把错误表单的边框设置成红色,目的是为了突出显示错误信息。至于为什么加

/deep/
前缀,是因为
el-input
组件是element组件,我们在
style
中设置的样式是局部的,没法应用的到element子组件上,所以需要加上/deep/。需不需要加你自己视情况而定。


/deep/ .is-danger input {
border-color: #ff3860;
}

接下来,我们要考虑错误信息怎么显示。我的做法是直接在表单下显示错误信息就可以,缺点是如果错误信息很多,每个输入框都有一个错误信息的话,表单就会变得很高。

因为每个输入框都要显示错误信息,所以我觉得把显示错误信息的功能做成组件比较好,这样可以通用,省了很多重复代码。

在components文件夹下新建common文件夹,再在commen文件夹下新建

FormErrorMessage.vue
组件

代码如下:


<template>
<div class="help is-danger">
<slot></slot>
</div>
</template>
<script>
export default {
name: 'FormErrorMessage'
}
</script>
<style scoped>
.help {
font-size: 0.75rem;
margin-top: 0.25rem;
line-height: 0.75rem;
}

.help.is-danger {
color: #ff3860;
}
</style>

在Login.vue中引入


import FormErrorMessage from '../components/common/FormErrorMessage.vue'

在components中配置