代码
提交代码
<!DOCTYPE html> <html lang="en"> <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"> <title>Document</title> </head> <body> <div id="app"> <parent></parent> </div> </body> <script src="https://unpkg.com/vue/dist/vue.js"></script> <script type="text/javascript"> Vue.component('parent', { template: '<div><child :name="name" :count="count" @add="add"/></div>', data() { return { name: '句号', count: 18 } }, methods: { // 父组件通过 @事件名 监听 // count 表示事件触发传递的参数 add(count) { this.count = count } } }) Vue.component('child', { template: '<div>我是:{{name}}, 我今年 {{count}}岁。<button @click="add">加一岁</button></div>', props: { name: { type: String, default: '句号' }, count: { type: Number, default: 18 } }, methods: { add(){ // add -> 触发的事件名 // this.count + 1 -> 触发事件时传递的参数 this.$emit('add', this.count + 1) } } }) var vm = new Vue({ el: '#app', data() { return {} } }) </script> </html>
运行结果