组件参数校验与非props特性

父组件传递content="hello world",子组件有权对其进行约束,或者说校验

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <script src="./vue.js"></script>
    <!-- <script src="http://cdn.staticfile.org/vue/2.6.10/vue.common.dev.js"></script> -->
</head>
<body>
<div id="root">
    //这依然是字符串 <br>
    <child1 content="1"></child1>

    //用:的方式,引号内的是js表达式,如果是数字,它就是数字类型 <br>
    <child2 :nums="2"></child2>

    <child3 other="123456"></child3>

    <child4 isProps="is false"></child4>
</div>
<script type="text/javascript">
    Vue.component("child1", {
        /*//如果要进行约束,就不要像这样是数组,改为对象咯
        props: ["content"],*/

        props: {
            content: Number //子组件接收的必须是数字类型
        },
        template: "<div>{{content}}</div>"
    });

    Vue.component("child2", {
        /*//如果要进行约束,就不要像这样是数组,改为对象咯
        props: ["content"],*/

        props: {
            nums: [Number, String] //子组件接收的必须是字符串类型或数字类型
        },
        template: "<div>{{nums}}</div>"
    });

    Vue.component("child3", {
        props: {
            //当然还可以是对象
            other: {
                type: String, //必须是字符串
                required: false, //非必须有
                default: "default value", //没有则给默认值
                validator: function(value) {
                    return (value.length > 5) //要求传入的内容长度必须大于5
                }
            }
        },
        template: "<div>{{other}}</div>"
    });

    Vue.component("child4", {
        //像这样没有props,则父组件向当前子组件传递的属性也使用不了
        template: "<div>{{isProps}}</div>"
    });

    var vm = new Vue({
        el: "#root"
    });
</script>
</body>
</html>

虽然规定只能传数字,但传了字符串还是能显示,但控制台会警告:

如果子组件中使用了父组件传过来的数据,而不用props,则用不到这个属性,会报错(不接收,怎能使用):

原文地址:https://blog.51cto.com/5660061/2419508

时间: 2024-10-02 11:39:20

组件参数校验与非props特性的相关文章

Vue——组件参数校验与非Props特性

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>组件参数校验与非Props特性</title> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> </head> <body> <div

vuejs组件参数校验

父组件向子组件传递一些参数,那么子组件有权对这些参数进行一个校验,这个就是组件参数校验 需求:父组件传递过来的必须是个字符串,这个要怎么去校验呢 <div id='root'> <child content='hello world'></child> </div> <script> Vue.component('child',{ props:{ content:String }, template:'<div>{{content}}

手把手写一个基于Spring Boot框架下的参数校验组件

手把手写一个基于Spring Boot框架下的参数校验组件(JSR-303) 前言 之前参与的新开放平台研发的过程中,由于不同的接口需要对不同的入参进行校验,这就涉及到通用参数的校验封装,如果不进行封装,那么写出来的校验代码将会风格不统一.校验工具类不一致.维护风险高等其它因素,于是我对其公共的校验做了一个封装,达到了通过注解的方式即可实现参数统一校验. 遇到的问题                    在封装的时候就发现了一个问题,我们是开放平台,返回的报文都必须是统一风格,也就是类似于{co

手把手写一个基于Spring Boot框架下的参数校验组件(JSR-303)

前言 之前参与的新开放平台研发的过程中,由于不同的接口需要对不同的入参进行校验,这就涉及到通用参数的校验封装,如果不进行封装,那么写出来的校验代码将会风格不统一.校验工具类不一致.维护风险高等其它因素,于是我对其公共的校验做了一个封装,达到了通过注解的方式即可实现参数统一校验. 遇到的问题                     在封装的时候就发现了一个问题,我们是开放平台,返回的报文都必须是统一风格,也就是类似于{code:999,msg:"参数校验失败",data:null} 这种

props特性

组件的参数校验指父组件向子组件传递的内容,子组件有权对这个组件传递的内容做一些约束,这些约束就叫参数的校验.即: 1 <script> 2 export default { 3 name: 'Home', 4 props: { 5 content: { 6 type: String, //接收的content类型必须是String 7 required: true, //说明是必传,不传会报错 8 default: 'default value', //当require为false时,不传会用

SpringBoot实现通用的接口参数校验

本文介绍基于Spring Boot和JDK8编写一个AOP,结合自定义注解实现通用的接口参数校验. 缘由 目前参数校验常用的方法是在实体类上添加注解,但对于不同的方法,所应用的校验规则也是不一样的,例如有一个AccountVO实体: publicclassAccountVO{privateStringname;//姓名privateIntegerage;//年龄} 假设存在这样一个业务:用户注册时需要填写姓名和年龄,用户登陆时只需要填写姓名就可以了.那么把校验规则加在实体类上显然就不合适了. 所

C++对C语言的非面向对象特性扩充(3)

今天要讲的是C++作用域运算符"::",强制类型转换的扩充,C++中相对于C中malloc和free函数的运算符new和delete,以及C++对C的一个重要扩充:引用(reference):这也是C++对C语言的非面向对象特性扩充系列的最后一节. 1.如果有两个同名变量,一个是全局的,一个是局部的,那么局部的变量在其作用域拥有较高的优先权,全局变量则被屏蔽.那如果我希望在局部变量的作用域里使用全局变量怎么办,这时就要用到::作用域运算符了.比如: 1 #include<iost

spring注解式参数校验

很痛苦遇到大量的参数进行校验,在业务中还要抛出异常或者返回异常时的校验信息,在代码中相当冗长,今天我们就来学习spring注解式参数校验. 其实就是:hibernate的validator. 开始啦...... 1.controller的bean加上@Validated就像这样 1 @ApiOperation(value = "用户登录接口", notes = "用户登录") 2 @PostMapping("/userLogin") 3 publ

SpringBoot 参数校验的方法

Introduction 有参数传递的地方都少不了参数校验.在web开发中,前端的参数校验是为了用户体验,后端的参数校验是为了安全.试想一下,如果在controller层中没有经过任何校验的参数通过service层.dao层一路来到了数据库就可能导致严重的后果,最好的结果是查不出数据,严重一点就是报错,如果这些没有被校验的参数中包含了恶意代码,那就可能导致更严重的后果. 这里我们主要介绍在springboot中的几种参数校验方式.常用的用于参数校验的注解如下: @AssertFalse 所注解的