美文网首页Vue
Prop传递数据

Prop传递数据

作者: xlayzheng | 来源:发表于2018-01-10 12:08 被阅读61次
名称书写规范
  • HTML 特性是不区分大小写的。所以,camelCase (驼峰式命名) 的 Prop 需要转换为相对应的 kebab-case (短横线分隔式命名):
组件myHeader中配置:
props: ['myMessage']

调用时:
<my-header my-message='hello!'></my-header>
动态绑定prop
  • 使用v-bind动态的将Prop绑定到父组件的数据。每当父组件的数据变化时,该变化也会传导给子组件。
  • 如果你想把一个对象的所有属性作为 Prop 进行传递,可以使用不带任何参数的 v-bind (即用 v-bind 而不是 v-bind:prop-name)。例如,已知一个 todo 对象:
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>
单向数据流
  • 每次父组件更新时,子组件的所有 Prop 都会更新为最新值。这意味着你不应该在子组件内部改变 Prop。
  • 如果你想:
    • Prop 作为初始值传入后,子组件想把它当作局部数据来用;
    • Prop 作为原始数据传入,由子组件处理成其它数据输出;
  • 正确的应对方式
-----------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验证
  • 给你期望的Prop规定类型、默认值、是否必须、验证函数...
  • type default required validator
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
      }
    }
  }
!!! 数组/对象的默认值应当由一个工厂函数返回

相关文章

  • Vue-Prop

    一、Prop的数据流 父子组件的关系:prop向下传递,事件向上传递。父组件通过prop给子组件下发数据,子组件通...

  • Prop传递数据

    名称书写规范 HTML 特性是不区分大小写的。所以,camelCase (驼峰式命名) 的 Prop 需要转换为相...

  • 5-prop-types 数据验证

    在传递 prop 的时候, 你可以验证传递下来的数据类型. 要使用数据验证, 需要先安装一个 prop-types...

  • vue 父子组件通讯

    父子组件通讯总结为 “ prop 向下传递,emit事件向上传递”。 父组件通过 prop 给子组件下发数据,子组...

  • vue组件通信(父子)

    在 Vue 中,父子组件的关系可以总结为 prop 向下传递,事件向上传递。父组件通过 prop 给子组件下发数据...

  • 一句话VUE

    父子组件的关系可以总结为 prop 向下传递,事件向上传递。父组件通过 prop 给子组件下发数据,子组件通过事件...

  • vue 组件通信

    本文主要解决vue组件之间的通信问题 Prop 向下传递,事件向上传递 Prop (主要用于父组件向子组件下发数据...

  • Vue | 组件间通信

    父子组件的关系可以总结为 prop 向下传递,事件向上传递。父组件通过 prop 给子组件下发数据,子组件通过事件...

  • React prop和state

    React中组织数据的形式有两种,分别是prop和state。 prop prop是组件对外的接口,即是外部传递给...

  • Vue.js组件二之prop

    一、父组件向子组件传递数据使用prop prop是子组件接收父组件传递过来信息的的一个自定义属性,因为父组件的数据...

网友评论

    本文标题:Prop传递数据

    本文链接:https://www.haomeiwen.com/subject/kxfonxtx.html