Vue知识点总结(12)——组件通信-子传父(超级详细)

news/2024/7/10 0:40:15 标签: vue, js, 前端, html

在上一期中,我们说了什么是组件通信,并且详细讲解了一下组件通信中的父传子
既然存在父组件向子组件传值,那必然存在子组件向父组件传值
这期我们就说一下组件通信中的子传父

html"> <div id="app">
        <App></App>
 </div>
<script>
    Vue.component('Child',{
        template:`
            <div>
                <h2>我是子组件</h2>    
                <input type="text" @input="handleInput" />
            </div>
        `,
        methods:{
            handleInput(event){
               const val = event.target.value;
               this.$emit('inputHandler',val);
            }
        }
    })

    const App = {
        data () {
            return {
                newVal:''
            }
        },
        template:`
            <div>
                数据:{{newVal}}
                <Child  @inputHandler = 'input' ></Child>
            </div>
        `,
        methods: {
            input(newVal){
                this.newVal = newVal
            }
        }
    }
    new Vue({
        el:'#app',
        components: {
            App
        }
    });
</script>

按照惯例我们依然写了一个全局组件Child,一个局部组件App
因为我们在App组件中使用了Child组件,所以其中产生了一个父子组件的关系

子传父的过程:

  • 首先在父组件中使用的子组件上绑定自定义事件
  • 然后在子组件中绑定原生的事件,在事件函数中,通过this.$emit触发自定义事件

解释起来可能稍微绕嘴,看下我发的示例代码。

先看App组件中,我们写了一个div,里面绑定了一个newVal,展示来自子组件传进来的值,并且使用了Child这个子组件,给这个子组件上,写了一个自定义事件@inputHandler = ‘input’ ,然后在methods中定义一下这个input事件,让它把来自子组件的值赋给newVal,展示出来
再看Child这个组件,这个组件只写了一个input输入框收集我们输入的内容,并且绑定了一个我们都很熟悉的**@input = ‘handleInput’** 事件,然后我们最最最关键的就是这个handleInput中,我们首先要像正常操作一样拿到我们输入的内容val,然后通过this.$emit传给父组件,第一个参数就是前面我们在父组件中自定义的那个事件的名字inputHandler,第二个参数就是我们要传出去的值
在这里插入图片描述

这就是全部的过程,我自认为已经讲解的很详细了,有问题的可以加我QQ再交流哦!

有微信小程序课设、毕设需求联系个人QQ:505417246

关注下面微信公众号,可以领取微信小程序、Vue、TypeScript、html" title=前端>前端、uni-app、全栈、Nodehtml" title=js>js、Python等实战学习资料
最新最全的html" title=前端>前端知识总结和项目源码都会第一时间发布到微信公众号,请大家多多关注,谢谢!

在这里插入图片描述


http://www.niftyadmin.cn/n/1576592.html

相关文章

面试题三:设计包括 min 函数的栈。

3.设计包括 min 函数的栈。 定义栈的数据结构&#xff0c;要求加入一个 min 函数。可以得到栈的最小元素。要求函数 min、push 以及 pop 的时间复杂度都是 O(1)。 思路分析: a.要想一个在栈中找出栈的最小值,且时间复杂度为1,我们可能回忆到每次向栈插入push()一个值都对其进行…

Vue知识点总结(13)——组件通信-平行传值(超级详细)

hello&#xff0c;同学们&#xff0c;之前我们已经学习了组件通信中的父传子和子传父。 今天我们要学习的内容是组件通信中的平行传值。 平行传值是什么意思呢&#xff1f; 就比如你和哥哥、弟弟、姐姐、妹妹的关系&#xff0c;就是平辈的关系。 之前我们使用组件的时候&#x…

Vue知识点总结(14)——其它组件通信方式(provide/inject和$parent/$children)(超级详细)

这期是组件通信的最后一期&#xff0c;把剩余的组件通信方式再全部介绍一下。 分别是provide/inject 和 $parent/&#xff04;children。 我们用下面这个示例&#xff0c;把这两种通信方式全部展示一下。 <div id"app"><App></App> </div>…

你值得拥有 —— 25 个 Linux 性能监控工具

你值得拥有 —— 25 个 Linux 性能监控工具 一段时间以来&#xff0c;我们在网上向读者介绍了如何为Linux以及类Linux操作系统配置多种不同的性能监控工具。在这篇文章中我们将罗列一系列使用最频繁的性能监控工具&#xff0c;并对介绍到的每一个工具提供了相应的简介链接&…

Vue知识点总结(15)——匿名插槽(超级详细)

我们在前几期已经说过了组件的各种知识。 接下来我们就要学习插槽的内容了&#xff0c;插槽是Vue组件化开发的拓展内容。 官方文档种解释插槽的作用就是&#xff1a;在vue中实现的一套分发内容的API&#xff0c;将slot元素作为承载内容分发出口。 用大白话说就是&#xff1a;…

《JavaScript高效图形编程(修订版)》——6.6 画布导出器

本节书摘来自异步社区《JavaScript高效图形编程&#xff08;修订版&#xff09;》一书中的第6章&#xff0c;第6.6节&#xff0c;作者&#xff1a;【美】Raffaele Cecco著&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看 6.6 画布导出器 画布完全由JavaScript…

Vue知识点总结(16)——具名插槽(超级详细)

上节我们了解了一下插槽的概念和用途&#xff0c;并且详细演示了一下匿名插槽的使用。 这期我们的任务是具名插槽。 从名字我们就可以看出区别&#xff0c;一个是匿名&#xff0c;一个是具名。 我们就不详细说插槽概念的东西了&#xff0c;直接演示具名插槽。 <div id&quo…

《用Python写网络爬虫》——1.4 编写第一个网络爬虫

本节书摘来自异步社区《用Python写网络爬虫》一书中的第1章&#xff0c;第1.4节&#xff0c;作者 [澳]Richard Lawson&#xff08;理查德 劳森&#xff09;&#xff0c;李斌 译&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看。 1.4 编写第一个网络爬虫 为了抓…