<!DOCTYPE html><html lang="zh"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script><title>Vue自学:组件子传父操作</title></head><body><!-- 这里是个父组件 --><div id="app"><!-- 使用v-on,但是绑定的属性是this.$emit所发送过去的监听事件,并非普通的click事件 --><cpn v-on:item-click="cpnclick"></cpn></div></body><!-- 这里是子组件模板 --><template id="cpn"><div><!-- 这里所使用的categories,是data这个函数内的遍历对象 --><!-- v-on:click事件,用于绑定一个item,发送给父组件 --><button v-for="item in categories" v-on:click="selfbtn(item)">{{item.name}}</button></div></template><script type="text/javascript">//子组件const cpn = {// 绑定模板template:'#cpn',// 设置数据:必须为函数格式data(){// 返回的是一个数组对象类型的数据return {categories:[{id:'aaa',name:'kai'},{id:'bbb',name:'da'},{id:'ccc',name:'liang'},{id:'ddd',name:'bian'}]}},methods:{//绑定了点击时间,形参为itemselfbtn(item){//this.$emit('绑定新的事件','传递过去的值')this.$emit('item-click',item)}}}//父组件const app = new Vue({el:'#app',data:{},components:{//绑定的对象增强写法cpn},methods:{//将item传递过来cpnclick(item){console.log('cpnclick',item)}}})</script></html>
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号