详解vue中组件参数


Posted in Javascript onJuly 09, 2018

我们来聊一下vue中的组件参数.

1.vue中组件参数

我们可以为组件的 prop 指定验证要求,例如你知道的这些类型。如果有一个需求没有被满足,则 Vue 会在浏览器控制台中警告你。这在开发一个会被别人用到的组件时尤其有帮助。

我们来看下最为简单和常见的vue代码

<div id="root">
      <item content="hello"></item>
    </div>
    <script>
      Vue.component("item",{
        props:["content"],
        template:"<div>{{content}}</div>"
      })
      new Vue({
        el:"#root"
      })
    </script>

这是一个最简单的创建组件和父组件向子组件的例子,但是我们在是否可以考虑一下,如果我希望父组件向子组件传递参数的时候是个数字类型呢?又或者是布尔类型呢?所以我们在这里就必须要对父组件传递过来的参数做一个校验。

<div id="root">
      <item content="hello"></item>
    </div>
    <script>
      Vue.component("item",{
        props:{
          content:String
        },
        template:"<div>{{content}}</div>"
      })
      new Vue({
        el:"#root"
      })
    </script>

我们对第一个例子的代码进行了修改,我们把子组件中的props属性,改为一种对象的形式,而且我们也约束了父组件传递过来的content为String类型,但是还会有这样的一种情况出现,请看下面的代码:

<div id="root">
      <item content="1"></item>
    </div>
    <script>
      Vue.component("item",{
        props:{
          content:String
        },
        template:"<div>{{content}}</div>"
      })
      new Vue({
        el:"#root"
      })
    </script>

我们改变了父组件中content的值等于1,那么我们就很自然的把content理解为数字类型,那么页面就会出现报错的提示.但是我们打开页面后,并没有浏览器报错。这又是为什么呢?

在vue中,默认传递的值都是字符串,如果你想要传递一个数字,那么必须在content前面添加一个:

我们希望它出现报错,那么我们就应该这么修改以上的代码。

<div id="root">
      <item :content="1"></item>
    </div>
    <script>
      Vue.component("item",{
        props:{
          content:String
        },
        template:"<div>{{content}}</div>"
      })
      new Vue({
        el:"#root"
      })
    </script>

那么这个时候,VUE就会给我们一个代码错误提示。如果我们希望它不报错,那么我们修改一下content里面的类型

<div id="root">
      <item :content="1"></item>
    </div>
    <script>
      Vue.component("item",{
        props:{
          content:Number
        },
        template:"<div>{{content}}</div>"
      })
      new Vue({
        el:"#root"
      })
    </script>

当然了,content也是可以接受一个数组的,用来判断它父组件为子组件传递的多个参数。

<div id="root">
      <item :content="1"></item>
    </div>
    <script>
      Vue.component("item",{
        props:{
          content:[String,Number]
        },
        template:"<div>{{content}}</div>"
      })
      new Vue({
        el:"#root"
      })
    </script>

除了数组形式,我们也可以写成对象的形式。那么对象的形式,vue为我们提供了各种可选的参数。

<div id="root">
      <item content="hello world"></item>
    </div>
    <script>
      Vue.component("item",{
        props:{
          content:{
            type:String,
            required:true,
            default:"asd",
            validator:function(value){
              return (value.length>5)
            }
          }
        },
        template:"<div>{{content}}</div>"
      })
      new Vue({
        el:"#root"
      })
    </script>

总结

以上所述是小编给大家介绍的vue中组件参数,希望对大家有所帮助,如果大家有任何疑问请给我留言,

