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 相关文章推荐
非主流的textarea自增长实现js代码
Dec 20 Javascript
本地图片预览(支持IE6/IE7/IE8/Firefox3)经验总结
Mar 25 Javascript
Javascript中的五种数据类型详解
Dec 26 Javascript
Javascript中的call()方法介绍
Mar 15 Javascript
js移动焦点到最后位置的简单方法
Nov 25 Javascript
微信小程序注册60s倒计时功能 使用JS实现注册60s倒计时功能
Aug 16 Javascript
webpack配置打包后图片路径出错的解决
Apr 26 Javascript
微信小程序实现跑马灯效果完整代码(附效果图)
May 30 Javascript
JavaScript实现JSON合并操作示例【递归深度合并】
Sep 07 Javascript
vuejs router history 配置到iis的方法
Sep 20 Javascript
layer.open 子页面弹出层向父页面传输数据的例子
Sep 26 Javascript
微信小程序实现购物车小功能
Dec 30 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实现小写金额转换大写金额的代码(精确到分)
2012/01/10 PHP
Fine Uploader文件上传组件应用介绍
2013/01/06 PHP
yii操作cookie实例简介
2014/07/09 PHP
浅谈PHP值mysql操作类
2016/06/29 PHP
如何在centos8自定义目录安装php7.3
2019/11/28 PHP
一段非常简单的让图片自动切换js代码
2006/11/10 Javascript
JQuery自适应IFrame高度(支持嵌套 兼容IE,ff,safafi,chrome)
2011/03/28 Javascript
8个超棒的学习 jQuery 的网站 推荐收藏
2011/04/02 Javascript
jquery实现excel导出的方法
2013/04/04 Javascript
JavaScript DOM基础
2015/04/13 Javascript
Ubuntu系统下Angularjs开发环境安装
2016/09/01 Javascript
jQuery实现的checkbox级联选择下拉菜单效果示例
2016/12/26 Javascript
vue-router路由简单案例介绍
2017/02/21 Javascript
Vue刷新修改页面中数据的方法
2018/09/16 Javascript
React 组件渲染和更新的实现代码示例
2019/02/21 Javascript
create-react-app中添加less支持的实现
2019/11/15 Javascript
vue搜索页开发实例代码详解(热门搜索,历史搜索,淘宝接口演示)
2020/04/11 Javascript
浅谈Vue开发人员的7个最好的VSCode扩展
2021/01/20 Vue.js
[02:57]2014DOTA2国际邀请赛-观众采访
2014/07/19 DOTA
举例讲解Python中的身份运算符的使用方法
2015/10/13 Python
Python 实现 贪吃蛇大作战 代码分享
2016/09/07 Python
使用Flask集成bootstrap的方法
2018/07/24 Python
seek引发的python文件读写的问题及解决
2019/07/26 Python
使用 Python 清理收藏夹里已失效的网站
2019/12/03 Python
Python统计学一数据的概括性度量详解
2020/03/03 Python
python 判断txt每行内容中是否包含子串并重新写入保存的实例
2020/03/12 Python
不到20行实现Python代码即可制作精美证件照
2020/04/24 Python
CSS3 简单又实用的5个属性
2010/03/04 HTML / CSS
css3的图形3d翻转效果应用示例
2014/04/08 HTML / CSS
Java基础知识面试要点
2016/07/29 面试题
高二美术教学反思
2014/01/14 职场文书
党的群众路线教育实践活动心得体会(教师)
2014/10/31 职场文书
会议主持人开场白台词
2015/05/28 职场文书
大学校园餐饮创业计划书
2019/08/07 职场文书
js前端设计模式优化50%表单校验代码示例
2022/06/21 Javascript
Win11 Build 22000.829更新补丁KB5015882发布(附更新修复内容汇总)
2022/07/15 数码科技