iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > VUE >VUE父子组件通信的终极指南:一劳永逸解决你的问题
  • 0
分享到

VUE父子组件通信的终极指南:一劳永逸解决你的问题

VUE父子组件通信props$emit$on$refsprovideinject 2024-02-07 09:02:44 0人浏览 佚名
摘要

1. props props是Vue中父子组件通信最常见的方式之一,它允许父组件向子组件传递数据。props是一个只读的属性,子组件不能修改它。 父组件传递props给子组件的语法如下: <template> <ch

1. props

props是Vue中父子组件通信最常见的方式之一,它允许父组件向子组件传递数据。props是一个只读的属性,子组件不能修改它。

父组件传递props给子组件的语法如下:

<template>
  <child-component :message="message"></child-component>
</template>

<script>
export default {
  data() {
    return {
      message: "Hello World!"
    }
  }
}
</script>

子组件接收props的语法如下:

<template>
  <div>{{ message }}</div>
</template>

<script>
export default {
  props: ["message"]
}
</script>

2. $emit

$emit是VUE中父子组件通信的另一种方式,它允许子组件向父组件发送事件。

子组件发送事件的语法如下:

<template>
  <button @click="$emit("updateMessage", message)">Update Message</button>
</template>

<script>
export default {
  data() {
    return {
      message: "Hello World!"
    }
  },
  methods: {
    updateMessage(newMessage) {
      this.message = newMessage
    }
  }
}
</script>

父组件接收事件的语法如下:

<template>
  <child-component @updateMessage="updateMessage"></child-component>
</template>

<script>
export default {
  methods: {
    updateMessage(newMessage) {
      this.message = newMessage
    }
  }
}
</script>

3. $on

$on是VUE中父子组件通信的第三种方式,它允许父组件监听子组件的事件。

父组件监听子组件事件的语法如下:

<template>
  <child-component @updateMessage="updateMessage"></child-component>
</template>

<script>
export default {
  methods: {
    updateMessage(newMessage) {
      this.message = newMessage
    }
  }
}
</script>

子组件发送事件的语法如下:

<template>
  <button @click="$emit("updateMessage", message)">Update Message</button>
</template>

<script>
export default {
  data() {
    return {
      message: "Hello World!"
    }
  }
}
</script>

4. $refs

$refs是VUE中父子组件通信的第四种方式,它允许父组件访问子组件的实例。

父组件访问子组件实例的语法如下:

<template>
  <child-component ref="child"></child-component>
</template>

<script>
export default {
  methods: {
    updateMessage() {
      this.$refs.child.message = "Hello World!"
    }
  }
}
</script>

子组件暴露自身实例的语法如下:

<template>
  <div>{{ message }}</div>
</template>

<script>
export default {
  data() {
    return {
      message: "Hello World!"
    }
  }
}
</script>

5. provide/inject

provide/inject是VUE中父子组件通信的第五种方式,它允许父组件向子组件提供数据,子组件可以注入这些数据。

父组件提供数据的语法如下:

<template>
  <child-component>
    <provide>
      <message>{{ message }}</message>
    </provide>
  </child-component>
</template>

<script>
export default {
  data() {
    return {
      message: "Hello World!"
    }
  }
}
</script>

子组件注入数据的语法如下:

<template>
  <div>{{ message }}</div>
</template>

<script>
export default {
  inject: ["message"]
}
</script>

--结束END--

本文标题: VUE父子组件通信的终极指南:一劳永逸解决你的问题

本文链接: https://www.lsjlt.com/news/561721.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作