小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jQuery 各种浏览器下获得日期区别
Dec 22 Javascript
JavaScript Object的extend是一个常用的功能
Dec 02 Javascript
jquery中ajax学习笔记一
Oct 16 Javascript
使用text方法获取Html元素文本信息示例
Sep 01 Javascript
Javascript MVC框架Backbone.js详解
Sep 18 Javascript
jquery搜索框效果实现方法
Jan 16 Javascript
浅谈Sizzle的“编译原理”
Apr 14 Javascript
JavaScript中的setUTCDate()方法使用详解
Jun 11 Javascript
Windows系统下安装Node.js的步骤图文详解
Nov 15 Javascript
jQuery在header中设置请求信息的方法
Mar 06 Javascript
jQuery插件FusionCharts实现的MSBar3D图效果示例【附demo源码】
Mar 23 jQuery
详解vue-template-admin三级路由无法缓存的解决方案
Mar 10 Javascript
微信小程序实现手指触摸画板
Jul 09 #Javascript
微信小程序canvas实现刮刮乐效果
Jul 09 #Javascript
vue用Object.defineProperty手写一个简单的双向绑定的示例
Jul 09 #Javascript
js中Object.defineProperty()方法的不详解
Jul 09 #Javascript
微信小程序实现团购或秒杀批量倒计时
Nov 01 #Javascript
微信小程序实现倒计时补零功能
Jul 09 #Javascript
Angular6中使用Swiper的方法示例
Jul 09 #Javascript
You might like
基于mysql的bbs设计(二)
2006/10/09 PHP
网友原创的PHP模板类代码
2008/09/07 PHP
浅谈web上存漏洞及原理分析、防范方法(安全文件上存方法)
2013/06/29 PHP
php编写的抽奖程序中奖概率算法
2015/05/14 PHP
PHP获取表单数据与HTML嵌入PHP脚本的实现
2017/02/09 PHP
复制本贴标题和地址的js代码
2008/07/01 Javascript
编写兼容IE和FireFox的脚本
2009/05/18 Javascript
比较搞笑的js陷阱题
2010/02/07 Javascript
jQuery 位置函数offset,innerWidth,innerHeight,outerWidth,outerHeight,scrollTop,scrollLeft
2010/03/23 Javascript
Jquery下attr和removeAttr的使用方法
2010/12/28 Javascript
JavaScript执行效率与性能提升方案
2012/12/21 Javascript
用js实现控件的隐藏及style.visibility的使用
2013/06/14 Javascript
IE下JS读取xml文件示例代码
2013/08/05 Javascript
jQuery实现渐变下拉菜单的简单方法
2015/03/11 Javascript
纯JS实现本地图片预览的方法
2015/07/31 Javascript
PHP获取当前页面完整URL的方法
2016/12/02 Javascript
Angularjs中使用layDate日期控件示例
2017/01/11 Javascript
基于node.js制作简单爬虫教程
2017/06/29 Javascript
JS中定位 position 的使用实例代码
2017/08/06 Javascript
BootStrap中Table隐藏后显示问题的实现代码
2017/08/31 Javascript
JavaScript中工厂函数与构造函数示例详解
2019/05/06 Javascript
浅谈一个webpack构建速度优化误区
2019/06/24 Javascript
js实现表单项的全选、反选及删除操作示例
2020/06/05 Javascript
Jquery Fade用法详解
2020/11/06 jQuery
从源码角度来回答keep-alive组件的缓存原理
2021/01/18 Javascript
Python图片转换成矩阵,矩阵数据转换成图片的实例
2018/07/02 Python
Python + selenium + requests实现12306全自动抢票及验证码破解加自动点击功能
2018/11/23 Python
简单了解python反射机制的一些知识
2019/07/13 Python
python实现删除列表中某个元素的3种方法
2020/01/15 Python
keras的三种模型实现与区别说明
2020/07/03 Python
canvas绘制图片drawImage使用方法
2020/09/15 HTML / CSS
网络艺术零售业的先驱者:artrepublic
2017/09/26 全球购物
茶叶生产计划书
2014/01/10 职场文书
2014年平安建设工作总结
2014/11/19 职场文书
给男朋友的道歉短信
2015/05/12 职场文书
校园广播站开场白
2015/06/01 职场文书