vue prop传值类型检验方式


Posted in Javascript onJuly 30, 2020

prop 传值检验规则

如果是 prop 是静态传值,则必须是 String 类型

如果是 prop 是动态传值,则可以验证任意类型

示例,如果必须要传一个Number,就必须使用 bind

//声明
Vue.component("blog-post", {
 props: {
  postTitle: {
   type: Number,
   default: 10000
  }
 },
 template: "<h3>{{ postTitle }}</h3>"
});
//在template中调用,静态传值,值必定是 String
<blog-post postTitle="54"></blog-post>
//在template中调用,动态传值,值可以是 String、Number、Boolen。。。
<blog-post :postTitle="54"></blog-post>

类型检查的 type 值,可以是下列原生构造函数中的一个:

String

Number

Boolean

Array

Object

Date

Function

Symbol

type 还可以是一个自定义的构造函数,并且通过 instanceof 来进行检查确认。

示例:

//例如,给定下列现成的构造函数:
function Person (firstName, lastName) {
 this.firstName = firstName
 this.lastName = lastName
}
//可以使用,检验是否为 Person 的实例
Vue.component('blog-post', {
 props: {
  author: Person
 }
})

补充知识:vue中prop验证、类型检查及注意事项

1、注意:null和undefined会通过任何类型检测

2、数组或对象类型需要提供默认值的话需要通过函数返回。详情看这里

props:{// 数组或对象的默认值需要通过函数返回
  authInfo:{
  type:Object,
        default(){
   return{
   name:'张三',
            sex:0
          }
        }
      },
      list:{
  type:Array,
        default(){
   return[
   1,2,3
          ]
        }
      }
    }

3、使用自定义函数验证

props:{
  address:{
  validator(value){
          return ['黑龙江','吉林','辽宁'].indexOf(value) !== -1
        }
      }
    }

4、非prop的特性:若一个属性传向一个组件,但是该组件并没有定义相应 prop。则该属性称为非prop特性。非prop特性会作用到组件的根元素上。

若非prop中含有组件跟元素定义的属性。则非prop中的值会覆盖组件定义的值(这种情况称作 非prop继承)。style和class例外,它们会发生合并。

详情看这里

不希望非prop继承该怎么办?

如果不希望非prop自动作用到组件的根元素上可以在vue的组件选项里添加 inheritAttrs选项(此选项无法影响class和style的绑定)。

inheritAttrs:false

inheritAttrs属性可以和$attrs配合可以是非prop作用到开发者想作用到的元素上。而不作用的根元素上。例:

<template>
  <div>
    <input type="text" v-bind="$attrs">  <!--将非prop绑定到此元素-->
  </div>
</template>
<script>
 export default {
 name: "sg-test",
    inheritAttrs:false,//禁止 非prop继承
 }
</script>

以上这篇vue prop传值类型检验方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery 日期控件datepicker属性详细解析
Nov 08 Javascript
jquery实现炫酷的叠加层自动切换特效
Feb 01 Javascript
jQuery实现购物车数字加减效果
Mar 14 Javascript
分析js闭包引起的事件注册问题
Mar 29 Javascript
Javascript动画效果(4)
Oct 11 Javascript
jQuery  ready方法实现原理详解
Oct 19 Javascript
实例解析jQuery中如何取消后续执行内容
Dec 01 Javascript
浅析如何利用angular结合translate为项目实现国际化
Dec 08 Javascript
node.js基于fs模块对系统文件及目录进行读写操作的方法详解
Nov 10 Javascript
jQuery插件jsonview展示json数据
May 26 jQuery
AngularJS 事件发布机制
Aug 28 Javascript
Vue实现腾讯云点播视频上传功能的实现代码
Aug 17 Javascript
Vue(定时器)解决mounted不能获取到data中的数据问题
Jul 30 #Javascript
vue setInterval 定时器失效的解决方式
Jul 30 #Javascript
vue 解决setTimeOut和setInterval函数无效报错的问题
Jul 30 #Javascript
浅谈vue 组件中的setInterval方法和window的不同
Jul 30 #Javascript
详解JavaScript自定义函数
Jul 29 #Javascript
深入了解JavaScript词法作用域
Jul 29 #Javascript
vue监听dom大小改变案例
Jul 29 #Javascript
You might like
将文件夹压缩成zip文件的php代码
2009/12/14 PHP
Thinkphp实现自动验证和自动完成
2015/12/19 PHP
PHP实践教程之过滤、验证、转义与密码详解
2017/07/24 PHP
php使用array_chunk函数将一个数组分割成多个数组
2018/12/05 PHP
JavaScript入门之事件、cookie、定时等
2011/10/21 Javascript
Javascript 中的 call 和 apply使用介绍
2012/02/22 Javascript
javascript插入样式实现代码
2012/02/22 Javascript
NodeJS url验证(url-valid)的使用方法
2013/11/18 NodeJs
js使用栈来实现10进制转8进制与取除数及余数
2014/06/11 Javascript
wap手机图片滑动切换特效无css3元素js脚本编写
2014/07/28 Javascript
angularjs自定义ng-model标签的属性
2016/01/21 Javascript
基于jquery实现动态竖向柱状条特效
2016/02/12 Javascript
EasyUI的doCellTip实现鼠标放到单元格上提示单元格内容
2016/08/24 Javascript
Chrome浏览器的alert弹窗禁止再次弹出后恢复的方法
2016/12/30 Javascript
bootstrap datetimepicker实现秒钟选择下拉框
2017/01/05 Javascript
node.js学习之断言assert的使用示例
2017/09/28 Javascript
深入理解vue-class-component源码阅读
2019/02/18 Javascript
浅谈Vuex注入Vue生命周期的过程
2019/05/20 Javascript
Vue动态创建注册component的实例代码
2019/06/14 Javascript
JQuery常用简单动画操作方法回顾与总结
2019/12/07 jQuery
JavaScript接口实现方法实例分析
2020/05/16 Javascript
javascript实现页面的实时时钟显示示例
2020/08/06 Javascript
[03:49]显微镜下的DOTA2第十五期—VG登基之路完美团
2014/06/24 DOTA
python简单读取大文件的方法
2016/07/01 Python
TensorFlow实现Softmax回归模型
2018/03/09 Python
在linux系统下安装python librtmp包的实现方法
2019/07/22 Python
解决Python计算矩阵乘向量,矩阵乘实数的一些小错误
2019/08/26 Python
Python Django form 组件动态从数据库取choices数据实例
2020/05/19 Python
CSS3——齿轮转动关键代码
2013/05/02 HTML / CSS
自主招生自荐信指南
2014/02/04 职场文书
普通党员个人整改措施
2014/10/27 职场文书
2016年寒假社会实践活动总结
2015/03/27 职场文书
2016年教师节感言
2015/12/09 职场文书
2016孝老爱亲模范事迹材料
2016/02/26 职场文书
大学生党员暑假实践(活动总结)
2019/08/21 职场文书
python flask框架快速入门
2021/05/14 Python