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 相关文章推荐
在IE和VB中支持png图片透明效果的实现方法(vb源码打包)
Apr 01 Javascript
基于Jquery插件开发之图片放大镜效果(仿淘宝)
Nov 19 Javascript
JQuery弹出炫丽对话框的同时让背景变灰色
May 22 Javascript
javascript面向对象之对象的深入理解
Jan 13 Javascript
jQuery实现统计输入文字个数的方法
Mar 11 Javascript
javascript实现选中复选框后相关输入框变灰不可用的方法
Aug 11 Javascript
使用jquery实现鼠标滑过弹出更多相关信息层附源码下载
Nov 23 Javascript
jquery ajaxfileupload异步上传插件使用详解
Feb 08 Javascript
Angular获取手机验证码实现移动端登录注册功能
May 17 Javascript
vue-router动态设置页面title的实例讲解
Aug 30 Javascript
详解关闭令人抓狂的ESlint 语法检测配置方法
Oct 28 Javascript
在vue项目实现一个ctrl+f的搜索功能
Feb 28 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
JS 日期验证正则附asp日期格式化函数
2009/09/11 Javascript
浅析jquery的作用与优势
2013/12/02 Javascript
基于jquery实现轮播焦点图插件
2016/03/31 Javascript
jQuery Ajax 实例代码 ($.ajax、$.post、$.get)
2016/04/29 Javascript
easyui中combotree循环获取父节点至根节点并输出路径实现方法
2016/11/10 Javascript
JS异步文件分片断点上传的实现思路
2016/12/25 Javascript
JavaScript实现简易的天数计算器实例【附demo源码下载】
2017/01/18 Javascript
vue component组件使用方法详解
2017/07/14 Javascript
详谈vue+webpack解决css引用图片打包后找不到资源文件的问题
2018/03/06 Javascript
详解JSON Web Token 入门教程
2018/07/30 Javascript
js new Date()实例测试
2019/10/31 Javascript
vue中activated的用法
2021/01/03 Vue.js
Python数据分析之真实IP请求Pandas详解
2016/11/18 Python
matplotlib作图添加表格实例代码
2018/01/23 Python
使用Python监控文件内容变化代码实例
2018/06/04 Python
为何人工智能(AI)首选Python?读完这篇文章你就知道了(推荐)
2019/04/06 Python
Anaconda之conda常用命令介绍(安装、更新、删除)
2019/10/06 Python
python os.path.isfile()因参数问题判断错误的解决
2019/11/29 Python
python 实现查询Neo4j多节点的多层关系
2019/12/23 Python
python实现上传文件到linux指定目录的方法
2020/01/03 Python
PyCharm GUI界面开发和exe文件生成的实现
2020/03/04 Python
雅诗兰黛旗下走天然植物路线的彩妆品牌:Prescriptives
2016/08/14 全球购物
花园仓库建筑:Garden Buildings Direct
2018/02/16 全球购物
园林施工员岗位职责
2013/12/11 职场文书
科研先进个人典型材料
2014/01/31 职场文书
GMP办公室主任岗位职责
2014/03/14 职场文书
机房搬迁方案
2014/05/01 职场文书
物业公司的岗位任命书
2014/06/06 职场文书
委托书范本
2014/09/13 职场文书
群众路线专项整治工作情况报告
2014/10/28 职场文书
公司晚宴祝酒词
2015/08/11 职场文书
放飞理想主题班会
2015/08/14 职场文书
公务员廉洁从政心得体会
2016/01/19 职场文书
python中print格式化输出的问题
2021/04/16 Python
Mysql8.0递归查询的简单用法示例
2021/08/04 MySQL
HTML CSS 一个标签实现带动画的抖音LOGO
2022/04/26 HTML / CSS