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 相关文章推荐
JavaScript1.6数组新特性介绍以及JQuery的几个工具方法
Dec 06 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之绑定事件
Nov 19 Javascript
基于javascript实现checkbox复选框实例代码
Jan 28 Javascript
vue实现添加标签demo示例代码
Jan 21 Javascript
详解JS中的立即执行函数
Feb 24 Javascript
浅谈Vue.js
Mar 02 Javascript
Node.js自定义实现文件路由功能
Sep 22 Javascript
微信小程序wx:for循环的实例详解
Oct 07 Javascript
微信小程序实现打开并下载服务器上面的pdf文件到手机
Sep 20 Javascript
JQuery 实现文件下载的常用方法分析
Oct 29 jQuery
JS寄快递地址智能解析的实现代码
Jul 16 Javascript
vue-video-player视频播放器使用配置详解
Oct 23 Javascript
从组件封装看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
截获网站title标签之家内容的例子
2006/10/09 PHP
php计算整个目录大小的方法
2015/06/01 PHP
解决php 处理 form 表单提交多个 name 属性值相同的 input 标签问题
2017/05/11 PHP
Laravle eloquent 多对多模型关联实例详解
2017/11/22 PHP
JS解密入门 最终变量劫持
2008/06/25 Javascript
location.href语句与火狐不兼容的问题
2010/07/04 Javascript
JavaScript入门之事件、cookie、定时等
2011/10/21 Javascript
javascript中的throttle和debounce浅析
2014/06/06 Javascript
js实现touch移动触屏滑动事件
2015/04/17 Javascript
jQuery插件formValidator自定义函数扩展功能实例详解
2015/11/25 Javascript
Bootstrap打造一个左侧折叠菜单的系统模板(一)
2016/05/17 Javascript
javascript实现获取图片大小及图片等比缩放的方法
2016/11/24 Javascript
Bootstrap table使用方法详细介绍
2016/12/09 Javascript
vue绑定class与行间样式style详解
2017/08/16 Javascript
bootstrap table实现点击翻页功能 可记录上下页选中的行
2017/09/28 Javascript
JS实现前端页面的搜索功能
2018/06/12 Javascript
JavaScript中变量提升与函数提升经典实例分析
2018/07/26 Javascript
JavaScript创建对象的四种常用模式实例分析
2019/01/11 Javascript
python中安装模块包版本冲突问题的解决
2017/05/02 Python
Django项目之Elasticsearch搜索引擎的实例
2019/08/21 Python
PyCharm永久激活方式(推荐)
2020/09/22 Python
13个Pandas实用技巧,助你提高开发效率
2020/08/19 Python
python+playwright微软自动化工具的使用
2021/02/02 Python
3D动画《斗罗大陆》上线当日播放过亿
2021/03/16 国漫
雷曼兄弟的五金店:Lehman’s Hardware Store
2019/04/10 全球购物
G-Form护具官方网站:美国运动保护装备
2019/09/04 全球购物
给实习单位的感谢信
2014/02/01 职场文书
阳光体育活动方案
2014/02/16 职场文书
给校长的建议书600字
2014/05/15 职场文书
班主任先进事迹材料
2014/12/17 职场文书
个人简历自我评价怎么写
2015/03/10 职场文书
学校国庆节活动总结
2015/03/23 职场文书
生产车间主任岗位职责
2015/04/08 职场文书
中学生勤俭节约倡议书
2015/04/29 职场文书
2016年读书月活动总结范文
2016/04/06 职场文书
赞美教师的句子
2019/09/02 职场文书