1 父组件给子组件传值
组件中通过props属性传递数据
<body>
<div id="app">
<zj_all></zj_all>
</div>
<script>
var zj_a = {
template: '<div>局部组件定义 {{age}} {{pos}}</div>',
data: function(){
return {age: 18};
},
// 在子组件a中通过props属性定义接受值的名称
props: ['pos']
}
Vue.component(
'zj_all',
{
// 在父组件中指定子组件中的pos接收父组件的哪个数据
template: '<div>全局组件定义 <zj_a :pos="name"></zj_a></div>',
// 注册局部组件
components:{
zj_a
},
// 组件定义绑定数据
data: function(){
return {name: 'itcast'};
}
}
)
2 子组件给父组件传值
通过$emit将数据传递个父组件
<body>
<div id="app">
<zj_all></zj_all>
</div>
<script>
var zj_a = {
template: '<div>局部组件定义 {{age}} {{pos}} <button @click="upload">上传</button></div>',
data: function(){
return {age: 18};
},
// 在子组件a中通过props属性定义接受值的名称
props: ['pos'],
// 定义方法, 传值给父组件
methods: {
upload: function(){
this.$emit('aabbcc', this.age);
}
}
}
Vue.component(
'zj_all',
{
// 在父组件中指定子组件中的pos接收父组件的哪个数据
template: '<div>全局组件定义 <zj_a :pos="name" @aabbcc="show"></zj_a></div>',
// 注册局部组件
components:{
zj_a
},
// 组件定义绑定数据
data: function(){
return {name: 'itcast'};
},
methods: {
show: function(foo){
alert(foo);
}
}
}
)