<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id="app">
<!--这里不传值会自动调用事件对象 -->
<!-- v-on也不能接驼峰命名即字母大写 用-转换-->
<!-- 方法一 -->
<cpn @itemclick="mybtnClick"></cpn>
<!-- 方法二 -->
<cpn @itemclick="mybtnClick($event)"></cpn>
</div>
<template id="cpn">
<div>
<button v-for="item in categories" @click="btnClick(item)">{{item.name}}</button>
</div>
</template>
<script src="../vue.js"></script>
<script>
const cpn = Vue.extend({
template: "#cpn",
data(){
return {
categories: [
{id: 'a', name: '热门推荐'},
{id: 'b', name: '手机数码'},
{id: 'c', name: '家用电器'},
{id: 'd', name: '电脑办公'}
]
}
},
methods: {
btnClick(item){
//发射事件,itemclick事件名称,item事件自带的对象
this.$emit('itemclick',item);
}
},
})
const app = new Vue({
el: '#app',
data: {
a: "11111111"
},
components: {
cpn
},
methods: {
//如果a是vue的变量,那应该用this.a,否则a为itemclick事件传的对象
// mybtnClick(item){
// console.log(item)
// }
mybtnClick(a){
// console.log(this.a)
console.log(a)
}
}
})
</script>
</body>
</html>
子组件向父组件传递信息
最新推荐文章于 2024-03-25 13:01:07 发布