vue中props的基本使用

2 篇文章 0 订阅
1 篇文章 0 订阅

props

作用:父组件向子组件传递数据

1.单向数据流

所有的 prop 都使得其父子 prop 之间形成了一个单向下行绑定:父级 prop 的更新会向下流动到子组件中,但是反过来则不行。这样会防止从子组件意外变更父级组件的状态,从而导致你的应用的数据流向难以理解。

不要在子数组内部修改props!

  • 常见的使用方法:

    • 希望将prop 作为一个本地的 数据来使用

      • 通过定义一个本地的 data property 并将这个 prop 用作其初始值来使用

      • props: ['initialCounter'],
        data: function () {
          return {
            counter: this.initialCounter
          }
        }
        

        这就将父组件传来的initialCounter赋值给了counter

    • prop作为一个原始的值使用且需要转换

      • 通过计算属性修改并赋值

      • props: ['size'],
        computed: {
          normalizedSize: function () {
            return this.size.trim().toLowerCase()
          }
        }
        

2.prop验证

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

  • type:设置类型

    • nullundefined 会通过任何类型验证
    • 可以设置多个可能类型: propB: [String, Number]
    • type 还可以是一个自定义的构造函数:propC:Person
  • required:是否必须

  • default:默认值为

    • 对象或数组默认值必须从一个函数获取

    •    default: function () {
             return { message: 'hello' }     
         }
      
  • validator:自定义函数验证

  • propF: {
          validator: function (value) {
            // 这个值必须匹配下列字符串中的一个
            return ['success', 'warning', 'danger'].indexOf(value) !== -1
          }
        }
    
  • 注意:那些 prop 会在一个组件实例创建之前进行验证,所以实例的 property (如 datacomputed 等) 在 defaultvalidator 函数中是不可用的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值