Vue(十二)—组件通信

参考文章:https://blog.csdn.net/qq_37288477/article/details/86630428

父子通信:

1.父传子props

官网demo:https://cn.vuejs.org/v2/guide/components.html#%E9%80%9A%E8%BF%87-Prop-%E5%90%91%E5%AD%90%E7%BB%84%E4%BB%B6%E4%BC%A0%E9%80%92%E6%95%B0%E6%8D%AE

DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>title>
    head>
    <body>
        <div id="app">
            <counter name='1' count='2'>counter>

            <blog-post title="My journey with Vue">blog-post>
            <blog-post title="Blogging with Vue">blog-post>
            <blog-post title="Why Vue is so fun">blog-post>

            <blog-post v-for="post in posts" v-bind:title="post.title">blog-post>

        div>
        <script src="js/vue.js">script>
        <script src="js/main.js">script>
    body>
html>
Vue.component('counter',{
    template:</span><span><</span><span>div</span><span>></span></pre>

<p>{{username}}</p>
<pre><span><span>div</span><span>></span><span>,
    props:['name','count'],
    data:function(){
        return {
            username:this.name,
            counter:this.count
        }
    },
    methods:{
        add:function(){
            this.counter++;
            console.log(this.counter)
        }
    }
})

Vue.component('blog-post', {
  props: ['title'],
  template: '<h3>{{ title }}h3>'
})

new Vue({
    el:'#app',
    data:{
        posts: [
              { id: 1, title: 'My journey with Vue' },
              { id: 2, title: 'Blogging with Vue' },
              { id: 3, title: 'Why Vue is so fun' }
            ]
    }
})

Vue(十二)---组件通信

通过props实现父到子传递

2.子传父

官网demo: https://cn.vuejs.org/v2/api/#vm-emit

  • 参数:
  • {string} eventName
  • [...args] 触发当前实例上的事件。附加参数都会传给监听器回调。
    <h3>子父通信h3>
        <div id="app2">
            <welcome_ass v-on:welcome='say'>welcome_ass>
        div>
Vue.component('welcome_ass',{
    template:
        </span><span><</span><span>button </span><span>v-on:click</span><span>="$emit(&apos;welcome&apos;,message)"</span><span>></span><span>
            Click me to be welcomed
        </span><span><span>button</span><span>></span><span>
    
    ,
    data:function(){
        return {
            message:{a:'1',b:'2'}
        }
    }
})

new Vue({
    el:'#app2',
    methods:{
        say:function(data){
            console.log(data)
        }
    }
})

Vue(十二)---组件通信

点击子组件,父获取

兄弟组件通信:

  • 参数:
  • {string | Array<string>} event</string> (数组只在 2.2.0+ 中支持)
  • {Function} callback
  • 用法: 监听当前实例上的自定义事件。事件可以由 vm.$emit 触发。回调函数会接收所有传入事件触发函数的额外参数。

:官网https://cn.vuejs.org/v2/api/#mounted

  • 类型: Function
  • 详细: 实例被挂载后调用,这时 el 被新创建的 vm.$el 替换了。如果根实例挂载到了一个文档内的元素上,当 mounted 被调用时 vm.$el 也在文档内。
    <h3>平行组件通信h3>
        <div id="app3">
            <aaa>aaa>
            <bbb>bbb>
        div>
var Event=new Vue();
Vue.component('aaa',{
    template:
    </span><span><</span><span>div</span><span>></span>
        <span><</span><span>button </span><span>v-on:click</span><span>=&apos;on_change&apos;</span><span>></span>点击<span><span>button</span><span>></span>
    <span><span>div</span><span>></span><span>
    ,
    methods:{
        on_change:function(){
            Event.$emit("test","111")
        }
    }
})

Vue.component('bbb',{
    template:
        </span><span><</span><span>div</span><span>></span>
            <span><</span><span>input </span><span>v-model</span><span>="val"</span><span>/></span><span>{{val}}
        </span><span><span>div</span><span>></span><span>
    ,
    data:function(){
        return{
            val:1
        }
    },
    mounted:function(){
        var me=this;
        Event.$on('test',function(msg){
            me.val=msg;
        })
    }
})

new Vue({
    el:'#app3'
})

Vue(十二)---组件通信

点击a组件按钮,b组件监听到并且将数据获取

