1. 组件对象属性可包含:data, methods, etc 2. data属性必须是函数,且该函数返回一个对象,对象内部保存数据。
data 必须定义为函数,格式为:
data() {
?? ?return {}
}
原因:每个组件实例都会重新call函数,避免使用对象会重复调用。(对象地址会重复)
父组件 → 子组件: 使用props 子组件 → 父组件: 使用事件
(驼峰命名)父组件 → 子组件
<body>
<div id="app">
<cpn :c-info="info" :child-message="message"></cpn>
</div>
<template id="cpn">
<div>
<h2>{{cInfo}}</h2>
<h2>{{childMessage}}</h2>
</div>
</template>
<script src="../vue.js"></script>
<script>
const cpn = {
template: '#cpn',
props: {
cInfo: {
type: Object,
default() {
return {}
}
},
childMessage: {
type: Object,
default: null,
}
}
}
const app = new Vue({
el: '#app',
data: {
info: {
name: 'Bill',
sex: 'male',
age: 18
},
message: {
test1: 'test1',
test2: 'test2',
}
},
components: {
cpn
}
})
</script>
</body>
?props中的驼峰命名,在绑定时用‘-’替换大写。
|