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 相关文章推荐
Javascript 通过json自动生成Dom的代码
Apr 01 Javascript
jquery 实现checkbox全选,反选,全不选等功能代码(奇数)
Oct 24 Javascript
使用GruntJS构建Web程序之合并压缩篇
Jun 06 Javascript
在JavaScript中重写jQuery对象的方法实例教程
Aug 25 Javascript
JS实现图片高斯模糊切换效果的焦点图实例
Jan 21 Javascript
JavaScript 函数节流详解及方法总结
Feb 09 Javascript
vue 挂载路由到头部导航的方法
Nov 13 Javascript
Vue 换肤的示例实践
Jan 23 Javascript
Vuex 单状态库与多模块状态库详解
Dec 11 Javascript
微信小程序设置全局请求URL及封装wx.request请求操作示例
Apr 02 Javascript
7个好用的JavaScript技巧分享(译)
May 07 Javascript
微信小程序 textarea 层级过高问题简单解决方案
Oct 14 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接口中interface存在的意义
2013/06/27 PHP
解析将多维数组转换为支持curl提交的一维数组格式
2013/07/08 PHP
PHP原生函数一定好吗?
2014/12/08 PHP
PHPUnit测试私有属性和方法功能示例
2018/06/12 PHP
Yii 框架入口脚本示例分析
2020/05/19 PHP
List the Stored Procedures in a SQL Server database
2007/06/20 Javascript
js实现简单的星级选择器提交效果适用于评论等
2013/10/18 Javascript
javascript正则表达式参数/g与/i及/gi的使用指南
2014/08/27 Javascript
21个JavaScript事件(Events)属性汇总
2014/12/02 Javascript
浅谈JS使用[ ]来访问对象属性
2016/09/21 Javascript
AngularJS入门教程之模块化操作用法示例
2016/11/02 Javascript
nodejs服务搭建教程 nodejs访问本地站点文件
2017/04/07 NodeJs
jQuery选取所有复选框被选中的值并用Ajax异步提交数据的实例
2017/08/04 jQuery
react 创建单例组件的方法
2018/04/26 Javascript
vue+iview+less 实现换肤功能
2018/08/17 Javascript
js实现百度淘宝搜索功能
2020/02/17 Javascript
[55:03]LGD vs EG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
安装Python的web.py框架并从hello world开始编程
2015/04/25 Python
Python之reload流程实例代码解析
2018/01/29 Python
Tensorflow 同时载入多个模型的实例讲解
2018/07/27 Python
python reverse反转部分数组的实例
2018/12/13 Python
快速解决docker-py api版本不兼容的问题
2019/08/30 Python
Django跨域资源共享问题(推荐)
2020/03/09 Python
python 调用API接口 获取和解析 Json数据
2020/09/28 Python
使用phonegap克隆和删除联系人的实现方法
2017/03/31 HTML / CSS
英国最大的海报商店:GB Posters
2018/03/20 全球购物
工地资料员岗位职责
2013/12/31 职场文书
网上商城创业计划书范文
2014/01/31 职场文书
思想品德课教学反思
2014/02/10 职场文书
《雾凇》教学反思
2014/02/17 职场文书
个人课题方案
2014/05/08 职场文书
2014学校领导四风对照检查材料思想汇报
2014/09/23 职场文书
一份教室追逐打闹的检讨书
2014/09/27 职场文书
升职自荐信范文
2015/03/27 职场文书
公司员工宿舍管理制度
2015/08/07 职场文书
python数字图像处理之图像自动阈值分割示例
2022/06/28 Python