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 相关文章推荐
prototype 1.5 &amp; scriptaculous 1.6.1 学习笔记
Sep 07 Javascript
JS设置获取cookies的方法
Jan 26 Javascript
JS实现仿QQ效果的三级竖向菜单
Sep 25 Javascript
JS获取鼠标坐标位置实例分析
Jan 20 Javascript
js实现获取两个日期之间所有日期的方法
Jun 17 Javascript
用headjs来管理和加载js 提高网站加载速度
Nov 29 Javascript
详解Vue2.X的路由管理记录之 钩子函数(切割流水线)
May 02 Javascript
5分钟打造简易高效的webpack常用配置
Jul 04 Javascript
解决betterScroll在vue中存在图片时,出现拉不动的问题
Sep 27 Javascript
layui前端时间戳转化实例
Nov 15 Javascript
使用vue cli4.x搭建vue项目的过程详解
May 08 Javascript
Vue是怎么渲染template内的标签内容的
Jun 05 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
DOTA2【瓜皮时刻】Vol.91 RTZ山史最惨“矿难”
2021/03/05 DOTA
php与XML、XSLT、Mysql的结合运用实现代码
2009/11/19 PHP
PHP 显示客户端IP与服务器IP的代码
2010/10/12 PHP
PHP批量采集下载美女图片的实现代码
2013/06/03 PHP
PHP时间戳格式全部汇总 (获取时间、时间戳)
2016/06/13 PHP
PHP中的使用curl发送请求(GET请求和POST请求)
2017/02/08 PHP
对于Laravel 5.5核心架构的深入理解
2018/02/22 PHP
baidu博客的编辑友情链接的新的层窗口!经典~支持【FF】
2007/02/09 Javascript
js 返回时间戳所对应的具体时间
2010/07/20 Javascript
jquery链式操作的正确使用方法
2014/01/06 Javascript
基于jQuery实现文本框缩放以及上下移动功能
2014/11/24 Javascript
Jquery实现$.fn.extend和$.extend函数
2016/04/14 Javascript
jquery滚动条插件slimScroll使用方法
2017/02/09 Javascript
利用JavaScript在网页实现八数码启发式A*算法动画效果
2017/04/16 Javascript
Vue中使用webpack别名的方法实例详解
2018/06/19 Javascript
webpack的pitching loader详解
2019/09/23 Javascript
微信小程序日历插件代码实例
2019/12/04 Javascript
JavaScript中的this妙用实例分析
2020/05/09 Javascript
vue实现几秒后跳转新页面代码
2020/09/09 Javascript
详解Python中的各种函数的使用
2015/05/24 Python
Python使用pygame模块编写俄罗斯方块游戏的代码实例
2015/12/08 Python
Python常见加密模块用法分析【MD5,sha,crypt模块】
2017/05/24 Python
浅谈Python中函数的定义及其调用方法
2019/07/19 Python
Pytorch卷积层手动初始化权值的实例
2019/08/17 Python
Python 脚本拉取 Docker 镜像问题
2019/11/10 Python
Jupyter Notebook远程登录及密码设置操作
2020/04/10 Python
Python实现仿射密码的思路详解
2020/04/23 Python
Python几种常见算法汇总
2020/06/02 Python
python自动化测试三部曲之request+django实现接口测试
2020/10/07 Python
Python基于内置函数type创建新类型
2020/10/22 Python
使用css3 属性如何丰富图片样式(圆角 阴影 渐变)
2012/11/22 HTML / CSS
美国宠物护理专家:Revival Animal Health
2020/01/05 全球购物
公司授权委托书样本
2014/09/15 职场文书
Golang 空map和未初始化map的注意事项说明
2021/04/29 Golang
Python中22个万用公式的小结
2021/07/21 Python
css中:last-child不生效的解决方法
2022/08/05 HTML / CSS