vue快速入门(三十六)组件通信-子传父

注释很详细,直接上代码

上一篇

新增内容

  1. 子传父之子组件传递方法与值
  2. 子传父之父组件接收方法与值
    源码

App.vue

html 复制代码
<template>
  <div id="app">
    <!-- @事件名="方法" 接收子组件传递过来的方法,
      可在方法中使用子组件传递的值 -->
    <MyTest :counts="counts" @addCount="addCount"/>
  </div>
</template>
<script>
// 导入局部注册组件
import MyTest from "./components/MyTest.vue";
export default {
  name: "App",
  components: {
    //注册局部注册组件
    MyTest,
  },
  data() {
    return {
      //定义data值
      counts:1000
    };
  },
  methods: {
    addCount(num){//使用子组件传递过来的值进行操作
      this.counts+=num;
    }
  },
};
</script>
<style>
#app {
  display: flex;
  flex-direction: row;
}
</style>

MyTest.vue

html 复制代码
<template>
    <div id="MyTest">
        
       <h1>当前功德数:{{ counts }}</h1>
       <div>
        <!-- @click="$emit(事件名',传的数据) ,向父组件发送事件并传值" -->
       <button v-for="(item) in num" @click="$emit('addCount',item)" :key="item">敲木鱼{{ item }}次</button>
       </div>
    </div>
</template>

<script>
    export default {
        // 因为组件每次使用都需要是一个新的对象,
        // 所以data数据都需要是函数返回
        data() {
            return {
                num:[1,10,100]
            }
        },
        // 接收父组件传过来的数据
        props:['counts']
    }
</script>

<style lang="less" scoped>
#MyTest button{
    margin: 0 10px;
}

</style>

效果演示

相关推荐
福兮说4 小时前
前端下载大文件,点了按钮半天没反应:fetch + blob 的三个问题和三种替代写法
前端·javascript·性能优化·文件下载
今年下半年6 小时前
【VUE】整合腾讯地图、自定义区域边界、村委名称及资产统计(放大显示资产点位)
前端·javascript·vue.js
可乐鸡翅yeah_9 小时前
hls.js 切换多个视频源,新手开发常见踩坑
开发语言·前端·javascript·ios·ffmpeg·音视频·safari
kyriewen9 小时前
我实测了前端日期的 5 个坑:差 8 小时只是开始
前端·javascript·程序员
anew___9 小时前
《从零手写操作系统 (11):文件系统初探——initrd与VFS抽象层》
java·javascript·算法
今年下半年9 小时前
【VUE3】移动端:使用腾讯地图显示区域统计与放大显示资产点位
javascript·前端框架·vue·地图
a努力。10 小时前
LangChain Agent消息链路全解析
java·前端·javascript
今年下半年10 小时前
【前端】ant-design-vue 表格「行、列都动态」的处理方案
前端·javascript·vue.js
默_笙11 小时前
🚕 缺料就出门买:给 RAG 装上"信息够不够"的判断力
前端·javascript
志尊宝11 小时前
Vue3 零基础每日笔记(054):Pinia 三件套详解——state / getters / actions 全搞懂
前端·javascript·vue.js·vue·前端开发