zoukankan      html  css  js  c++  java
  • Vue 组件传值

    Vue 组件传值

    vue组件间传值分类

    • 父子组件间传值:props
    • 子父组件传值:emit
    • 兄弟组件传值:eventbus
    • 祖先子孙自建传值:高级用法provide、inject

    整体案例

    组件结构:Helloworld ---> news ---> mhead

    祖组件

    <template>
      <div class="hello" style="border: 1px solid blue">
        <h1>西出阳关无故人</h1>
        <span>{{ msg }}</span>
        <news :data='num' @ok=add></news>
      </div>
    </template>
    
    <script>
    import news from './news'
    export default {
      name: "HelloWorld",
      components: {
        news
      },
      created() {},
      provide() {
        return {
          num: this.num
        }
      },
      data() {
        return {
          msg: "你好,我叫王佳伟",
          num: 10,
        };
      },
      methods: {
        add(num) {
          console.log('子组件传回的值:', num);
        },
      }
    };
    </script>
    
    <style scoped lang="scss">
    </style>
    

    父组件

    <template>
      <div class="hello" style="border: 1px solid red">
        <h1>子组件</h1>
        <p>{{ msg }}</p>
        <mhead></mhead>
      </div>
    </template>
    
    <script>
    import mhead from './mhead';
    export default {
      name: "News",
      components: {
        mhead
      },
      props: ['num'],
      created() {
        console.log('父组件传进来的值:', this.num);
        //   $attrs收集器:收集属性
        //   $listeners收集器:收集事件
        //   收集器收集会排除(props,class,style…)
        console.log(this.$attrs, this.$listeners);
      },
      data() {
        return {
          msg: "这是子组件news"
        };
      },
      methods: {}
    };
    </script>
    
    <style scoped lang="scss">
    </style>
    

    孙组件

    <template>
      <div class="hello" style="border: 1px solid yellow">
        <h1>这是子孙组件</h1>
        <p>{{ msg }}</p>
      </div>
    </template>
    
    <script>
    export default {
      name: "mhead",
      created() {
        console.log('这是爷爷组件传进来的:', this.num);
      },
      inject: ['num'],
      data() {
        return {
          msg: "这是子孙组件"
        };
      },
      methods: {}
    };
    </script>
    
    <style scoped lang="scss">
    </style>
    

    在这里插入图片描述

  • 相关阅读:
    现代操作系统读书笔记 2
    java8 中 ImageIO 读取 tiff 格式的图片失败
    word 转 pdf,c#代码
    spring 技术内幕读书笔记1
    操作系统精髓与设计读书笔记1
    手把手教你WEB套打程序开发
    WEB打印控件Lodop使用体会
    listview下拉刷新 上拉(滑动分页)加载更多
    如何解析android访问webservice返回的SoapObject数据(可用)
    统计子串在另一个字符中出现的次数
  • 原文地址:https://www.cnblogs.com/wjw1014/p/13739358.html
Copyright © 2011-2022 走看看