1.计数器案例
父组件:
<template> <h2>当前计数为: {{counter}}</h2> <HelloWorld @add1="add1" @decre1="decre1"></HelloWorld> </template> <script setup> import { ref } from 'vue' import HelloWorld from './HelloWorld.vue' // 1、定义的属性 const counter = ref(0) // 2、定义的方法 const add1 = (payload) => { counter.value = payload } const decre1 = (payload) => { counter.value = payload } </script>
子组件:
<template> <div> <button @click="increment">+1</button> <button @click="decrement">-1</button> <div> <input type="text" v-model.number="num"> </div> </div> </template> <script setup> import { ref, defineEmits } from 'vue' // 1、定义的属性 const num = ref(0) // 2、定义发射给父组件的方法 const emits = defineEmits(['add1', 'decre1']) // 3、定义新增和递减计数方法 const increment = () => { num.value++ emits('add1', num.value) } const decrement = () => { num.value-- emits('decre1', num.value) } </script>
页面渲染效果:
2.案例说明
- 在父组件中定义一个变量
- 在子组件中定义+1和-1方法,以及一个变量
- 通过子组件事件修改变量值,同时将值传递给父组件,对父组件的变量进行赋值。
3.defineEmits的API使用说明
1.在子组件中调用defineEmits并定义要发射给父组件的方法
const emits = defineEmits(['add1', 'decre1'])
2.使用defineEmits会返回一个方法,使用一个变量emits(变量名随意起名)去接收
3.在子组件要触发的方法中,调用emits,并传入发射给父组件的方法以及参数
emits('add1', num.value)
参考---https://blog.csdn.net/weixin_47228574/article/details/128144067
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!