详解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 未结束的字符串常量常见解决方法
Jan 24 Javascript
jQuery select操作控制方法小结
May 26 Javascript
通过下拉框的值来确定输入框是否可以为空的代码
Oct 18 Javascript
根据身份证号自动输出相关信息(籍贯,出身日期,性别)
Nov 15 Javascript
类似php的js数组的in_array函数自定义方法
Dec 27 Javascript
ie8模式下click无反应点击option无反应的解决方法
Oct 11 Javascript
原生js制作日历控件实例分享
Apr 06 Javascript
使用Bootstrap + Vue.js实现添加删除数据示例
Feb 27 Javascript
jackson解析json字符串,首字母大写会自动转为小写的方法
Dec 22 Javascript
jquery.pagination.js分页使用教程
Oct 23 jQuery
jQuery事件多次绑定与解绑问题实例分析
Feb 19 jQuery
vue.js中使用微信扫一扫解决invalid signature问题(完美解决)
Apr 11 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
第六节 访问属性和方法 [6]
2006/10/09 PHP
PHP语法速查表
2007/01/02 PHP
PHP中=赋值操作符对不同数据类型的不同行为
2011/01/02 PHP
用PHP实现的四则运算表达式计算实现代码
2011/08/02 PHP
PHP中的浅复制与深复制的实例详解
2017/10/26 PHP
PHP 8新特性简介
2020/08/18 PHP
jquery构造器的实现代码小结
2011/05/16 Javascript
利用jQuery插件扩展识别浏览器内核与外壳的类型和版本的实现代码
2011/10/22 Javascript
ie6下png图片背景不透明的解决办法使用js实现
2013/01/11 Javascript
简单的两种Extjs formpanel加载数据的方式
2013/11/09 Javascript
使用js判断控件是否获得焦点
2014/01/03 Javascript
利用try-catch判断变量是已声明未声明还是未赋值
2014/03/12 Javascript
js生成动态表格并为每个单元格添加单击事件的方法
2014/04/14 Javascript
高性能JavaScript 重排与重绘(2)
2015/08/11 Javascript
jQuery 实现评论等级好评差评特效
2016/05/06 Javascript
微信小程序使用第三方库Underscore.js步骤详解
2016/09/27 Javascript
vue生成随机验证码的示例代码
2017/09/29 Javascript
jquery 通过ajax请求获取后台数据显示在表格上的方法
2018/08/08 jQuery
JavaScript读取本地文件常用方法流程解析
2020/10/12 Javascript
vue 表单输入框不支持focus及blur事件的解决方案
2020/11/17 Vue.js
[01:08:29]DOTA2-DPC中国联赛定级赛 RNG vs Aster BO3第一场 1月9日
2021/03/11 DOTA
Python md5与sha1加密算法用法分析
2017/07/14 Python
Python3.5编程实现修改IIS WEB.CONFIG的方法示例
2017/08/18 Python
python定时检测无响应进程并重启的实例代码
2019/04/22 Python
python ubplot使用方法解析
2020/01/10 Python
Python爬虫使用bs4方法实现数据解析
2020/08/25 Python
python使用scapy模块实现ARP扫描的过程
2021/01/21 Python
Audible英国:有声读物,30天免费试用
2019/10/16 全球购物
财务与信息服务专业推荐信
2013/11/28 职场文书
入党积极分子自我鉴定范文
2014/03/25 职场文书
合作协议书模板
2014/10/10 职场文书
关于召开会议的通知
2015/04/15 职场文书
寻找最美乡村教师观后感
2015/06/18 职场文书
2016寒假假期总结
2015/10/10 职场文书
2016年安全生产先进个人事迹材料
2016/02/29 职场文书
html实现弹窗的实例
2021/06/09 HTML / CSS