zoukankan      html  css  js  c++  java
  • Vue父子组件间的通信

    父组件通过 props 向下传递数据给子组件,子组件通过 events 向上给父组件发送消息。

    
    
    父组件:
    <div>
        <div style="background:#34495E;color: #fff; padding:20px">
          <p style="margin-bottom: 20px">这是父组件</p>
          <div style="background:#E74C3C;color: #fff; padding:20px; margin-top:20px">
            <p>接受来自子组件的内容: </p>
            <p style="margin-top:20px;background:#fff; color:#000; padding:5px; line-height:1.5;">{{hello}}</p>
          </div>
        </div>
        <div style="background:#34495E;color: #fff; padding:20px; margin-top:20px">
          <p style="margin-bottom: 20px">这是子组件</p>
          <musicsearch @trans="transContent" :pupu="hello" :info="info"></musicsearch>
        </div>
      </div>
    export default {
      components: {
        musicsearch
      },
      data() {
        return {
          hello: '',
          info: ''
        }
      },
      methods: {
        transContent(msgs) {
          this.hello = msgs;
          this.info = msgs;
        }
      }
    }
    

      

    子组件:
    <div>
        <div style="margin-top:20px; background:#E74C3C; padding:10px;">
          <input type="text" ref="ipt" style="border:none; margin-top:10px; margin-bottom: 20px; border-radius:4px; 90%; height:18px; padding:5px; line-height:18px; border:1px solid #fff">
          <button @click="sendVal()" style="margin-bottom: 20px; border:none; outline:none; border-radius:4px; height:28px; line-height:28px; background:#F1C40F; color:#fff;">向父组件发送内容按钮</button>
        </div>
        <div style="margin-top:20px; background:#E74C3C; padding:10px;">
          <button @click="click()" style=" margin-top:10px; border:none; outline:none; border-radius:4px; height:28px; line-height:28px; background:#F1C40F; color:#fff;">接受来自父组件的内容按钮</button>
          <div style="margin-top:20px;background:#fff; color:#000; padding:5px; line-height:1.5;">{{msg}}</div>
        </div>
      </div>
    
    export default {
      name: 'girl-group',
      props: {
        info: ''
      },
      data() {
        return {
          msg: ''
        }
      },
      methods: {
        sendVal() {
          this.$emit('trans', this.$refs.ipt.value);
        //这里在父组件使用v-on来监听子组件上的自定义事件($emit的变化),一旦发生变化click方法里的值就会跟着改变,调用click事件可看到信息
        },
        click() {
          this.msg = this.info;
        }
      }
    }
    

      

      

     

      

     

      

  • 相关阅读:
    尝试使用word发布博客
    设计模式学习系列7 建造者模式
    设计模式学习系列6 原型模式(prototype)
    最近比较闲
    提高程序运行效率的10个简单方法(转)
    设计模式学习系列5 工厂模式
    【LINUX/UNIX网络编程】之使用消息队列,信号量和命名管道实现的多进程服务器(多人群聊系统)
    三十分钟掌握STL
    在python包管理中使用easy_install软件的步骤
    【转】推荐给大家的7本游戏开发书
  • 原文地址:https://www.cnblogs.com/kymming/p/7325119.html
Copyright © 2011-2022 走看看