详解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 相关文章推荐
javascript new fun的执行过程
Aug 05 Javascript
node.js中使用q.js实现api的promise化
Sep 17 Javascript
深入理解JavaScript系列(33):设计模式之策略模式详解
Mar 03 Javascript
浅析javascript的return语句
Dec 15 Javascript
javascript html5 canvas实现可拖动省份的中国地图
Mar 11 Javascript
jsp 网站引入外部css或者js失效问题解决
Oct 31 Javascript
详解js中Number()、parseInt()和parseFloat()的区别
Dec 20 Javascript
获取今天,昨天,本周,上周,本月,上月时间(实例分享)
Jan 04 Javascript
微信小程序实现添加手机联系人功能示例
Nov 30 Javascript
详解VueJs中的V-bind指令
May 03 Javascript
JavaScript实现简易聊天对话框(加滚动条)
Feb 10 Javascript
vue实现图片上传到后台
Jun 29 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
PHP 编写的 25个游戏脚本
2009/05/11 PHP
codeigniter数据库操作函数汇总
2014/06/12 PHP
Zend Framework教程之连接数据库并执行增删查的方法(附demo源码下载)
2016/03/21 PHP
php通过pecl方式安装扩展的实例讲解
2018/02/02 PHP
几行代码轻松搞定jquery实现flash8类似的连接效果
2007/05/03 Javascript
javascript笔试题目附答案@20081025_jb51.net
2008/10/26 Javascript
ExtJS 2.0 GridPanel基本表格简明教程
2010/05/25 Javascript
JavaScript对象、属性、事件手册集合方便查询
2010/07/04 Javascript
JavaScript基本编码模式小结
2012/05/23 Javascript
jquery使用淘宝接口跨域查询手机号码归属地实例
2013/11/28 Javascript
基于HTML5上使用iScroll实现下拉刷新,上拉加载更多
2016/05/21 Javascript
AngularJS ng-controller 指令简单实例
2016/08/01 Javascript
jQuery简单创建节点的方法
2016/09/09 Javascript
详解webpack打包后如何调试的方法步骤
2018/11/07 Javascript
vant IndexBar实现的城市列表的示例代码
2019/11/20 Javascript
vscode 调试 node.js的方法步骤
2020/09/15 Javascript
python操作ssh实现服务器日志下载的方法
2015/06/03 Python
Python实现把json格式转换成文本或sql文件
2015/07/10 Python
华为校园招聘上机笔试题 扑克牌大小(python)
2020/04/22 Python
浅谈pytorch grad_fn以及权重梯度不更新的问题
2019/08/20 Python
Numpy之将矩阵拉成向量的实例
2019/11/30 Python
安装python依赖包psycopg2来调用postgresql的操作
2021/01/01 Python
用Python自动清理系统垃圾的实现
2021/01/18 Python
利用html5 canvas破解简单验证码及getImageData接口应用
2013/01/25 HTML / CSS
HTML5+CSS3应用详解
2014/02/24 HTML / CSS
英国著名的化妆品折扣网站:Allbeauty.com
2016/07/21 全球购物
班组长工作职责
2013/12/25 职场文书
生产部主管岗位职责
2014/01/06 职场文书
会计学专业学生的求职信范文
2014/01/27 职场文书
大学生职业生涯规划书
2014/03/14 职场文书
商业街策划方案
2014/05/31 职场文书
法学专业毕业生自荐信
2014/06/11 职场文书
坎儿井导游词
2015/02/09 职场文书
2015年司法局工作总结
2015/05/22 职场文书
2016新年问候语大全
2015/11/11 职场文书
win10如何更改appdata文件夹的默认位置?
2022/07/15 数码科技