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 相关文章推荐
关于Javascript 的 prototype问题。
Jan 03 Javascript
jquery 经典动画菜单效果代码
Jan 26 Javascript
用javascript作一个通用向导说明
Aug 30 Javascript
jQuery中[attribute^=value]选择器用法实例
Dec 31 Javascript
学习JavaScript编程语言的8张思维导图分享
Mar 27 Javascript
怎么限制input的text里输入的值只能是数字(正则、js)
May 16 Javascript
批量下载对路网图片并生成html的实现方法
Jun 07 Javascript
详细AngularJs4的图片剪裁组件的实例
Jul 12 Javascript
微信小程序图片加载失败时替换为默认图片的方法
Dec 09 Javascript
vue项目实现图片上传功能
Dec 23 Javascript
Vue项目中数据的深度监听或对象属性的监听实例
Jul 17 Javascript
vue实现路由懒加载的3种方法示例
Sep 01 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函数method_exists()与is_callable()的区别
2013/06/21 PHP
php使用ICQ网关发送手机短信
2013/10/30 PHP
php使用正则表达式提取字符串中尖括号、小括号、中括号、大括号中的字符串
2020/04/05 PHP
浅谈PHP安全防护之Web攻击
2017/01/03 PHP
用PHP的socket实现客户端到服务端的通信实例详解
2017/02/04 PHP
Laravel 错误提示本地化的实现
2019/10/22 PHP
JavaScript Event学习第十一章 按键的检测
2010/02/10 Javascript
juqery 学习之三 选择器 简单 内容
2010/11/25 Javascript
javascript 判断字符串是否包含某字符串及indexOf使用示例
2013/10/18 Javascript
使用javascript实现json数据以csv格式下载
2015/01/09 Javascript
prototype框架中美元符号$用法分析
2016/01/22 Javascript
基于JS实现的笛卡尔乘积之商品发布
2016/05/13 Javascript
为jQuery-easyui的tab组件添加右键菜单功能的简单实例
2016/10/10 Javascript
在一个页面重复使用一个js函数的方法详解
2016/12/26 Javascript
JavaScript中三种常见的排序方法
2017/02/24 Javascript
详谈jQuery中的一些正则匹配表达式
2017/03/08 Javascript
javaScript实现滚动条事件详解
2020/03/24 Javascript
详解如何探测小程序返回到webview页面
2019/05/14 Javascript
Vue中ref和$refs的介绍以及使用方法示例
2021/01/11 Vue.js
详解python并发获取snmp信息及性能测试
2017/03/27 Python
Python爬虫实例_城市公交网络站点数据的爬取方法
2018/01/10 Python
numpy使用技巧之数组过滤实例代码
2018/02/03 Python
对python读写文件去重、RE、set的使用详解
2018/12/11 Python
Python使用ElementTree美化XML格式的操作
2020/03/06 Python
Pycharm 使用 Pipenv 新建的虚拟环境(图文详解)
2020/04/16 Python
TensorFlow中如何确定张量的形状实例
2020/06/23 Python
Python 读取位于包中的数据文件
2020/08/07 Python
基于Python-Pycharm实现的猴子摘桃小游戏(源代码)
2021/02/20 Python
外语系毕业生自荐信范文
2013/12/16 职场文书
教师通用专业自荐书范文
2014/02/11 职场文书
图书馆志愿者活动总结
2014/06/27 职场文书
销售团队获奖感言
2014/08/14 职场文书
一份恶作剧的检讨书
2014/09/13 职场文书
医学专业大学生职业生涯规划书
2014/10/25 职场文书
单位推荐信范文
2015/03/27 职场文书
Docker官方工具docker-registry案例演示
2022/04/13 Servers