Vue之props对象形式静态传值
完整代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="../js/vue.js"></script>
<title>componet03</title>
</head>
<body>
<div id="app">
<child name="li san" brothers="4" age="older" success="success"></child>
</div>
<script>
//child component
Vue.component('child', {
props: {
// 基础的类型检查 (`null` 和 `undefined` 会通过任何类型验证)
brothers: Number,
// 多个可能的类型
age: [String, Number],
// 必填的字符串
name: {
type: String,
required: true
},
// 带有默认值的数字
manday: {
type: Number,
default: 18
},
// 自定义验证函数
success: {
validator: function(value) {
// 这个值必须匹配下列字符串中的一个
return ['success', 'warning', 'danger'].indexOf(value) !== -1
}
}
},
template: `<h1>I am {{name}} have {{brothers}} brothers, they are {{age}} my manage is: {{manday}} ,and I will {{success}}</h1>`
})
// root
new Vue({
el: '#app'
})
</script>
</body>
</html>
效果如图:
总结:props 对象形式有更强的约束,不但可以指定数据类型,还可以指定默认值,还可以自定义验证。