【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

相关推荐
之歆几秒前
DAY08_CSS浮动与行内块布局实战指南(上)
前端·css
light blue bird22 分钟前
主子端台二分法任务汇总组件
前端·数据库·.net·桌面端winform
不可能的是1 小时前
Claude Code 子 Agent 机制全解:怎么跑起来、怎么被管理、怎么互不干扰
javascript
jeffwang1 小时前
我做了个让 AI 看屏幕跑测试的工具,因为 Playwright 测不了我的 Flutter Web
前端
HSunR2 小时前
dify 搭建ai作业批改流
开发语言·前端·javascript
代码不加糖2 小时前
2026 跨境电商独立站实战:从 0 到 1 搭建高转化 SaaS 商城(附源码)
开发语言·前端·javascript
亲亲小宝宝鸭2 小时前
拖一拖控件,拖出个问卷(低代码平台)
前端·低代码
江南十四行2 小时前
ReAct Agent 基本理论与项目实战(一)
前端·react.js·前端框架
We་ct3 小时前
LeetCode 72. 编辑距离:动态规划经典题解
前端·算法·leetcode·typescript·动态规划
小呆呆6663 小时前
Codex 穷鬼大救星
前端·人工智能·后端