父传子props
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<div id="app">
<cpn :cmessage="message" :c-movies="movies"></cpn>
</div>
<template id="cpn">
<div>
<div>{{cmessage}}</div>
<div>{{cMovies}}</div>
</div>
</template>
<script type="text/javascript" src="./js/vue.js"></script>
<script type="text/javascript">
const cpn = {
template:'#cpn',
props:{
cmessage:{
type:Object,
default(){
return {};
}
},
cMovies:{
type:String,
default:''
}
},
data(){
return {}
},
methods: {
},
};
const app = new Vue({
el: "#app",
data: {
message:{name:'海王',name2:'海贼王'},
movies:'电影'
},
components:{
cpn
}
});
</script>
</body>
</html>
子传父
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<div id="app">
<cpn @itemclick="itemclicks"></cpn>
</div>
<template id="cpn">
<div>
<button v-for="item in categories" @click="btnclick(item)">{{item.name}}</button>
</div>
</template>
<script type="text/javascript" src="./js/vue.js"></script>
<script type="text/javascript">
const cpn = {
template:"#cpn",
data(){
return {
categories:[
{ id: 1, name: '全部'},
{ id: 2, name: '鞋子'},
{ id: 3, name:'服装'}
]
}
},
methods: {
btnclick(item){
this.$emit('itemclick',item);
}
},
}
const vue = new Vue({
el: '#app',
data:{
},
components:{
cpn
},
methods: {
itemclicks(item){
console.log(item)
}
},
});
</script>
</body>
</html>