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 相关文章推荐
JQuery获取文本框中字符长度的代码
Sep 29 Javascript
jQuery(非HTML5)可编辑表格实现代码
Dec 11 Javascript
Javascript核心读书有感之语言核心
Feb 01 Javascript
javascript制作的简单注册模块表单验证
Apr 13 Javascript
JavaScript中的各种操作符使用总结
May 26 Javascript
Javascript随机标签云代码实例
Jun 21 Javascript
js替换字符串中所有指定的字符(实现代码)
Aug 17 Javascript
详解VueJS应用中管理用户权限
Feb 02 Javascript
Node.js文件编码格式的转换的方法
Apr 27 Javascript
微信小程序中使用ECharts 异步加载数据的方法
Jun 27 Javascript
JS中appendChild追加子节点无效的解决方法
Oct 14 Javascript
微信小程序实现注册登录功能(表单校验、错误提示)
Dec 10 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/08/06 PHP
php实现图片上传并利用ImageMagick生成缩略图
2016/03/14 PHP
php判断是否连接上网络的方法实例详解
2016/12/14 PHP
php使用preg_match()函数验证ip地址的方法
2017/01/07 PHP
php面向对象基础详解【星际争霸游戏案例】
2020/01/23 PHP
javascript创建createXmlHttpRequest对象示例代码
2014/02/10 Javascript
jquery实现像栅栏一样左右滑出式二级菜单效果代码
2015/08/24 Javascript
JavaScript获取浏览器信息的方法
2015/11/20 Javascript
localStorage实现便签小程序
2016/11/28 Javascript
JavaScript中重名的函数与对象示例详析
2017/09/28 Javascript
angular 服务随记小结
2019/05/06 Javascript
js笔试题-接收get请求参数
2019/06/15 Javascript
JS常见面试试题总结【去重、遍历、闭包、继承等】
2019/08/27 Javascript
详解js创建对象的几种方式和对象方法
2021/03/01 Javascript
pycharm 使用心得(六)进行简单的数据库管理
2014/06/06 Python
Python程序中使用SQLAlchemy时出现乱码的解决方案
2015/04/24 Python
linux下python抓屏实现方法
2015/05/22 Python
轻松掌握python设计模式之访问者模式
2016/11/18 Python
在Python程序员面试中被问的最多的10道题
2017/12/05 Python
PyQt5笔记之弹出窗口大全
2019/06/20 Python
python 计算平均平方误差(MSE)的实例
2019/06/29 Python
python用win32gui遍历窗口并设置窗口位置的方法
2019/07/26 Python
基于django传递数据到后端的例子
2019/08/16 Python
python实现的接收邮件功能示例【基于网易POP3服务器】
2019/09/11 Python
6行Python代码实现进度条效果(Progress、tqdm、alive-progress​​​​​​​和PySimpleGUI库)
2020/01/06 Python
解决json中ensure_ascii=False的问题
2020/04/03 Python
python 求两个向量的顺时针夹角操作
2021/03/04 Python
瑞典Happy Socks美国官网:购买色彩斑斓的快乐袜子
2016/10/19 全球购物
《巨人的花园》教学反思
2014/02/12 职场文书
小学安全工作汇报材料
2014/08/19 职场文书
2014年小学生迎国庆65周年演讲稿
2014/09/27 职场文书
2017新年晚会开幕词
2016/03/03 职场文书
旅游安全责任协议书
2016/03/22 职场文书
解决numpy数组互换两行及赋值的问题
2021/04/17 Python
Python使用Kubernetes API访问集群
2021/05/30 Python
app场景下uniapp的扫码记录
2022/07/23 Java/Android