UniApp 父子组件传值的三种实现方式:Props、Slot 与 Ref

作者:百宝袋

时间:2026-10-30

浏览:295

本文介绍 UniApp 中父组件向子组件传递数据的三种核心方法。首先讲解最常用的 Props 属性绑定,其次演示灵活的 Slot 插槽内容分发,最后通过 Ref 获取组件实例并调用其内部函数。文章结合代码示例,帮助开发者掌握不同场景下的组件通信技巧。

文章目录

前言

在 UniApp 开发中,父组件向子组件传递数据主要包含三种方式:使用 props 属性、利用 slot 插槽以及通过 ref 引用组件实例。

1、Props

这是最简单且最常用的传值方式。子组件需要在 js 部分定义变量,并通过 props 选项声明接收来自父组件的数据。

<template>
        <view>
            <!-- 我是子组件 newzujian-->
            <view class="">
                {{value}}
            </view>
        </view>
    </template>
    <script>
        export default {
            props:['value'],
            methods:{
            }
        }
    </script>
<template>
        <view>
            <!-- 我是父组件 -->
            <newzujian value='789' >
            </newzujian>
        </view>
    </template>
    <script>
        export default {
            methods: {
                }
        }
    </script>

2、Slot

插槽机制提供了更灵活的内容分发方式,允许在子组件中预设插入点。子组件通过定义带有 name 属性的 slot 标签,父组件即可在对应位置进行内容插值,例如使用 #name 语法。

<template>
        <view>
            <!-- 我是子组件 newzujian-->
            <view class="">
                <slot name="value"></slot>
            </view>
        </view>
    </template>
    <script>
        export default {
            methods:{
            }
        }
    </script>
    <template>
        <view>
            <!-- 我是父组件 -->
            <newzujian  >
                <template #value>
                    789
                </template>
            </newzujian>
        </view>
    </template>
    <script>
        export default {
            methods: {
                }
        }
    </script>

3、Ref 函数控制

这种方式允许父组件通过 ref 获取子组件的实例,进而调用子组件内部定义的函数,从而实现对子组件状态或行为的直接操作。

    <template>
        <view>
            <!-- 我是子组件 newzujian-->
            <view class="">
                {{value}}
            </view>
        </view>
    </template>
    <script>
        export default {
            data(){
              return{
                  value:''
              }    
            },
            methods:{
                gaibian(){
                    this.value='789'
                }
            }
        }
    </script>
    <template>
        <view>
            <!-- 我是父组件 -->
            <newzujian ref="hanshu" >
            </newzujian>
            <button @click="dianji">click</button>
        </view>
    </template>
    <script>
        export default {
            onLoad() {
            },
            methods: {
                dianji(){
                    this.$refs.hanshu.gaibian()
                }
                }
        }
    </script>

总结

至此,关于 UniApp 父子组件传值的三种方法(props、slot 和 ref)的介绍已完成。如需了解更多相关内容,建议查阅本站往期文章或继续浏览后续教程,感谢大家的支持!

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章