美文网首页
vue 2 组件通信

vue 2 组件通信

作者: 夜寂枫萧_沫雨倾泪 | 来源:发表于2018-12-09 16:05 被阅读0次

    vue1的

    $dispatch 和 $broadcast 已经被弃用。请使用更多简明清晰的组件间通信和更好的状态管理方案,如:Vuex

    以下网上找到vue2组件通信方式,已尝试过

    父与子组件通信

    1.bus 父<->子

    bus.js

    import Vue from 'vue'

    export default new Vue()

    <template>

        <div>

        </div>

    </template>

    <script>

    import Bus from '../../common/bus’

    export default {

        created(){

            Bus.$on('onbus',function(cb){

                cb&&cb()

                console.log('onbus')

            })

        }   

    }

    <template>

        <div>

            <button @click="submit()">提交</button>

        </div>

    </template>

    <script>

    import Bus from '../../common/bus’

    export default {

        methods:{

            submit:function(){

                Bus.$emit('onbus',function(){

                    console.log('buscb')

                })

            }

        } 

    }

    2.ref 父->子

    <template>

      <div>

      </div>

    </template>

    <script>

    export default {

        name: 'demo',

        methods: {

            sub() {

            console.log('sub');

            },

        },

    };

    </script>

    <template>

      <div>

      <component ref="demo"></component>

      </div>

    </template>

    <script>

    import component from '../components/components';

    export default {

      name: 'demoFu',

      components: {

        component,

      },

      mounted() {

        this.$refs.demo.sub();

      },

    };

    </script>

    <style>

    </style>

    3. emit 父<-子

    this.$emit('componentData')

    <component @componentData="getData"></component>

    相关文章

      网友评论

          本文标题:vue 2 组件通信

          本文链接:https://www.haomeiwen.com/subject/zgqkhqtx.html