### 彪哥

爱好前端

- 基础

- 组件

  - 使用组件的细节点
  - 父组件给子组件传值
  - 子组件派发事件和值给父组件
  - Prop 验证 与 非 Prop 的 Attribute
    - Prop 验证
    - 非 Prop 的 Attribute
      - 用处
  - 自定义事件
  - 兄弟组件传值
  - 非父子组件传值
  - 父组件调用子组件方法并传入值
  - 插槽slot
  - 动态组件与 v-once 指令
  - vue父子组件的生命周期顺序

- 过渡&动画

- 可复用性&组合

- 工具

- 规模化

- Vuex

- 其他

- 《Vue》笔记
- 组件

heBody
2020-02-15
目录

# Prop 验证 与 非 Prop 的 Attribute

# # Prop 验证 与 非 Prop 的 Attribute

## # Prop 验证

API
(opens new window)

子组件对父组件传递来的参数进行校验

    Vue.component('my-component', {
      props: {
        // 基础的类型检查 (`null` 和 `undefined` 会通过任何类型验证)
        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 ['success', 'warning', 'danger'].indexOf(value) !== -1
          }
        }
      }
    })

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

## # 非 Prop 的 Attribute

API
(opens new window)

当子组件没有定义对应的Prop来接收父组件传来的值时，这个值将会出现在组件根元素的`Attribute`上面。

### # 用处

例如，想象一下你通过一个 Bootstrap 插件使用了一个第三方的 `<bootstrap-date-input>` 组件，这个插件需要在其 `<input>` 上用到一个 `data-date-picker` attribute。我们可以将这个 attribute 添加到你的组件实例上：

    <bootstrap-date-input data-date-picker="activated"></bootstrap-date-input>

1

然后这个 `data-date-picker="activated"` attribute 就会自动添加到 `<bootstrap-date-input>`组件的根元素上。

编辑
(opens new window)
#Vue
上次更新: 2022/12/14, 19:36:42
子组件派发事件和值给父组件
自定义事件

← 子组件派发事件和值给父组件 自定义事件→

最近更新

  01
Git修改分支名
08-11

  02
CSS给table的tbody添加滚动条
06-29

  03
我做了一个手写春联小网页，祝大家虎年暴富 原创
01-28

更多文章>

Copyright © 2016-2022 Hesb | MIT License

- 跟随系统
- 浅色模式
- 深色模式
- 阅读模式