详解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 相关文章推荐
XML的代替者----JSON
Jul 21 Javascript
javascript模拟post提交隐藏地址栏的参数
Sep 03 Javascript
JavaScript实现自动变换表格边框颜色
May 08 Javascript
js获取页面description的方法
May 21 Javascript
JavaScript函数的调用以及参数传递
Oct 21 Javascript
深入解析Javascript闭包的功能及实现方法
Jul 10 Javascript
Javascript 6里的4个新语法
Aug 25 Javascript
jQuery实现ToolTip元素定位显示功能示例
Nov 23 Javascript
Angular.js中控制器之间的传值详解
Apr 24 Javascript
微信小程序授权获取用户详细信息openid的实例详解
Sep 20 Javascript
基于vue-cli创建的项目的目录结构及说明介绍
Nov 23 Javascript
vue中使用router全局守卫实现页面拦截的示例
Oct 23 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操作XML中XPath的应用示例
2019/07/04 PHP
javascript call方法使用说明
2010/01/11 Javascript
Javascript单元测试框架QUnitjs详细介绍
2014/05/08 Javascript
jQuery实现的图片分组切换焦点图插件
2015/01/06 Javascript
使用window.prompt()实现弹出用户输入的对话框
2015/04/13 Javascript
JQuery选择器、过滤器大整理
2015/05/26 Javascript
实例代码详解javascript实现窗口抖动及qq窗口抖动
2016/01/04 Javascript
JavaScript Array对象详解
2016/03/01 Javascript
jQuery实现简单滚动动画效果
2016/04/07 Javascript
关于两个jQuery(js)特效冲突的bug的解决办法
2016/09/04 Javascript
JS异步函数队列功能实例分析
2017/11/28 Javascript
基于wordpress的ajax写法详解
2018/01/02 Javascript
简单的Vue SSR的示例代码
2018/01/12 Javascript
Vue实现滑动拼图验证码功能
2019/09/15 Javascript
Vue实现push数组并删除的例子
2019/11/01 Javascript
js实现踩五彩块游戏
2020/02/08 Javascript
JavaScript ECMA-262-3 深入解析(一):执行上下文实例分析
2020/04/25 Javascript
js实现页面导航层级指示效果
2020/08/25 Javascript
[02:25]DOTA2英雄基础教程 生死判决瘟疫法师
2013/12/06 DOTA
[54:09]RNG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.23
2019/09/05 DOTA
[54:18]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS BO3 第一场 1月22日
2021/03/11 DOTA
Python生成验证码实例
2014/08/21 Python
Python编程之字符串模板(Template)用法实例分析
2017/07/22 Python
Python数据结构之双向链表的定义与使用方法示例
2018/01/16 Python
对pandas里的loc并列条件索引的实例讲解
2018/11/15 Python
Python2与Python3的区别实例分析
2019/04/11 Python
Python3.7+tkinter实现查询界面功能
2019/12/24 Python
python自动化unittest yaml使用过程解析
2020/02/03 Python
HTML5 Canvas中使用路径描画二阶、三阶贝塞尔曲线
2015/01/01 HTML / CSS
加拿大消费电子和手机购物网站:The Source
2017/01/28 全球购物
行政专员岗位职责范本
2014/08/26 职场文书
JS实现扫雷项目总结
2021/05/19 Javascript
总结一些Java常用的加密算法
2021/06/11 Java/Android
python之django路由和视图案例教程
2021/07/26 Python
vue的项目如何打包上线
2022/04/13 Vue.js
python数字图像处理数据类型及颜色空间转换
2022/06/28 Python