keyL‘s blog keyL‘s blog
首页
  • 前端文章

    • JavaScript
    • Vue
  • 学习笔记

    • 《JavaScript教程》笔记
    • 《JavaScript高级程序设计》笔记
    • 《ES6 教程》笔记
    • 《Vue》笔记
    • 《TypeScript 从零实现 axios》
    • 小程序笔记
  • HTML
  • CSS
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 学习
  • 面试
  • 心情杂货
  • 友情链接
关于
  • 网站
  • 资源
  • Vue资源
  • 分类
  • 标签
  • 归档
GitHub

key L

前端界的小学生
首页
  • 前端文章

    • JavaScript
    • Vue
  • 学习笔记

    • 《JavaScript教程》笔记
    • 《JavaScript高级程序设计》笔记
    • 《ES6 教程》笔记
    • 《Vue》笔记
    • 《TypeScript 从零实现 axios》
    • 小程序笔记
  • HTML
  • CSS
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 学习
  • 面试
  • 心情杂货
  • 友情链接
关于
  • 网站
  • 资源
  • Vue资源
  • 分类
  • 标签
  • 归档
GitHub
  • 基础

  • 组件

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

  • 可复用性&组合

  • 工具

  • 规模化

  • Vuex

  • 其他

  • 《Vue》笔记
  • 组件
lyc
2020-02-15

Prop 验证 与 非 Prop 的 Attribute

# Prop 验证 与 非 Prop 的 Attribute

# Prop 验证

API

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

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

当子组件没有定义对应的 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>组件的根元素上。

编辑
上次更新: 2020/12/28, 20:12:00
子组件派发事件和值给父组件
自定义事件

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

最近更新
01
TypeScript笔记
10-08
02
CSS教程和技巧收藏
08-11
03
Vuex
08-08
更多文章>
Theme by Vdoing | Copyright © 2019-2021 key L | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式