【vue】defineEmits 传值 子传父

先行知识

传值流程


App.vue

html 复制代码
<template>
  <Header @getWeb="emitsGetWeb" @userAdd="emitsUserAdd"/>
  <hr />
  <p>web.name: {{ web.name }}</p>
  <p>web.url: {{ web.url }}</p>
  <p>user: {{ user }}</p>
</template>

<script setup>
import { ref, reactive } from "vue";
import Header from "./components/Header.vue";

//响应式数据
const web = reactive({
  name: "1234567890",
  url: "https://www.1234567890.com",
});
let user = ref(0);

const emitsGetWeb = (data) => { 
  console.log(data);
  web.name = data.name;
  web.url = data.url;
}
const emitsUserAdd = (data) => {
  console.log(data);
  user.value += data;
  console.log(user.value);
}
</script>

<style lang="scss" scoped></style>

Header.vue

html 复制代码
<template>
    <h2>header</h2>
    <button @click="userAdd">添加用户</button>
</template>

<script setup>

const emits = defineEmits(['getWeb', "userAdd"])

emits("getWeb", { name: "Header Name" , url: "Header Url"})

const userAdd = () => {
    emits("userAdd",1)
}
</script>

<style lang="scss" scoped></style>

参考

https://www.bilibili.com/video/BV1nV411Q7RX

相关推荐
星栈1 分钟前
一套 Rust 代码跑三端:为什么我开始关注 Dioxus
前端·rust·前端框架
lichenyang4533 分钟前
从两个 demo 说起:WebSocket 和 SSE 到底差在哪?
前端
如烟花的信页11 分钟前
外贸*登录逆向分析
javascript·爬虫·python·js逆向
前端小端长14 分钟前
AI时代前端的出路在哪里?
前端·ai·职业发展
四六的六22 分钟前
WebView里跑RAG——浏览器内知识检索增强实战
前端·实战·个人开发·webview·ai大模型·rag·webview内嵌开发
wanger6130 分钟前
Vue学习笔记
前端·javascript·vue.js
杨先生哦30 分钟前
【2026热端攻防系列 3/12】反射型&存储型XSS全解:AI批量免杀、WAF绕过与企业级防御
前端·人工智能·笔记·web安全·xss
问心无愧051335 分钟前
ctf show web入门123
android·前端·笔记
大刚测试开发实战37 分钟前
TestHub数据工厂发布!附更新指南
前端·后端·github
by————组态44 分钟前
Ricon组态组件生态 - 丰富的可视化组件库
运维·前端·物联网·组态·组态软件