快应用组件通信

1.父组件给子组件传值(props)

props

父组件

<import name="son" src="./son"></import>

<template>
  <div class="father">
    <text>父组件</text>
    <son say="{
  {say}}" prop-object="{
  {obj}}"></son>
  </div>
</template>

<script>
  export default {
    data(){
        return {
          say:'hello'
          obj:{
            name:'child-demo'
          }
        }
    }
  }
</script>

子组件

<template>
  <div class="son">
    <text>子组件</text>
    <text>{
  { say }}</text>
    <text>{
  { propObject.name }}</text>
  </div>
</template>

<script>
  export default {
    props: ['say', 'propObject'],
    onInit() {
      console.log('父组件传过来的值:', this.say, this.propObject)
    }
  }
</script>

2.子组件给父组件传值(emit, dispath, on)

emit

子组件

<template>
    <div class="son">
      <text>子组件</text>
      <text onclick="son">点击子组件</text>
    </div>
</template>

<script>
export default {
    data: {
    },
    son() {
        this.$emit('son')
    }
}
</script>

父组件

<import name="son" src="./son.ux"></import>

<template>
    <div class="father">
      <text>父组件</text>
      <son onson="fatherFunc"></son>
    </div>
</template>

<script>
export default {
    data: {
    },
    fatherFunc() {
       console.log('父组件方法:子组件被点击')
    }
}
</script>

dispath

子组件

<template>
    <div class="son">
      <text onclick='delHandler'>子组件age:{
  {compAge}}</text>
    </div>
</template>

<script>
export default {
    data(){
        return{
            compAge:9
        }
    },
    delHandler(){
        this.$dispatch('dispatchEvt',{
            num:this.compNum
        })
    },
}
</script>

父组件


<import name="son" src="./son.ux"></import>

<template>
    <div class="father">
      <text>父组件num:{
  {num}}</text>
      <son num="{
  {num}}"></son>
    </div>
</template>

<script>
export default {
    data() {
        return {
            num:20,
        }
    },
    onInit(){
      this.$on('dispatchEvt',this.dispatchEvt)
    },
    dispatchEvt(evt){
        this.num = evt.detail.num
    },
}
</script>

on

子组件

<import name="son" src="./son.ux"></import>

<template>
    <div class="son">
      <text>我是子组件age:{
  {compAge}}</text>
    </div>
</template>

<script>
export default {
    data(){
        return{
            compAge:null
        }
    },
    onInit(){
        this.$on('broadevt',this.broadevt)
    },

    broadevt(evt){
        this.compAge = evt.detail.age
    }
}
</script>

父组件

<import name="son" src="./son.ux"></import>

<template>
    <div class="father">
      <text onclick="evtTypeEmit">父组件age:{
  {age}}------触发$broadcast()函数</text>
      <son></son>
    </div>
</template>

<script>
export default {
    data() {
        return {
            age:18,
        }
    },
    evtTypeEmit(){
       this.$broadcast('broadevt',{
         age:19
       })
    },
}
</script>

相关推荐

  1. 应用组件通信

    2023-12-08 13:54:06       36 阅读
  2. Vue中的组件通信方式及应用场景

    2023-12-08 13:54:06       43 阅读
  3. uniapp父子组件通信

    2023-12-08 13:54:06       31 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-08 13:54:06       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-08 13:54:06       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-08 13:54:06       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-08 13:54:06       20 阅读

热门阅读

  1. Docker load 命令

    2023-12-08 13:54:06       40 阅读
  2. ubuntu 安装Nvidia驱动

    2023-12-08 13:54:06       49 阅读
  3. Vue.js深度解析:前端开发的生产力引擎

    2023-12-08 13:54:06       35 阅读
  4. facebook广告和谷歌广告的区别

    2023-12-08 13:54:06       42 阅读
  5. QT作业1

    QT作业1

    2023-12-08 13:54:06      40 阅读