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


Posted in Javascript onOctober 19, 2019

本文实例为大家分享了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组件学习教程进行学习。

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

Javascript 相关文章推荐
理解JavaScript中的事件
Sep 23 Javascript
Jquery Ajax请求代码(2)
Jan 07 Javascript
基于jquery的15款幻灯片插件
Apr 10 Javascript
JavaScript实现的日期控件具体代码
Nov 18 Javascript
bootstrap table 服务器端分页例子分享
Feb 10 Javascript
利用BootStrap弹出二级对话框的简单实现方法
Sep 21 Javascript
详谈js使用in和hasOwnProperty获取对象属性的区别
Apr 25 Javascript
vue实现自定义多选与单选的答题功能
Jul 05 Javascript
详解解决小程序中webview页面多层history返回问题
Aug 20 Javascript
layui之table checkbox初始化时选中对应选项的方法
Sep 02 Javascript
Antd的Table组件嵌套Table以及选择框联动操作
Oct 24 Javascript
解决vue项目打包上服务器显示404错误,本地没出错的问题
Nov 03 Javascript
Vue.js组件使用props传递数据的方法
Oct 19 #Javascript
Vue.js数字输入框组件使用方法详解
Oct 19 #Javascript
JavaScript闭包相关知识解析
Oct 19 #Javascript
Vue.js组件通信之自定义事件详解
Oct 19 #Javascript
Vue.js自定义指令学习使用详解
Oct 19 #Javascript
Vue.js标签页组件使用方法详解
Oct 19 #Javascript
基于JavaScript获取base64图片大小
Oct 18 #Javascript
You might like
PHP 手机归属地查询 api
2010/02/08 PHP
yii2利用自带UploadedFile实现上传图片的示例
2017/02/16 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
2017/08/30 PHP
Prototype使用指南之hash.js
2007/01/10 Javascript
javascript下arguments,caller,callee,call,apply示例及理解
2009/12/24 Javascript
JS 实现导航栏悬停效果(续2)
2013/09/24 Javascript
Blocksit插件实现瀑布流数据无限( 异步)加载
2014/06/20 Javascript
JS实现IE状态栏文字缩放效果代码
2015/10/24 Javascript
实例详解jQuery Mockjax 插件模拟 Ajax 请求
2016/01/12 Javascript
AngularJS中如何使用echart插件示例详解
2016/10/26 Javascript
AngularJS入门教程之表单校验用法示例
2016/11/02 Javascript
浅谈Emergence.js 检测元素可见性的 js 插件
2017/11/18 Javascript
微信小程序 拍照或从相册选取图片上传代码实例
2019/08/28 Javascript
Echarts实现多条折线可拖拽效果
2019/12/19 Javascript
[01:01:29]2018DOTA2亚洲邀请赛 4.4 淘汰赛 VP vs Liquid 第一场
2018/04/05 DOTA
Python struct.unpack
2008/09/06 Python
用Python的pandas框架操作Excel文件中的数据教程
2015/03/31 Python
Python备份目录及目录下的全部内容的实现方法
2016/06/12 Python
python中使用正则表达式的连接符示例代码
2017/10/10 Python
python3 破解 geetest(极验)的滑块验证码功能
2018/02/24 Python
VSCode下好用的Python插件及配置
2018/04/06 Python
Python实现获取前100组勾股数的方法示例
2018/05/04 Python
python如何发布自已pip项目的方法步骤
2018/10/09 Python
利用selenium爬虫抓取数据的基础教程
2019/06/10 Python
python3获取当前目录的实现方法
2019/07/29 Python
python实现树的深度优先遍历与广度优先遍历详解
2019/10/26 Python
详解Django CAS 解决方案
2019/10/30 Python
移动端html5判断是否滚动到底部并且下拉加载
2019/11/19 HTML / CSS
奥地利时尚、美容、玩具和家居之家:Kastner & Öhler
2020/04/26 全球购物
物理系毕业生自荐信
2013/11/01 职场文书
自我鉴定怎么写
2013/12/05 职场文书
《邮票齿孔的故事》教学反思
2014/02/22 职场文书
《我不是最弱小的》教学反思
2014/02/23 职场文书
2014年接待工作总结
2014/11/26 职场文书
python内置模块之上下文管理contextlib
2022/06/14 Python
SQL Server数据库的三种创建方法汇总
2023/05/08 MySQL