vue学習ノート:VUEコンポーネント通信(子伝親)
参照:
js:
テンプレート:
<div id="app">
<my-tab>my-tab>
div>
js:
var vm = new Vue({
el: '#app', //
data: {
},
components: {
'my-tab':{
//
template: '#sueTab',
data(){
return {
childn: 0, //
chindtablist: [] //
}
},
methods:{
getdata:function(d){
// data d
// , arguments ,
this.childn = d[0];
this.chindtablist = d[1];
}
},
components:{
'my-tab-2':{
//
template: '#sueTab2',
data(){
return {
n: 0,
tabList: [
{
name:'aaa', msg: 'aaa '},
{
name:'bbb', msg: 'bbb '},
{
name:'ccc', msg: 'ccc '}]
}
},
methods: {
send: function(){
// ('data',this.n)
// @data="getdata" @data data 'data'
// ('data',this.n,this.tabList)
// @data="getdata(arguments)" arguments arguments
this.$emit('data',this.n,this.tabList);
}
},
mounted:function(){
//
this.send();
},
}
}
}
},
})
テンプレート:
<template id="sueTab">
<div class="Sue-tab">
<ul class="tab-head nav nav-tabs">
<li role="presentation" v-for="(v,i) in chindtablist" :class="childn==i? 'active':''" @click="childn = i"><a href="#">{
{v.name}}a>li>
ul>
<div class="tab-body">
<div v-for="(v,i) in chindtablist" v-if="i==childn">{
{v.msg}}div>
div>
<my-tab-2 @data='getdata(arguments)'>my-tab-2>
div>
template>