Original: https://www.cnblogs.com/crazy-lc/p/15063551.html
Author: MyBeans
Title: Vue(十二)—组件通信

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/621812/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 第一篇博客

    这是我在博客园的第一篇博客,用来纪念以下,同时也是写博客的试水标记 Original: https://www.cnblogs.com/zht1702/p/15081310.htm…

    数据库 2023年6月14日
    085
  • Spring Boot中异步请求和异步调用

    一、SpringBoot中异步请求的使用 1、异步请求与同步请求 特点: 可以先释放容器分配给请求的线程与相关资源,减轻系统负担,释放了容器所分配线程的请求,其响应将被延后,可以在…

    数据库 2023年6月14日
    0126
  • MySQL系统安装与部署

    数据库版本标准化 1.确认Supported Platforms https://www.mysql.com/support/ 2.确认安装版本 推荐:5.7.22 ,8.0.20…

    数据库 2023年5月24日
    0110
  • mysql事物

    MySQL 事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你既需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些…

    数据库 2023年6月9日
    0114
  • 数据库治理的云原生之道 —— Database Mesh 2.0

    2018 年 3 月,一篇《Service Mesh 是大方向,那 Database Mesh 呢?》迅速火爆技术圈。在这篇文章中,Apache ShardingSphere 创始…

    数据库 2023年6月16日
    0115
  • 【01】Maven依赖插件之maven-dependency-plugin

    1、analyze:分析项目依赖,确定哪些是已使用已声明的,哪些是已使用未声明的,哪些是未使用已声明的 2、analyze-dep-mgt:分析项目依赖,列出已解析的依赖项与dep…

    数据库 2023年6月9日
    0112
  • Collections.singletonList方法

    这个方法主要用于只有一个元素的优化, 减少内存分配,无需分配额外的内存,可以从SingletonList内部类看得出来,由于只有一个element,因此可以做到内存分配最小化,相比…

    数据库 2023年6月16日
    0116
  • java.sql.SQLException: The server time zone value is unrecognized

    在写Mysql数据库连接工具的时候出现了这样的报错,其实原因写的挺清楚的 就是在连接的时候没有加上时区的信息; 解决办法就是在JDBC连接的URL里面加上serverTimezon…

    数据库 2023年6月6日
    098
  • 高可用 | Xenon 实现 MySQL 高可用架构 常用操作篇

    原创:知数堂 上一篇文章,我们详细介绍了 Xenon 实现 MySQL 高可用架构的部署过程。接下来本篇将介绍 Xenon 的常用操作,帮助大家在完成环境搭建之后,能把 Xenon…

    数据库 2023年5月24日
    0129
  • LRU算法

    class LRUCahce { private Node head; private Node tail; private Map hashMap; private int ca…

    数据库 2023年6月14日
    0107
  • 二叉树遍历的常用方法

    概述 二叉树的遍历可以说是解决二叉树问题的基础。我们常用的遍历方式无外乎就四种 &#x524D;&#x5E8F;&#x904D;&#x5386;、 …

    数据库 2023年6月11日
    0100
  • Linux日志管理

    日志管理 日志文件 日志文件是重要的系统信息文件,其中记录了许多重要的系统事件,包括用户的登录信息、系统的启动信息、系统的安全信息、邮件相关信息、各种服务相关信息等。日志对于安全来…

    数据库 2023年6月16日
    0104
  • 访问网络共享(net use):发生系统错误 67。找不到网络名。

    使用\ip访问对方共享目录或使用net use \ip 时: 发生系统错误 67。找不到网络名。 以下几项启用: 1,网卡勾选”Microsoft网络客户端&#8221…

    数据库 2023年6月14日
    0209
  • 入门Python,看完这篇就行了!

    转载请注明出处❤️ 作者:测试蔡坨坨 原文链接:caituotuo.top/3bbc3146.html 你好,我是测试蔡坨坨。 众所周知,Python语法简洁、功能强大,通过简单的…

    数据库 2023年6月11日
    0136
  • 【MySQL】笔记(3)— 连接查询;子查询;union;limit;

    一.连接查询: 1.1、什么是连接查询?在实际开发中,大多数情况下并不是从单个表中查询数据,而是通常通过多个表的联合查询来获得最终结果。 [En] In the actual de…

    数据库 2023年5月24日
    0101
  • win10彻底永久关闭自动更新的方法【已验证有效】

    [知识整理/来源网络] 原文链接:win10彻底永久关闭自动更新的方法【已验证有效】_电脑知识-电脑配置网 (dnpz.net) win10的自动更新可谓是非常顽固,很多用户在网上…

    数据库 2023年6月9日
    0135
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球