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 相关文章推荐
ext form 表单提交数据的方法小结
Aug 08 Javascript
input 高级限制级用法
Mar 26 Javascript
javascript 三种编解码方式
Feb 01 Javascript
始终在屏幕中间显示Div的代码(css+js)
Mar 10 Javascript
Javascript 判断是否存在函数的方法
Jan 03 Javascript
JS数组去重与取重的示例代码
Jan 24 Javascript
不要使用jQuery触发原生事件的方法
Mar 03 Javascript
javascript简单实现跟随滚动条漂浮的返回顶部按钮效果
Aug 19 Javascript
vue列表单项展开收缩功能之this.$refs的详解
May 05 Javascript
vue下的@change事件的实现
Oct 25 Javascript
uni-app微信小程序登录授权的实现
May 22 Javascript
浅谈vue中get请求解决传输数据是数组格式的问题
Aug 03 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
php学习之 认清变量的作用范围
2010/01/26 PHP
自定义php类(查找/修改)xml文档
2013/03/26 PHP
全面解读PHP的人气开发框架Laravel
2015/10/15 PHP
详解PHP中array_rand函数的使用方法
2016/09/11 PHP
PHP简单获取随机数的常用方法小结
2017/06/07 PHP
Yii框架日志记录Logging操作示例
2018/07/12 PHP
jquery实现带单选按钮的表格行选中时高亮显示
2013/08/01 Javascript
jquery在项目中做复选框时遇到的一些问题笔记
2013/11/17 Javascript
textarea不能通过maxlength属性来限制字数的解决方法
2014/09/01 Javascript
关于Javascript加载执行优化的研究报告
2014/12/16 Javascript
常用的JS验证和函数汇总
2014/12/23 Javascript
在浏览器中实现图片粘贴的jQuery插件-- pasteimg使用指南
2014/12/29 Javascript
百度地图API之本地搜索与范围搜索
2015/07/30 Javascript
jQuery获取及设置表单input各种类型值的方法小结
2016/05/24 Javascript
BootStrap实现响应式布局导航栏折叠隐藏效果(在小屏幕、手机屏幕浏览时自动折叠隐藏)
2016/11/30 Javascript
使用jQuery操作DOM的方法小结
2017/02/27 Javascript
JavaScript数据结构之双向链表定义与使用方法示例
2017/10/27 Javascript
JS简单判断是否在微信浏览器打开的方法示例
2019/01/08 Javascript
JavaScript中将值转换为字符串的五种方法总结
2019/06/06 Javascript
vue.js中导出Excel表格的案例分析
2019/06/11 Javascript
Vue中通过Vue.extend动态创建实例的方法
2019/08/13 Javascript
教你如何用Node实现API的转发(某音乐)
2019/09/20 Javascript
使用Python3中的gettext模块翻译Python源码以支持多语言
2015/03/31 Python
Python实用日期时间处理方法汇总
2015/05/09 Python
Python日期的加减等操作的示例
2017/08/15 Python
Python调用C语言的方法【基于ctypes模块】
2018/01/22 Python
教你使用python画一朵花送女朋友
2018/03/29 Python
解决python3.5 正常安装 却不能直接使用Tkinter包的问题
2019/02/22 Python
python安装后的目录在哪里
2020/06/21 Python
HTML5样式控制示例代码
2013/11/27 HTML / CSS
计算机毕业大学生求职信
2014/06/26 职场文书
服务员岗位职责
2015/02/03 职场文书
2015年小学数学教师工作总结
2015/05/20 职场文书
泰坦尼克号观后感
2015/06/04 职场文书
R9700摩机记
2022/04/05 无线电
vue postcss-px2rem 自适应布局
2022/05/15 Vue.js