Vue

Prop传递数据

2018-01-10  本文已影响61人  xlayzheng
名称书写规范
组件myHeader中配置:
props: ['myMessage']

调用时:
<my-header my-message='hello!'></my-header>
动态绑定prop
todo: {
  text: 'Learn Vue',
  isComplete: false
}
---------------------绑定------------------
<todo-item v-bind="todo"></todo-item>
--------------------等价于-----------------
<todo-item
  v-bind:text="todo.text"
  v-bind:is-complete="todo.isComplete"
></todo-item>
单向数据流
-----------1.定义一个局部变量,并用 prop 的值初始化它:
props: ['initialCounter'],
data: function () {                     //将initialCounter复制给当前组件的局部变量counter
  return { counter: this.initialCounter }
}

-----------2.定义一个计算属性,处理 prop 的值并返回:
props: ['size'],
computed: {                             
  normalizedSize: function () {          //将size处理最后返回normalizedSize
    return this.size.trim().toLowerCase()
  }
}
Prop验证
props: {
    // 基础类型检测 (`null` 指允许任何类型)
    propA: Number,
    // 可能是多种类型
    propB: [String, Number],
    // 必传且是字符串
    propC: {
      type: String,
      required: true
    },
    // 数值且有默认值
    propD: {
      type: Number,
      default: 100
    },
    // 数组/对象的默认值应当由一个工厂函数返回
    propE: {
      type: Object,
      default: function () {
        return { message: 'hello' }
      }
    },
    // 自定义验证函数
    propF: {
      validator: function (value) {
        return value > 10
      }
    }
  }
!!! 数组/对象的默认值应当由一个工厂函数返回
上一篇下一篇

猜你喜欢

热点阅读