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 相关文章推荐
js 用CreateElement动态创建标签示例
Nov 20 Javascript
js省市联动效果完整实例代码
Dec 09 Javascript
非常酷炫的Bootstrap图片轮播动画
May 27 Javascript
深入理解JavaScript中的call、apply、bind方法的区别
May 30 Javascript
使用BootStrapValidator完成前端输入验证
Sep 28 Javascript
jQuery访问浏览器本地存储cookie、localStorage和sessionStorage的基本用法
Oct 20 jQuery
基于jQuery中ajax的相关方法汇总(必看篇)
Nov 08 jQuery
ReactNative实现Toast的示例
Dec 31 Javascript
JavaScript中严格判断NaN的方法
Feb 16 Javascript
详解性能更优越的小程序图片懒加载方式
Jul 18 Javascript
javascript实现简易数码时钟
Mar 30 Javascript
vue element table中自定义一些input的验证操作
Jul 18 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
2020年4月放送决定!第2期TV动画《邪神酱飞踢》视觉图&主题曲情报公开!
2020/03/06 日漫
50个PHP程序性能优化的方法
2014/06/02 PHP
php格式输出文件var_export函数实例
2014/11/15 PHP
PHP的Yii框架中创建视图和渲染视图的方法详解
2016/03/29 PHP
Yii2如何批量添加数据
2016/05/17 PHP
PHP读取大文件末尾N行的高效方法推荐
2016/06/03 PHP
微信支付的开发流程详解
2016/09/13 PHP
JavaScript中继承的一些示例方法与属性参考
2010/08/07 Javascript
javascript 函数声明与函数表达式的区别介绍
2013/10/05 Javascript
javascript中的取反再取反~~没有意义
2014/04/06 Javascript
js动态修改整个页面样式达到换肤效果
2014/05/23 Javascript
JS中Eval解析JSON字符串的一个小问题
2016/02/21 Javascript
详解Vue 非父子组件通信方法(非Vuex)
2017/05/24 Javascript
Vue keep-alive实践总结(推荐)
2017/08/31 Javascript
vue中路由验证和相应拦截的使用详解
2017/12/13 Javascript
JavaScript实现元素滚动条到达一定位置循环追加内容
2017/12/28 Javascript
Angular4 反向代理Details实践
2018/05/30 Javascript
基于vue实现圆形菜单栏组件
2019/07/05 Javascript
教你搭建按需加载的Vue组件库(小结)
2019/07/29 Javascript
VUE组件中的 Drawer 抽屉实现代码
2019/08/06 Javascript
[03:48]大碗DOTA
2019/07/25 DOTA
Python中使用logging模块代替print(logging简明指南)
2014/07/09 Python
Python实现删除Android工程中的冗余字符串
2015/01/19 Python
python登录pop3邮件服务器接收邮件的方法
2015/04/30 Python
python实现图片变亮或者变暗的方法
2015/06/01 Python
浅析python递归函数和河内塔问题
2017/04/18 Python
python2.7实现FTP文件下载功能
2018/04/15 Python
Python查找第n个子串的技巧分享
2018/06/27 Python
python3.7 利用函数os pandas利用excel对文件名进行归类
2019/09/29 Python
python批量处理txt文件的实例代码
2020/01/13 Python
python连接手机自动搜集蚂蚁森林能量的实现代码
2021/02/24 Python
小学生操行评语
2014/04/22 职场文书
创先争优活动党员公开承诺书
2014/08/29 职场文书
公司委托书范本5篇
2014/09/20 职场文书
借名购房协议书范本
2014/10/06 职场文书
不同意离婚上诉状
2015/05/23 职场文书