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 替换
Feb 19 Javascript
Dom操作之兼容技巧分享
Sep 20 Javascript
如何动态的导入js文件具体该怎么实现
Jan 14 Javascript
JavaScript比较两个对象是否相等的方法
Feb 06 Javascript
AngularJs 弹出模态框(model)
Apr 07 Javascript
JavaScript代码实现图片循环滚动效果
Mar 19 Javascript
获取今天,昨天,本周,上周,本月,上月时间(实例分享)
Jan 04 Javascript
微信小程序 利用css实现遮罩效果实例详解
Jan 21 Javascript
template.js前端模板引擎使用详解
Oct 10 Javascript
JavaScript fetch接口案例解析
Aug 30 Javascript
Angular PWA使用的Demo示例
Jan 31 Javascript
vue 实现单选框设置默认选中值
Nov 07 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
基于HBase Thrift接口的一些使用问题及相关注意事项的详解
2013/06/03 PHP
php引用返回与取消引用的详解
2013/06/08 PHP
php实现的表单验证类完整示例
2019/08/13 PHP
仿校内登陆框,精美,给那些很厉害但是没有设计天才的程序员
2008/11/24 Javascript
EXTjs4.0的store的findRecord的BUG演示代码
2013/06/08 Javascript
浅谈javascript面向对象程序设计
2015/01/21 Javascript
详解JavaScript数组的操作大全
2015/10/19 Javascript
浅析JavaScript 调试方法和技巧
2015/10/22 Javascript
Bootstrap每天必学之标签页(Tab)插件
2020/08/09 Javascript
JavaScript实现倒计时跳转页面功能【实用】
2016/12/13 Javascript
微信小程序 石头剪刀布实例代码
2017/01/04 Javascript
如何理解jQuery中的ajaxSubmit方法
2017/03/13 Javascript
nodejs对express中next函数的一些理解
2017/09/08 NodeJs
JavaScript实现百度搜索框效果
2020/03/26 Javascript
JS逻辑运算符短路操作实例分析
2018/07/09 Javascript
vuex2中使用mapGetters/mapActions报错的解决方法
2018/10/20 Javascript
浅谈JavaScript面向对象--继承
2019/03/20 Javascript
countup.js实现数字动态叠加效果
2019/10/17 Javascript
js中Function引用类型常见有用的方法和属性详解
2019/12/11 Javascript
JavaScript大数相加相乘的实现方法实例
2020/10/18 Javascript
Django中的“惰性翻译”方法的相关使用
2015/07/27 Python
python Matplotlib画图之调整字体大小的示例
2017/11/20 Python
Python文件监听工具pyinotify与watchdog实例
2018/10/15 Python
Python编程图形库之Pillow使用方法讲解
2018/12/28 Python
python实现QQ邮箱/163邮箱的邮件发送
2019/01/22 Python
Python描述符descriptor使用原理解析
2020/03/21 Python
在django中form的label和verbose name的区别说明
2020/05/20 Python
解析html5 canvas实现背景鼠标连线动态效果代码
2019/06/17 HTML / CSS
外贸业务员求职信范文
2013/12/12 职场文书
高中军训感言600字
2014/03/11 职场文书
租房协议书怎么写
2014/04/10 职场文书
党的群众路线对照检查材料(个人)
2014/09/24 职场文书
2014年医院党建工作总结
2014/12/20 职场文书
产品质量保证书范本
2015/02/27 职场文书
2016重阳节红领巾广播稿
2015/12/18 职场文书
Python下opencv库的安装过程及问题汇总
2021/06/11 Python