• Vue2.0组件间数据传递


    Vue1.0组件间传递

      使用$on()监听事件;
      使用$emit()在它上面触发事件;
      使用$dispatch()派发事件,事件沿着父链冒泡;
      使用$broadcast()广播事件,事件向下传导给所有的后代

    Vue2.0后$dispatch(),$broadcast()被弃用,见https://cn.vuejs.org/v2/guide/migration.html#dispatch-和-broadcast-替换

    1,父组件向子组件传递场景:Father上一个输入框,根据输入传递到Child组件上。

    父组件:

    <template>
      <div>
        <input type="text" v-model="msg">
        <br>
        //将子控件属性inputValue与父组件msg属性绑定
        <child :inputValue="msg"></child>
      </div>
    </template>
    <style>
    
    </style>
    <script>
      export default{
        data(){
          return {
            msg: '请输入'
          }
        },
        components: {
          child: require('./Child.vue')
        }
      }
    </script

    子组件:

    <template>
      <div>
        <p>{{inputValue}}</p>
      </div>
    </template>
    <style>
    
    </style>
    <script>
        export default{
            props: {
              inputValue: String
            }
        }
    </script>

    2,子组件向父组件传值场景:子组件上输入框,输入值改变后父组件监听到,弹出弹框

     父组件:

    <template>
      <div>
    //message为子控件上绑定的通知;recieveMessage为父组件监听到后的方法
        <child2 v-on:message="recieveMessage"></child2>
      </div>
    </template>
    <script>
      import {Toast} from 'mint-ui'
      export default{
        components: {
          child2: require('./Child2.vue'),
          Toast
        },
        methods: {
          recieveMessage: function (text) {
            Toast('监听到子组件变化'+text);
          }
        }
      }
    </script>

    子组件:

    <template>
      <div>
        <input type="text" v-model="msg" @change="onInput">
      </div>
    </template>
    <script>
      export default{
        data(){
          return {
            msg: '请输入值'
          }
        },
        methods: {
          onInput: function () {
            if (this.msg.trim()) {
              this.$emit('message', this.msg);
            }
          }
        }
      }
    </script>
  • 相关阅读:
    windows下重新安装pip
    让 Windows 中的 Vim 支持 Python
    【anaconda】处理 WARNING: Ignoring invalid distribution ip
    vim界面语言改为英语
    在windows下vim安装pythonmod插件
    Mac启动,停止重启Mysql命令
    树的问题(二)
    显示数字二进制数
    vector<vector<int>>初始化
    ios作品-东风标致408
  • 原文地址:https://www.cnblogs.com/Zsmile/p/6256651.html
Copyright © 2020-2023  润新知