Javascript / Vue3 - Mixins - 默认返回'null'

Posted

技术标签:

【中文标题】Javascript / Vue3 - Mixins - 默认返回\'null\'【英文标题】:Javascript / Vue3 - Mixins - Return 'null' by defaultJavascript / Vue3 - Mixins - 默认返回'null' 【发布时间】:2021-08-28 20:40:30 【问题描述】:

我正在构建一个基本的“必需”表单验证功能。函数如下:

JS:

export default 
    methods: 
        required(string) 
            if (!string) 
                return 'This field is required!'
            
        
    

html

<input id="username"
  v-model="credentials.username"
  type="text"
  name="username"
/>
<span> required(credentials.username) </span>

上面的效果很好。如果我开始输入输入,则返回值变为空。如果我清空输入,返回值按预期返回,“此字段是必需的”。

我的问题是,如何将值返回为空/空白开始?预期流量为:

返回值为空/空白开始 用户开始输入,没有任何变化,因为 string.length != 0 用户删除所有字符,导致string.length == 0,导致返回值为'This field is required!'

【问题讨论】:

【参考方案1】:

一种解决方案是使用input-event 处理程序(为输入中的每个新值调用),它设置一个标志以指示该字段是“脏”的。然后根据标志有条件地渲染验证结果(&lt;span&gt;):

    声明一个名为"dirty"的数据属性:

    export default 
      data() 
        return 
          dirty: false,
        
      
    
    

    在模板中,在设置dirty 标志的&lt;input&gt; 上添加input-event 处理程序:

    <input @input="dirty = true">
    

    另外,基于dirty 有条件地渲染&lt;span&gt; 字段:

    <span v-if="dirty"> required(credentials.username) </span>
    

demo

【讨论】:

以上是关于Javascript / Vue3 - Mixins - 默认返回'null'的主要内容,如果未能解决你的问题,请参考以下文章

Mixin实现组件功能的复用 全局配置Mixin

uni-app——Vue3简单整合uView@1.8.4解决方案

JavaScript Mixin函数

Javascript库中的mixin()和extend()有啥区别

0why vue3

Vue3中的大热门——其他技术