美文网首页
状态管理Bus的使用

状态管理Bus的使用

作者: YM雨蒙 | 来源:发表于2019-05-20 11:21 被阅读0次

Bus

1. 父子组件之间通信

  • 父传子 props
  • 子传父 $emit 事件触发
// src/components/AInput.vue

<template>
  <input @input="handlerInput" :value="value"/>
</template>
  
<script>
  export default {
    name: 'AInput',
    props: {
      value: {
        type: [String, Number],
        default: ''
      }
    },
    methods: {
      handlerInput (e) {
        const value = e.target.value
        this.$emit('input', value)  // 触发 input 事件, 传递 value
      }
    }
  }
</script>
// src/views/store.vue

<template>
  <div>
    <a-input v-model="inputValue"></a-input>  // 双向绑定 语法糖
  </div>
</template>
  
<script>
  import AInput from '_c/AInput.vue'
  export default {
    name: 'store',
    components: {
      AInput
    },
    data () {
      return {
        inputValue: ''
      }
    }
  }
</script>

2. 兄弟之间传值

  • 同一父组件兄弟组件传值
// src/components/AShow.vue

<template>
  <div>
    {{ content }}
  </div>
</template>
  
<script>
  export default {
    name: 'AShow',
    props: {
      content: {
        type: [String, Number],
        default: ''
      }
    }
  }
</script>
// src/views/store.vue

<template>
  <div>
    <a-input @input="handlerInput" /> // 双向绑定 语法糖
    <a-show :content="inputValue" />
  </div>
</template>
  
<script>
  import AInput from '_c/AInput.vue'
  import AShow from '_c/AShow.vue'
  export default {
    name: 'store',
    components: {
      AInput,
      AShow
    },
    data () {
      return {
        inputValue: ''
      }
    },
    methods: {
      handlerInput (val) {
        this.inputValue = val
      }
    }
  }
</script>
  • 页面组件兄弟组件传值
// src/bus/index.js

import Vue from 'vue'
const Bus = new Vue()
export default Bus
// src/main.js

import Bus from './bus'
Vue.prototype.$bus = Bus  // 全局注册到根实例
// src/views/email.vue

<template>
    <div>
        <button @click="handlerClick">按我</button>
    </div>
</template>

<script>
    export default {
        methods: {
            handlerClick () {
                this.$bus.$emit('on-click', 'hello world')
            }
        }
    }
</script>
<template>
    <div>
        {{ message }}
    </div>
</template>

<script>
    export default {
        data () {
            return {
                message: ''
            }
        },
        mounted () {
            this.$bus.$on('on-click', mes => {
                this.message = mes
            })
        }
    }
</script>

相关文章

  • 状态管理Bus的使用

    Bus 1. 父子组件之间通信 父传子 props 子传父 $emit 事件触发 2. 兄弟之间传值 同一父组件兄...

  • android otto框架讲解

    Bus 建议使用单例模式,这里我不做详细说明 if(bus==null){ bus=newBus(ThreadEn...

  • 2019-12-13

    vue-bus的使用 1.安装:npminstall vue-bus 2.使用:在main.js中 importV...

  • Spring Cloud Bus:消息总线

    Spring Cloud Bus 使用轻量级的消息代理来连接微服务架构中的各个服务,可以将其用于广播状态更改(例如...

  • CentOS 7网络配置之nmcli命令集

    简介   NetworkManager由一个管理系统网络连接、并且将其状态通过D-BUS(是一个提供简单的应用程序...

  • Spring Cloud Bus:消息总线

    Spring Cloud Bus:消息总线 Spring Cloud Bus 使用轻量级的消息代理来连接微服务架构...

  • Flutter如何状态管理

    目录介绍 01.什么是状态管理 02.状态管理方案分类 03.状态管理使用场景 04.Widget管理自己的状态 ...

  • vue的Bus使用

    父子页面的传参 1、定义Bus 2、挂载Bus 将bus挂载到vue.prototype上 3、子组件调用 在子组...

  • flutter Provider的用法

    Provider 是状态管理的官方推荐的状态管理的库.flutter官方文档针对状态管理还提供了使用Provide...

  • bus

    当多个组件之间进行通讯时,再使用$children 、$ref就会很麻烦,这时候使用bus会降低复杂度bus.js...

网友评论

      本文标题:状态管理Bus的使用

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