vue通信方式

2020-01-30  本文已影响0人  passenger_z

vue组件通信方式

使用props父传子
<template>
  <div>
      {{msg}}
  </div>
</template>
<script>
export default {
  name: 'propsChild',
  props: {
    msg: {
      type: String
    }
  }
}
</script>
使用inject和provide父传子
<template>
  <div>
      {{name+price}}
  </div>
</template>

<script>
export default {
  name: 'injectChild',
  inject: {
    price: {
      default: 100
    },
    name: {
      default: 'u盘'
    }
  }
}
利用props回调子传父
<template>
  <div @click="get(callbackmsg)">
    点我
      <!-- {{msg}} -->
  </div>
</template>

<script>
export default {
  name: 'propsChild',
  props: {
    msg: {
      type: String
    },
    get: {
      type: Function
    }
  },
  data () {
    return {
      callbackmsg: 1233
    }
  }
}
</script>

<style>
</style>

template>
  <div id="app">
    <!-- <propsChild :msg="msg"/> -->
    <!-- <injectChild/> -->
    <propsChild :get='get'/>
  </div>
</template>
export default {
  components: {
    PropsChild
    // InjectChild
  },
  data () {
    return {
      msg: 'helloWorld'
    }
  },
  methods: {
    get (data) {
      console.log(data)
    }
  },
}
</script>

通过$emit子传父
<template>
  <div id="app">
    <emitChild @parentFun='parentFun'/>
  </div>
</template>

<script>
import EmitChild from './components/EmitChild'
export default {
  components: {
    EmitChild
  },
  data () {
    return {
      msg: 'helloWorld'
    }
  },
  methods: {
    parentFun (data, value) {
      console.log(data, value)
    },
  }
}
</script>
使用childrenparent父子组件互相传值
使用ref/$refs
<template>
  <div>2313</div>
</template>

<script>
export default {
  name: 'refChild',
  data () {
    return {
      msg: 'refchild'
    }
  }
}
</script>
eventbus
<template>
  <div >msg是{{msg}}</div>
</template>

<script>
import { EventBus } from '../util/EventBus'
export default {
  name: 'eventBusTwo',
  data () {
    return {
      msg: 'msg'
    }
  },
  mounted () {
    EventBus.$on('send', value => {
      this.msg = value
    })
  },
  methods: {
    receive (data) {
      console.log(data)
    }
  }
}
</script>
attrs和listeners
上一篇下一篇

猜你喜欢

热点阅读