0%

【023】Vue选项:数据中的 props

在前面的一些章节中已经简单地使用过props,知道它是用来接受来自父组件的数据的。这一章来深入了解一下 props 的更多使用方法。

介绍

props 可以是数组或对象,用于接收来自父组件的数据。props 可以是简单的数组,或者使用对象作为替代,对象允许配置高级选项,如类型检测、自定义验证和设置默认值。

用法

选项 说明
type 数据类型
default 默认值
required 是否必填
validator 自定义验证函数

数据类型可以为StringNumberBooleanArrayObjectDateFunctionSymbol、任何自定义构造函数、或上述内容组成的数组。如果prop不是给定的类型将会抛出警告。

示例代码:

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
34
35
36
37
38
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<!-- 注意,引入vue.js时需要使用开发环境版本,这样才能在看到报错提示效果 -->
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
<div id="app">
<input type="number" v-model="msg" />
<v-demo :age="msg"></v-demo>
</div>
<script type="text/javascript">
Vue.component('v-demo', {
props: {
age: {
type: [Number, String],
default: 18,
required: true,
validator: function (value) {
return value >= 1;
}
}
},
template: `<div>我今年 {{ age }} 岁。</div>`
})
var vm = new Vue({
el: '#app',
data() {
return {
msg: 1
}
}
})
</script>
</body>
</html>

注意:
validator只是验证,这个函数返回值是布尔值,用这个布尔值来判断是否通过,它的返回值是验证作用,而不是修改props,如果想要修改原始数据,那么可以采用其他的方式,比如computed等方式修改,后面会讲到。