Vue 组件参数校验与非props特性的方法


Posted in Javascript onFebruary 12, 2019

子组件接收父组件的参数的时候,props注册接收的参数

props:['count']

子组件可以对接收的参数校验。

例如规定接收的count参数要求是String

props:{
count:String
}

如果count是别的类型就会报错  

组件的参数校验

组件的参数校验指的是什么呢?你父组件向子组件传递的内容,子组件有权对这个内容进行一些约束,这个约束我们可以把它叫做参数的校验。

<div id="root">
  <child content="hello world"></child>
</div>
Vue.component('child',{
  props: ['content'],
  template: '<div>{{content}}</div>'
})
let vm = new Vue({
  el: '#root',
})

现在有这样一个需求,父组件调用子组件的时候,传递的这个content,我要做一些约束,要求它我传递过来的content必须是一个字符串,我们该怎么实现呢?

<div id="root">
  <child content="hello world"></child>
</div>
Vue.component('child',{
  props: {
    content: String     //子组件接收到的 content 这个属性,必须是一个字符串类型的
  },
  template: '<div>{{content}}</div>'
})
let vm = new Vue({
  el: '#root',
})

组件接收到的content这个属性,必须是一个字符串类型的,如果我需要的参数类型是字符串或者数组,又该怎么写呢?

props: {
  content: [ String, Number ]
},

content的类型,可以用数组来表示。

content其实还有更复杂的用法:

props: {
  content: {
    type: Sring,
    required: true,         //必传
    default: 'default value',    //默认显示,非必传会显示
    validator(value){       //检测 content 的长度,如果长度大于 5,正常显示,如果长度小于 5 则报错 
      return (value.length > 5)
    }
  }
}

非props特性

说到非props特性,它一定和props特性相对应。

props特性:当你的父组件使用子组件的时候,通过属性向子组件传值的时候,恰好子组件里面声明了对父组件传递过来的属性的一个接收,也就是说父子组件有个对应关系,如果你这么写我们就把叫做props特性

props特性的特点是,如下图:

  1. 我们在子组件里有一个content的内容传递,这个属性的内容传递是不会在dom标签上进行显示的。
  2. 当你父组件传递了content,你子组件接收了这个content,你在模版里就可以直接通过插值表达式或者通过this.content,去取得content里面的内容了。

Vue 组件参数校验与非props特性的方法

props特性:父组件向子组件传递了一个属性,但是子组件并没有props这块的内容,也就是说子组件并没有声明我要接收父组件的传递过来的内容

props特点:

  • props特性在子组件里面,没办法获取到你父组件传递的内容,因为你压根没声明你要获取的内容,也就没法用。
  • 如果我们用的是非props特性,那么这个特性是会显示在dom标签上的

Vue 组件参数校验与非props特性的方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
suggestion开发小结以及对键盘事件的总结(针对中文输入法状态)
Dec 20 Javascript
解析使用js判断只能输入数字、字母等验证的方法(总结)
May 14 Javascript
点击标签切换和自动切换DIV选项卡
Aug 10 Javascript
jQuery 判断图片是否加载完成方法汇总
Aug 10 Javascript
jqGrid中文文档之选项设置
Dec 02 Javascript
详解Jquery 遍历数组之$().each方法与$.each()方法介绍
Jan 09 Javascript
Vue如何从1.0迁移到2.0
Oct 19 Javascript
小程序组件之仿微信通讯录的实现代码
Sep 12 Javascript
简单了解小程序+node梳理登陆流程
Jun 24 Javascript
node.js使用net模块创建服务器和客户端示例【基于TCP协议】
Feb 14 Javascript
vue v-on:click传递动态参数的步骤
Sep 11 Javascript
vscode自定义vue模板的实现
Jan 27 Vue.js
从组件封装看Vue的作用域插槽的实现
Feb 12 #Javascript
用element的upload组件实现多图片上传和压缩的示例代码
Feb 12 #Javascript
PostgreSQL Node.js实现函数计算方法示例
Feb 12 #Javascript
Vue 动态组件与 v-once 指令的实现
Feb 12 #Javascript
在微信小程序中保存网络图片
Feb 12 #Javascript
VUE中使用MUI方法
Feb 12 #Javascript
如何利用ES6进行Promise封装总结
Feb 11 #Javascript
You might like
php获取后台Job管理的实现代码
2011/06/10 PHP
php中随机函数mt_rand()与rand()性能对比分析
2014/12/01 PHP
PHP MPDF中文乱码的解决方式
2015/12/08 PHP
详解PHP的Yii框架中扩展的安装与使用
2016/04/01 PHP
PHP单例模式详解及实例代码
2016/12/21 PHP
PHP实现中国公民身份证号码有效性验证示例代码
2017/05/03 PHP
javascript 解析url的search方法
2010/02/09 Javascript
JS分页控件 可用于无刷新分页
2013/07/23 Javascript
使用JavaScript判断图片是否加载完成的三种实现方式
2014/05/04 Javascript
javascript结合ajax读取txt文件内容
2014/12/05 Javascript
js实现完全自定义可带多级目录的网页鼠标右键菜单方法
2015/02/28 Javascript
jQuery中的insertBefore(),insertAfter(),after(),before()区别介绍
2016/09/01 Javascript
关于Javascript中defer和async的区别总结
2016/09/20 Javascript
Angular使用Md5加密的解决方法
2017/09/16 Javascript
AngularJS实现的获取焦点及失去焦点时的表单验证功能示例
2017/10/25 Javascript
vue.js2.0点击获取自己的属性和jquery方法
2018/02/23 jQuery
详解angular部署到iis出现404解决方案
2018/08/14 Javascript
Vue form表单动态添加组件实战案例
2019/09/02 Javascript
vue.js循环radio的实例
2019/11/07 Javascript
javascript实现鼠标点击生成文字特效
2019/12/24 Javascript
JavaScript中的this原理及6种常见使用场景详解
2020/02/14 Javascript
vue 路由守卫(导航守卫)及其具体使用
2020/02/25 Javascript
Python使用百度API上传文件到百度网盘代码分享
2014/11/08 Python
python对配置文件.ini进行增删改查操作的方法示例
2017/07/28 Python
python DataFrame获取行数、列数、索引及第几行第几列的值方法
2018/04/08 Python
python实现简易动态时钟
2018/11/19 Python
Python3利用Dlib实现摄像头实时人脸检测和平铺显示示例
2019/02/21 Python
基于MATLAB和Python实现MFCC特征参数提取
2019/08/13 Python
python 五子棋如何获得鼠标点击坐标
2019/11/04 Python
Python socket模块方法实现详解
2019/11/05 Python
大一期末自我鉴定
2013/12/13 职场文书
心得体会开头
2014/01/01 职场文书
学生喝酒检讨书500字
2014/11/02 职场文书
幼儿园小班班务总结
2015/08/03 职场文书
办公用品管理制度
2015/08/04 职场文书
2015团员个人年度总结
2015/11/24 职场文书