我有一个电子邮件字段
<template>
<v-form v-model="valid">
<v-text-field
label="Name"
v-model="name"
:rules="nameRules"
:counter="10"
required
></v-text-field>
<v-text-field
label="E-mail"
v-model="email"
:rules="emailRules"
></v-text-field>
</v-form>
</template>
Run Code Online (Sandbox Code Playgroud)
和验证规则,例如,
<script>
export default {
data: () => ({
valid: false,
name: '',
nameRules: [
v => !!v || 'Name is required',
v => v.length <= 10 || 'Name must be less than 10 characters'
],
email: '',
emailRules: [
v => /^\w+([.-]?\w+)*@\w+([.-]?\w+)*(\.\w{2,3})+$/.test(v) || 'E-mail must be valid'
]
})
}
</script>
Run Code Online (Sandbox Code Playgroud)
但它会在我提交表单时验证表单,只有当 email.length>0 时我才需要验证电子邮件。即电子邮件不是必填字段,但如果输入电子邮件,则必须进行验证。
也试过了,当我:rules="[emailRules.em]" 像这样在脚本中改变时
emailRules: {
em:v => …Run Code Online (Sandbox Code Playgroud) 我 google-oauth.js在 nuxt 应用程序中有插件。我将插件加载到nuxt.config.js文件中。
plugins: [
{ src: '@plugins/google-oauth.js', ssr: false }
],
Run Code Online (Sandbox Code Playgroud)
而且效果很好。但这会在应用程序安装之前加载插件。我只需要 1 个组件。
我在组件页面中尝试了以下操作
export default {
plugins: [{ src: '@plugins/google-oauth.js', ssr: false }],
components: {
CreateEmail
},
/* */
}
Run Code Online (Sandbox Code Playgroud)
但它不加载页面。