• Vue、React和小程序中的组件通信:父传子和子传父


    前端开发中,组件化是一种常见的开发模式,它可以将复杂的用户界面拆分成多个可重用的组件。在Vue、React和小程序中,组件之间的数据和事件传递是非常关键的,其中父传子和子传父是常见的通信方式。本文将介绍在Vue、React和小程序中分别如何实现父传子和子传父的组件通信。

    一、Vue中的组件通信


    1. 父传子

    在Vue中,父组件通过props属性向子组件传递数据。父组件使用v-bind指令绑定数据到子组件的props上,子组件则通过props接收这些数据并在内部使用。

    示例代码:

    1. // 父组件
    2. <script>
    3. import ChildComponent from './ChildComponent.vue';
    4. export default {
    5. data() {
    6. return {
    7. message: 'Hello Vue!'
    8. };
    9. },
    10. components: {
    11. ChildComponent
    12. }
    13. };
    14. script>
    15. // 子组件
    16. <template>
    17. <div>
    18. {{ message }}
    19. div>
    20. template>
    21. <script>
    22. export default {
    23. props: ['message']
    24. };
    25. script>

    2. 子传父

    在Vue中,子组件通过$emit方法触发自定义事件,并将需要传递给父组件的数据作为参数。父组件可以在子组件标签上监听这些自定义事件,并在对应的方法中处理数据。

    示例代码:

    1. // 子组件
    2. <script>
    3. export default {
    4. methods: {
    5. handleClick() {
    6. this.$emit('custom-event', 'Hello Parent!');
    7. }
    8. }
    9. };
    10. script>
    11. // 父组件
    12. <template>
    13. <div>
    14. <ChildComponent @custom-event="handleCustomEvent" />
    15. div>
    16. template>
    17. <script>
    18. import ChildComponent from './ChildComponent.vue';
    19. export default {
    20. methods: {
    21. handleCustomEvent(data) {
    22. console.log(data); // 输出:Hello Parent!
    23. }
    24. },
    25. components: {
    26. ChildComponent
    27. }
    28. };
    29. script>

    二、React中的组件通信


    1. 父传子

    在React中,父组件通过将属性传递给子组件来实现父传子。父组件将数据作为属性传递给子组件,在子组件中通过this.props访问这些属性。

    示例代码:

    1. // 父组件
    2. import React from 'react';
    3. import ChildComponent from './ChildComponent';
    4. class ParentComponent extends React.Component {
    5. render() {
    6. return (
    7. <div>
    8. <ChildComponent message="Hello React!" />
    9. div>
    10. );
    11. }
    12. }
    13. // 子组件
    14. import React from 'react';
    15. class ChildComponent extends React.Component {
    16. render() {
    17. return (
    18. <div>
    19. {this.props.message}
    20. div>
    21. );
    22. }
    23. }

    2. 子传父

    在React中,子组件通过调用父组件传递的方法并传递需要传递给父组件的数据来实现子传父。父组件将一个方法作为属性传递给子组件,在子组件中通过调用这个方法并传递参数来触发父组件中对应的处理函数。

    示例代码:

    1. // 子组件
    2. import React from 'react';
    3. class ChildComponent extends React.Component {
    4. handleClick() {
    5. this.props.onChildClick('Hello Parent!');
    6. }
    7. render() {
    8. return (
    9. <div>
    10. <button onClick={this.handleClick.bind(this)}>点击按钮button>
    11. div>
    12. );
    13. }
    14. }
    15. // 父组件
    16. import React from 'react';
    17. import ChildComponent from './ChildComponent';
    18. class ParentComponent extends React.Component {
    19. handle子事件(data) {
    20. console.log(data); // 输出:Hello Parent!
    21. }
    22. render() {
    23. return (
    24. <div>
    25. <ChildComponent onChildClick={this.handleChildEvent.bind(this)} />
    26. div>
    27. );
    28. }
    29. }
    30. // 渲染组件
    31. ReactDOM.render(<ParentComponent />, document.getElementById('root'));

    三、小程序中的组件通信


    1. 父传子

    在小程序中,父组件通过在wxml中使用属性来传递数据给子组件。父组件可以在子组件的标签上设置属性,然后子组件可以通过this.properties接收这些属性。

    示例代码:

    1. // 父组件
    2. // parent.wxml
    3. <child-component message="{{message}}" />
    4. // parent.js
    5. Page({
    6. data: {
    7. message: 'Hello Mini Program!'
    8. }
    9. });
    10. // 子组件
    11. // child-component.wxml
    12. <view>
    13. {{ message }}
    14. view>
    15. // child-component.js
    16. Component({
    17. properties: {
    18. message: String
    19. }
    20. });

    2. 子传父

    在小程序中,子组件通过触发父组件绑定的自定义事件,并将需要传递给父组件的数据作为参数来实现子传父。父组件可以在子组件标签上监听这些自定义事件,并在对应的方法中处理数据。

    示例代码:

    1. // 子组件
    2. // child-component.wxml
    3. <button bindtap="handleClick">点击按钮button>
    4. // child-component.js
    5. Component({
    6. methods: {
    7. handleClick() {
    8. this.triggerEvent('customEvent', { data: 'Hello Parent!' });
    9. }
    10. }
    11. });
    12. // 父组件
    13. // parent.wxml
    14. <view>
    15. <child-component bind:customEvent="handleCustomEvent" />
    16. view>
    17. // parent.js
    18. Page({
    19. handleCustomEvent(event) {
    20. console.log(event.detail.data); // 输出:Hello Parent!
    21. }
    22. });

    结论: 本文介绍了在Vue、React和小程序中实现父传子和子传父的组件通信方式。通过这些通信方式,我们可以方便地进行组件间数据和事件的传递,实现更加灵活和复用性强的前端开发。无论是Vue、React还是小程序,良好的组件通信机制都是提高开发效率和代码可维护性的重要因素。希望本文对您理解和运用组件通信有所帮助。

  • 相关阅读:
    【论文阅读】Intrinsically semi-supervised methods
    Android学习笔记 56. TabLayout 选项卡布局
    基于Faster R-CNN的安全帽目标检测
    网络路由详解
    21、Flink 的table API与DataStream API 集成(1)- 介绍及入门示例、集成说明
    命名空间一直Terminating
    【华为OD】D卷真题200分:会议接待 C语言代码实现[思路+代码]
    根文件系统介绍
    AR人体姿态识别,实现无边界的人机交互
    【期末大作业】基于HTML+CSS+JavaScript网上订餐系统(23个页面)
  • 原文地址:https://blog.csdn.net/zzx262625/article/details/133758038