Vue.js组件props数据验证实现详解

 更新时间:2019年10月19日 10:07:28   作者:吴声子夜歌  
这篇文章主要为大家详细介绍了Vue.js组件props数据验证的实现方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了Vue.js组件props数据验证的具体代码,供大家参考,具体内容如下

数据验证

一般当组件需要提供给别人使用时,就需要使用数据验证。

示例:

<script>
  Vue.component('my-component',{
    props:{
      //必须是数字类型
      propA: Number,
      //必须是字符串或数字类型
      propB:[String, Number],
      //布尔值,如果没有定义,默认值就是true
      propC:{
        type: Boolean,
        default: true
      },
      //数字,而且是必选
      propD: {
        type: Number,
        required: true
      },
      //如果是数组或对象,默认值必须是一个函数来返回
      propE: {
        type: Array,
        default: function () {
          return {};
        }
      },
      //自定义验证函数
      propF: {
        viladator: function (value) {
          return value > 10;
        }
      }
    }
  });
</script>

验证的type类型可以是:

  • String
  • Number
  • Boolean
  • Object
  • Array
  • Function

type也可以是一个自定义构造器,使用instanceof检测。当prop验证失败时,开发版本下会在控制台抛出一条警告。

实例:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <script src="https://unpkg.com/vue/dist/vue.js"></script>
  <title>组件:参数验证</title>
</head>
<body>
  <!--为组件中接受到的变量进行逻辑验证-->
  <div id="myApp">
    <h1>身世之谜</h1>
    <show-member-info name="koma" :age="25" :detail="{address:'earth',language:'世界语'}"></show-member-info>
  </div>
  <script>
    Vue.component('show-member-info',{
      props: {
        name: {
          type: String,//类型
          required: true,//必选,不选报错
        },
        age: {
          type: Number,
          validator: function (value) {
            return value >= 0 && value <=130;
          }
        },
        detail: {
          type: Object,
          default: function () {
            return {
              address: 'US',
              language: 'English'
            };
          }
        }
      },
      template: '<div>姓名:{{this.name}}<br/>'
          + '年龄:{{this.age}}岁<br/>'
          + '地址:{{this.detail.address}}<br/>'
          + '语言:{{this.detail.language}}</div>'
    });
    var myApp = new Vue({
      el: '#myApp'
    });
  </script>
</body>
</html>

更多教程点击《Vue.js前端组件学习教程》,欢迎大家学习阅读。

关于vue.js组件的教程,请大家点击专题vue.js组件学习教程进行学习。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Vue2.x Todo之自定义指令实现自动聚焦的方法

    Vue2.x Todo之自定义指令实现自动聚焦的方法

    我们希望用户双击 todo 进入编辑状态后输入框自动获取焦点,而不是需要先手动点一下。这篇文章主要介绍了Vue 2.x Todo之自定义指令实现自动聚焦,非常具有实用价值,需要的朋友可以参考下
    2019-01-01
  • vue使用sass根据环境进行样式判断区分方式

    vue使用sass根据环境进行样式判断区分方式

    这篇文章主要介绍了vue使用sass根据环境进行样式判断区分方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • vue如何实现路由跳转到外部链接界面

    vue如何实现路由跳转到外部链接界面

    这篇文章主要介绍了vue如何实现路由跳转到外部链接界面,具有很好的参考价值,希望对大家有所帮助。
    2022-10-10
  • 一文搞懂vue编译器(DSL)原理

    一文搞懂vue编译器(DSL)原理

    本文主要介绍了一文搞懂vue编译器(DSL)原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • Vue.js自定义事件的表单输入组件方法

    Vue.js自定义事件的表单输入组件方法

    下面小编就为大家分享一篇Vue.js自定义事件的表单输入组件方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • vue实现input框禁止输入标签

    vue实现input框禁止输入标签

    这篇文章主要介绍了vue实现input框禁止输入标签,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • vue3 element plus table selection展示数据,默认选中功能方式

    vue3 element plus table selection展示数据,默认选中功能方式

    这篇文章主要介绍了vue3 element plus table selection展示数据,默认选中功能方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • vue组件historyApiFallback作用详解

    vue组件historyApiFallback作用详解

    这篇文章主要为大家介绍了vue组件historyApiFallback作用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • vue-router配合ElementUI实现导航的实例

    vue-router配合ElementUI实现导航的实例

    下面小编就为大家分享一篇vue-router配合ElementUI实现导航的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-02-02
  • 详解Vue-cli webpack移动端自动化构建rem问题

    详解Vue-cli webpack移动端自动化构建rem问题

    这篇文章主要介绍了详解Vue-cli webpack移动端自动化构建rem问题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04

最新评论