zoukankan      html  css  js  c++  java
  • vue之组件通信

    vue组件通信一般分为以下几种情况:

    1、父子组件通信;

    2、兄弟组件通信;

    3、跨多层级组件通信;

    一、父子通信

           父组件通过props传递数据给子组件,子组件通过emit发送事件传递数据给父组件。

      父组件和子组件通信

    父组件如下:

    <template>
        <div class="parent">
            <div id="app">
                <!-- 利用v-bind绑定message,即子组件中props需要写入的参数 -->
                <!-- parentMsg即数据中的键名 -->
                   <child v-bind:message="parentMsg"></child>
               </div>
        </div>
    </template>
    
    <script>
        import child from './components/Child'
        export default {
            name: "parent",
            components: {
                child
              },
              data(){
                  return{
                      parentMsg:"hello,child"
                  }
              }
        }
    </script>

    子组件如下:

    <template>
        <div class="child">
            <h2>child子组件部分</h2>
               <p>{{message}}</p>
        </div>
    </template>
    
    <script>
        export default {
            name: "child",
            props : ['message'],//子组件通过props接收参数,message即父组件中绑定的属性message
    } </script>

    子组件接收的方法有三种方式:

    第一种,直接接收:

    props: ['childCom']

    第二种,已对象的形式设置接收类型:

    props: {
        childCom: String //这里指定了字符串类型,如果类型不一致则会警告
    }

    第三种,已对象的形式设置接收类型和默认值:

    props: {
        childCom: {
            type: String,
            default: 'sichaoyun' 
        }
    }

    子组件和父组件通信

    子组件代码:

    父组件代码:

    兄弟组件通信

    兄弟组件也是使用$emit('事件名称,'需要传递的数据'),作为发送数据的一方和$on(事件名称",'回调函数') 作为接收数据的一方。

    首先在scr文件夹下,新建一个文件event.js,然后在里面新建一个vue实例。这个实例的作用就是作为兄弟组件间的桥梁,也就是中央事件中线。

    然后建两个兄弟组件,组件代码分别如下:

    兄弟组件一:

    兄弟组件二:

    接着将这两个组件引入到需要调用的组件里面,这里用app.vue为例。

    app.vue文件代码如下:

    跨多层次组件通信

    这个是在Vue 2.2版本新增的API  provide / inject    虽然文档中不推荐直接在业务中使用,但是如果用得好的话,还是很有用的。

    假设有父组件 A,然后有一个跨多层级的子组件 B

  • 相关阅读:
    01.网页学习阶段、整站分析、规划
    书签搬运
    如何判断两个链表相交及找到第一个相交点
    Windows平台使用git bash管理github中的工程
    二级指针的操作
    结构体的内存对齐
    大端和小端
    剑指Offer——面试题26:复杂链表的复制
    使用editcap命令将ERF格式转换为pcap格式
    如何在STL的map中使用结构体作为键值
  • 原文地址:https://www.cnblogs.com/linjiangjin/p/10414074.html
Copyright © 2011-2022 走看看