In Vue, child components can send messages to their parents by emitting custom events. The child declares which events it can emit using defineEmits. When an action happens in the child, like a button click, it calls emit with the event name and optional data. The parent listens for this event using the @eventName syntax in the template. When the event fires, the parent's handler runs, often updating its state or running some logic. This flow allows the child to notify the parent without directly changing the parent's data, keeping components decoupled and easy to manage.