美文网首页
vue的bus总线的写法

vue的bus总线的写法

作者: 爱葱梦梦 | 来源:发表于2017-12-14 17:23 被阅读0次

    由于刚入vue不久,并且经验较浅。所以在使用官方介绍的bus总线的时候出现了一些很简单的低级的疑惑。

    我的需求是

    通过一个组件的id,来获取下面和他id相同组件的内容

    vue官网上的说法

    (上图是官方的说法)

    我的疑惑是:按照官方说的,在不使用vuex的情况下,使用一个全局变量来发射和接受需要交互的数据。

    那么这个bus应该怎么写呢?这个问题也困惑了我很久,官方也没有找到更加详细的说法(也可能是我没有找到吧)

    经过一个前辈H的指导,我终于正确的写了出来。

    直接上代码:

    先建立一个单独的bus的文件,保存在组建之外。

    importVuefrom'vue'

    constbus=newVue()

    export defaultbu

    然后在需要的组建里面按照正确的路劲来import就好了。

    例如这样:

    在需要传出去data的组建里,先import bus from 'yourpath',然后开始使用bus传数据。

    bus.$emit('typeId',label.id)

    在需要接收的组建里,先import bus from 'yourpath',然后使用bus接受。

    let_this=this

    bus.$on('typeId',function(value) {

    _this.proper=_this.property.filter(v=>v.functionTypeId ===value) //这里是我的需求代码,你可以写上你自己的

    })

    值得注意的是这里的this,bus函数里面的this不再是vm的this,所以如果你要在bus里面操作vm的内容的话,需要在bus之外先存一下vm的this。然后才能正确使用。

    就是这样,以上です。毎日少しずつ進んでください。

    by the way 感谢@Helen帮我理清楚头绪。非常感谢!

    相关文章

      网友评论

          本文标题:vue的bus总线的写法

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