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中通过split函数分割字符串成数组小例子
Sep 21 Javascript
javascript+HTML5的Canvas实现Lab单车动画效果
Aug 07 Javascript
纯HTML5制作围住神经猫游戏-附源码下载
Aug 23 Javascript
JS实现网页Div层Clone拖拽效果
Sep 26 Javascript
JS实现的在线调色板实例(附demo源码下载)
Mar 01 Javascript
BootStrap实用代码片段之一
Mar 22 Javascript
jQuery异步提交表单的两种方式
Sep 13 Javascript
React Native中的RefreshContorl下拉刷新使用
Oct 09 Javascript
使用ng-packagr打包Angular的方法示例
Sep 21 Javascript
Nginx设置为Node.js的前端服务器方法总结
Mar 27 Javascript
关于layui的动态图标不显示的解决方法
Sep 04 Javascript
多页vue应用的单页面打包方法(内含打包模式的应用)
Jun 11 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垃圾回收机制引用计数器概念分析
2013/06/24 PHP
php实现的美国50个州选择列表实例
2015/04/20 PHP
详谈PHP编码转换问题
2015/07/28 PHP
Yii统计不同类型邮箱数量的方法
2016/10/18 PHP
php反射学习之不用new方法实例化类操作示例
2019/06/14 PHP
基于laravel缓冲cache的用法详解
2019/10/23 PHP
一个关于javascript匿名函数的问题分析
2012/03/30 Javascript
基于jquery实现的图片在各种分辨率下未知的容器内上下左右居中
2014/05/11 Javascript
Lua表达式和控制结构学习笔记
2014/12/15 Javascript
基于JQuery实现仿网易邮箱全屏动感滚动插件fullPage
2015/09/20 Javascript
jquery ztree实现模糊搜索功能
2016/02/25 Javascript
Bootstrap~多级导航(级联导航)的实现效果【附代码】
2016/03/08 Javascript
深入理解JavaScript中的并行处理
2016/09/22 Javascript
JavaScript 事件流、事件处理程序及事件对象总结
2017/04/01 Javascript
Angular 4 指令快速入门教程
2017/06/07 Javascript
推荐VSCode 上特别好用的 Vue 插件之vetur
2017/09/14 Javascript
nodejs实现连接mongodb数据库的方法示例
2018/03/15 NodeJs
通过js实现压缩图片上传功能
2020/02/25 Javascript
Laravel 如何在blade文件中使用Vue组件的示例代码
2020/06/28 Javascript
JS pushlet XMLAdapter适配器用法案例解析
2020/10/16 Javascript
vue 组件基础知识总结
2021/01/26 Vue.js
python线程、进程和协程详解
2016/07/19 Python
Python 中的lambda函数介绍
2018/10/10 Python
在Python中使用defaultdict初始化字典以及应用方法
2018/10/31 Python
Python 限制线程的最大数量的方法(Semaphore)
2019/02/22 Python
ubuntu 16.04下python版本切换的方法
2019/06/14 Python
Pytorch Tensor 输出为txt和mat格式方式
2020/01/03 Python
Python实现七个基本算法的实例代码
2020/10/08 Python
印度首选时尚目的地:Reliance Trends
2018/01/17 全球购物
外贸业务员的岗位职责
2013/11/23 职场文书
生日派对邀请函
2014/01/13 职场文书
新学期红领巾广播稿
2014/10/04 职场文书
中学生勤俭节约倡议书
2015/04/29 职场文书
观看焦裕禄观后感
2015/06/09 职场文书
整理Python中常用的conda命令操作
2021/06/15 Python
Python虚拟环境virtualenv是如何使用的
2021/06/20 Python