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 相关文章推荐
js使用函数绑定技术改变事件处理程序的作用域
Dec 26 Javascript
介绍JavaScript中Math.abs()方法的使用
Jun 14 Javascript
自定义刻度jQuery进度条及插件
Sep 02 Javascript
实例代码讲解jquery easyui动态tab页
Nov 17 Javascript
如何用angularjs制作一个完整的表格
Jan 21 Javascript
Google 地图类型详解及示例代码
Aug 06 Javascript
Javascript typeof与instanceof的区别
Oct 18 Javascript
基于Javascript倒计时效果
Dec 22 Javascript
浅谈箭头函数写法在ReactJs中的使用
Aug 22 Javascript
简单实现jQuery弹窗效果
Oct 30 jQuery
iview table render集成switch开关的实例
Mar 14 Javascript
使用vue打包时vendor文件过大或者是app.js文件很大的问题
Jun 29 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
解析PHP工厂模式的好处
2013/06/18 PHP
php字符串函数 str类常见用法示例
2020/05/15 PHP
Javascript中获取出错代码所在文件及行数的代码
2010/09/23 Javascript
关于html+ashx开发中几个问题的解决方法
2011/07/18 Javascript
获取当前点击按钮的id用this.id实现
2014/03/17 Javascript
javascript中setTimeout和setInterval的unref()和ref()用法示例
2014/11/26 Javascript
开启Javascript中apply、call、bind的用法之旅模式
2015/10/28 Javascript
浅谈javascript 函数表达式和函数声明的区别
2016/01/05 Javascript
Boostrap入门准备之border box
2016/05/09 Javascript
20分钟成功编写bootstrap响应式页面 就这么简单
2016/05/12 Javascript
javascript 广告移动特效的实现代码
2016/06/25 Javascript
jQuery基于BootStrap样式实现无限极地区联动
2016/08/26 Javascript
Vue.js中用v-bind绑定class的注意事项
2016/12/13 Javascript
Node.js HTTP服务器中的文件、图片上传的方法
2019/09/23 Javascript
浅要分析Python程序与C程序的结合使用
2015/04/07 Python
python中for语句简单遍历数据的方法
2015/05/07 Python
Python爬取国外天气预报网站的方法
2015/07/10 Python
Python Sql数据库增删改查操作简单封装
2016/04/18 Python
Python和Go语言的区别总结
2019/02/20 Python
Dlib+OpenCV深度学习人脸识别的方法示例
2019/05/14 Python
python处理大日志文件
2019/07/23 Python
django迁移数据库错误问题解决
2019/07/29 Python
Python3.5 win10环境下导入kera/tensorflow报错的解决方法
2019/12/19 Python
用openCV和Python 实现图片对比,并标识出不同点的方式
2019/12/19 Python
Keras中 ImageDataGenerator函数的参数用法
2020/07/03 Python
一款html5 canvas实现的图片玻璃碎片特效
2014/09/11 HTML / CSS
极简的HTML5模版
2015/07/09 HTML / CSS
Jacadi Paris英国官网:法国童装品牌
2019/08/09 全球购物
为您搜罗全球潮流時尚品牌:HBX
2019/12/04 全球购物
Maxpeedingrods美国:高性能汽车零件
2020/02/14 全球购物
致铅球运动员广播稿精选
2014/01/12 职场文书
竞选团支书演讲稿
2014/04/28 职场文书
上市公司财务总监岗位职责
2015/04/03 职场文书
雾霾停课通知
2015/04/24 职场文书
人生哲理妙语30条:淡写流年,笑过人生
2019/09/04 职场文书
详解CocosCreator消息分发机制
2021/04/16 Javascript