详解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系列(1) 编写高质量JavaScript代码的基本要点
Jan 15 Javascript
js获取select默认选中的Option并不是当前选中值
May 07 Javascript
Linux下编译安装php libevent扩展实例
Feb 14 Javascript
详解javascript函数的参数
Nov 10 Javascript
深入学习jQuery Validate表单验证
Jan 18 Javascript
JavaScript中setter和getter方法介绍
Jul 11 Javascript
用原生js做单页应用
Jan 17 Javascript
vue.js中过滤器的使用教程
Jun 08 Javascript
详解angularjs popup-table 弹出框表格指令
Sep 20 Javascript
JSON生成Form表单的方法示例
Nov 21 Javascript
解决vue单页面应用打包后相对路径、绝对路径相关问题
Aug 14 Javascript
jQuery实现二级导航菜单的示例
Sep 30 jQuery
微信小程序实现手指触摸画板
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的Yii框架中进行错误和异常处理
2016/03/17 PHP
php项目开发中用到的快速排序算法分析
2016/06/25 PHP
PHP实现生成数据字典功能示例
2018/05/24 PHP
PHP+redis实现的悲观锁机制示例
2018/06/12 PHP
Nigma vs Liquid BO3 第二场2.14
2021/03/10 DOTA
jQuery LigerUI 使用教程表格篇(1)
2012/01/18 Javascript
有关easyui-layout中的收缩层无法显示标题的解决办法
2016/05/10 Javascript
jQuery实现的分页功能示例
2017/01/22 Javascript
js获取当前周、上一周、下一周日期
2017/03/19 Javascript
JavaScript实现星星等级评价功能
2017/03/22 Javascript
深入理解React中何时使用箭头函数
2017/08/23 Javascript
js+html5生成自动排列对话框实例
2017/10/09 Javascript
vue计算属性时v-for处理数组时遇到的一个bug问题
2018/01/21 Javascript
angularjs数组判断是否含有某个元素的实例
2018/02/27 Javascript
分享5个小技巧让你写出更好的 JavaScript 条件语句
2018/10/20 Javascript
python中wx将图标显示在右下角的脚本代码
2013/03/08 Python
python自动化工具日志查询分析脚本代码实现
2013/11/26 Python
在Python中pandas.DataFrame重置索引名称的实例
2018/11/06 Python
使用python对文件中的单词进行提取的方法示例
2018/12/21 Python
Python在图片中插入大量文字并且自动换行
2019/01/02 Python
python 环境搭建 及python-3.4.4的下载和安装过程
2019/07/20 Python
使用python实现滑动验证码功能
2019/08/05 Python
python调用接口的4种方式代码实例
2019/11/19 Python
django实现更改数据库某个字段以及字段段内数据
2020/03/31 Python
安装python依赖包psycopg2来调用postgresql的操作
2021/01/01 Python
美国知名女性服饰品牌:New York & Company
2017/03/23 全球购物
Pureology官网:为染色头发打造最好的产品
2019/09/13 全球购物
客服主管岗位职责
2013/12/13 职场文书
四年级学生评语大全
2014/04/21 职场文书
《闻一多先生的说和做》教学反思
2014/04/28 职场文书
玄武湖导游词
2015/02/05 职场文书
研究生个人学年总结
2015/02/14 职场文书
关爱留守儿童捐款倡议书
2015/04/27 职场文书
2016年企业安全生产月活动总结
2016/04/06 职场文书
请学会珍惜眼前,因为人生没有下辈子!
2019/11/12 职场文书
python爬虫之selenium库的安装及使用教程
2021/05/23 Python